+7 (495) 229-0436   shopadmin@itshop.ru 119334, г. Москва, ул. Бардина, д. 4, корп. 3
 
 
Вход
 
 
Каталог
 
 
Подписка на новости
Новости ITShop
Windows 7 и Office: Новости и советы
Обучение и сертификация Microsoft
Вопросы и ответы по MSSQLServer
Delphi - проблемы и решения
Adobe Photoshop: алхимия дизайна
 
Ваш отзыв
Оцените качество магазина ITShop.ru на Яндекс.Маркете. Если вам нравится наш магазин - скажите об этом Google!
 
 
Способы оплаты
 
Курс расчета
 
 1 у.е. = 91.69 руб.
 
 Цены показывать:
 
 
 
 
  
Новости, статьи, акции
 

XLS Templates в Oracle BI Publisher (XML Publisher)

20.08.2012 14:05
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 шаблона мне больше не нужно было создавать для каждого поличества колонок отдельный вариант таблицы. Достаточно сделать таблицу для максимального количества колонок. Колонки, в которых будут присутствовать данные будут заполняться автоматически, в которых данных не будет так и будут оставаться пустыми. Это позволяет избежать лишней работы.

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

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

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

  
Помощь
Задать вопрос
 программы
 обучение
 экзамены
 компьютеры
Бесплатный звонок
ICQ-консультанты
Skype-консультанты

Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 
Бестселлеры
Курсы обучения "Atlassian JIRA - система управления проектами и задачами на предприятии"
Microsoft Windows 10 Профессиональная 32-bit/64-bit. Все языки. Электронный ключ
Microsoft Office для Дома и Учебы 2019. Все языки. Электронный ключ
Курс "Oracle. Программирование на SQL и PL/SQL"
Курс "Основы TOGAF® 9"
Microsoft Office 365 Персональный 32-bit/x64. 1 ПК/MAC + 1 Планшет + 1 Телефон. Все языки. Подписка на 1 год. Электронный ключ
Курс "Нотация BPMN 2.0. Ее использование для моделирования бизнес-процессов и их регламентации"
 

О нас
Интернет-магазин ITShop.ru предлагает широкий спектр услуг информационных технологий и ПО.

На протяжении многих лет интернет-магазин предлагает товары и услуги, ориентированные на бизнес-пользователей и специалистов по информационным технологиям.

Хорошие отзывы постоянных клиентов и высокий уровень специалистов позволяет получить наивысший результат при совместной работе.

В нашем магазине вы можете приобрести лицензионное ПО выбрав необходимое из широкого спектра и ассортимента по самым доступным ценам. Наши менеджеры любезно помогут определиться с выбором ПО, которое необходимо именно вам. Также мы проводим учебные курсы. Мы приглашаем к сотрудничеству учебные центры, организаторов семинаров и бизнес-тренингов, преподавателей. Сфера сотрудничества - продвижение бизнес-тренингов и курсов обучения по информационным технологиям.



 

О нас

 
Главная
Каталог
Новинки
Акции
Вакансии
 

Помощь

 
Общая справка
Как оформить заказ
Тарифы доставки
Способы оплаты
Прайс-лист
Карта сайта
 

Способы оплаты

 

Проекты Interface Ltd.

 
Interface.ru   ITShop.ru   Interface.ru/training   Olap.ru   ITnews.ru  
 

119334, г. Москва, ул. Бардина, д. 4, корп. 3
+7 (495) 229-0436   shopadmin@itshop.ru
Проверить аттестат
© ООО "Interface Ltd."
Продаем программное обеспечение с 1990 года