(495) 925-0049, ITShop интернет-магазин 229-0436, Учебный Центр 925-0049
  Главная страница Карта сайта Контакты
Поиск
Вход
Регистрация
Рассылки сайта
 
 
 
 
 

XLS Templates в Oracle BI Publisher (XML Publisher)

Источник: habrahabr
InTrX

Доброго времени суток, в этой статье хочу рассказать о своём опыте работы с BI Publisher и составлении шаблонов для MS Excel в родном для этой программы формате *.xls.

Небольшое предисловие



Работая с Oracle eBS, время от времени возникает необходимость создания дополнительных репортов (а соответственно и шаблонов в BI Publisher). В данном случае был довольно сложный репорт, который собирался из таблиц, заполняющихся данными в BEFORE REPORT триггере этого же репорта. Количество колонок в репорте могло динамичиски меняться. 


Первоначально шаблон был сделан в формате RTF. Для каждого количества колонок был предусмотрен свой вариант репорта. На выходе мы должны были получить XLS файл с желаемыми для нас данными.



Возникшие проблемы



Когда выходящий файл является XLS файлом мы можем столкнуться со следующими проблемами, или если быть более точными, ограничениями:

1) Мы хотим чтобы Excel output файл выглядел именно, так как нам нужно - нужные столбцы находились именно там, где нам нужно, а не уезжали куда-то.
2) Чтобы типы данных передавались в Excel output, то есть чтобы у чисел был числовой тип данных в Excel, у дат - тип даты, и тому подобное…
3) При передачи данных, которые начинаются с "0" (leading zeroes), ведущие нули обрезаются, то есть нам нужно сохранить целостность данных.
4) Та же проблема появляется и при передачи данных с нулями после запятой (дробной частью).

Если 3 и 4 проблемы можно решить добавив два пробела или специальные символы в начало/конец аттрибута, то с остальными немного сложнее.

В моём случае мне нужно было передать значение "0000" в Excel при этом не потеряв ни одного нуля и не допуская никаких других символов в клетке.

Подробнее о других ограничения Excel output файлов, созданных с использованием RTF шаблонов можно прочитать здесь

Озарение



В результате долгих поисков в интернетах, в блоге Oracle было найдено упомянание о Real Excel Template.

То есть теперь можно создавать шаблоны не отходя от кассы не покидая MS Excel. Для этого нам нужно создать стандартный *.XLS файл и начать воять в нём наш чудо-шаблон.

Для начала немного о различиях между RTF и XLS шаблонами.

1) В RTF для обозначения элементов мы должны были ставить тег <?ELEMENT_NAME?>, а в XLS мы должны писать в свойствах ячейки, где у нас будет находиться элемент тег XDO_?ELEMENT_NAME?. Пример: 



2) В RTF для обозначания открытия групп мы должны были ставить тег <? for-each: GROUP_NAME?> и для закрытия групп должны были ставить тег <?end for-each?> ,a в XLS мы должны выделить ячейки, которые будут заполнены данными из нашей группы и поставить им в качестве свойства XDO_GROUP_?GROUP_NAME?. Это быдет выглядеть так:



3) Будьте внимательными с тем, что пишете в самой клетке, так как вы можете задавать тип данных, которые будут находиться в клетке с помощью обычного Excel функционала, то и то, что написано в клетке должно соответствовать этому типу. Единственное, что у меня не получилось, это получить на выходе дату как даты, пришлось писать для этого небольшой макрос. Ах да, теперь мы можем дополнять наши габлоны макросами, что не было возможно в RTF шаблонах для Excel.

4) Обязательно должна присутствовать отдельная вкладка XDO_METADATA:



Всё, что написано до "Data Constraints:" включая менять не нужно и это должно присутствовать во всех XLS шаблонах. То, что ниже уже ваши функции. Поддерживается XSL, не знаю насчёт остальных. Если элемент находится вне групп, то его нужно получать через xsl:value-of select. Ко всем элементам в этой вкладке нужно обращаться через .//ELEMENT_NAME.

Послесловие



При использовании XLS шаблона мне больше не нужно было создавать для каждого поличества колонок отдельный вариант таблицы. Достаточно сделать таблицу для максимального количества колонок. Колонки, в которых будут присутствовать данные будут заполняться автоматически, в которых данных не будет так и будут оставаться пустыми. Это позволяет избежать лишней работы.

Дополнительную информацию по возможностям создания таких шаблонов можно найти по этой ссылке.

Надеюсь кому-то это поможет избежать лишних хлопот с составление шаблонов.

Ссылки по теме


 Распечатать »
 Правила публикации »
  Написать редактору 
 Рекомендовать » Дата публикации: 20.08.2012 
 

Магазин программного обеспечения   WWW.ITSHOP.RU
Oracle Database Standard Edition 2 Named User Plus License
Oracle Database Personal Edition Named User Plus Software Update License & Support
Oracle Database Standard Edition 2 Processor License
Oracle Database Personal Edition Named User Plus License
Quest Software. Toad for DBA Suite for Oracle
 
Другие предложения...
 
Курсы обучения   WWW.ITSHOP.RU
 
Другие предложения...
 
Магазин сертификационных экзаменов   WWW.ITSHOP.RU
 
Другие предложения...
 
3D Принтеры | 3D Печать   WWW.ITSHOP.RU
 
Другие предложения...
 
Новости по теме
 
Рассылки Subscribe.ru
Информационные технологии: CASE, RAD, ERP, OLAP
Новости ITShop.ru - ПО, книги, документация, курсы обучения
Программирование на Microsoft Access
CASE-технологии
СУБД Oracle "с нуля"
eManual - электронные книги и техническая документация
Мастерская программиста
 
Статьи по теме
 
Новинки каталога Download
 
Исходники
 
Документация
 
 



    
rambler's top100 Rambler's Top100