logo

6 янв. 2013 г.

BIP: объединение ячеек родительской группы

Всем привет!
Сегодня расскажу о полезном трюке, используемом в RTF шаблонах BI Publisher, с помощью которого вы сможете объединить строки родительской группировки в отчете-таблице.
Картинка скажет больше:



В качестве примера используется простенький RTF шаблон, использующий данные XML файла PODataSample.xml.
Этот файл входит в стандартную поставку BI Publisher 11g (Middleware\user_projects\domains\bifoundation_domain\config\bipublisher\repository\DemoFiles\PODataSample.xml).

Сам RTF шаблон выглядит следующим образом:

(также шаблон доступен для скачивания)

Элементы шаблона достаточно очевидны.
1) Вместо того, чтобы всю строку помещать внутрь header-группировки и 2 крайние ячейки в detail-группировку, мы всю строку "гоним" по самой детальной группе.

2) Само собой в этом случае нам нужно использовать XPath адресацию с элементам родительской группы, например, <?../POH_VENDOR_NAME?> , где "../" говорит парсеру подняться на уровень выше от текущего узла в XML дереве и обратиться там к элементу POH_VENDOR_NAME.

3) Ну и наконец, сам трюк - как "схлопнуть" ячейки с данными родительской группировки.
Для этого используется field Word (xsl-конструкции допустимы лишь внутри них) со следующим содержимым:
<xsl:if xdofo:ctx="cell" test="position()=1"></xsl:if><xsl:attribute xdofo:ctx="block" name="number-rows-spanned"><xsl:value-of select="last()"/></xsl:attribute>

Вот и все!

1 комментарий: