Мы можем выдать пользователю отчет сразу по нажатию кнопки, без создания конкаррента. Такое удобно, например, при выгрузке в Excel результатов с поисковой формы.
Ключевые моменты.
1) Формирование XMLNode c данными из VO. Первый параметр - глубина структуры XML.
Шаблон для нашего отчета будет иметь особенности. Имя группы будет составлено как Имя_VO || 'Row'. Например, если VO отчета назывался ReportVO, то группа будет названа ReportVORow. Имена элементов будут совпадать с именами атрибутов VO. Отдельная группа - вручную добавленные параметры шапки:
Ключевые моменты.
1) Формирование XMLNode c данными из VO. Первый параметр - глубина структуры XML.
XMLNode xmlNode = (XMLNode)reportVO.writeXML(4, XMLInterface.XML_OPT_ALL_ROWS);2) Добавление доп.параметров в XML (параметры шапки)
XMLNode xmlNode = (XMLNode)am.invokeMethod("fillWithVODataset"); XMLDocument doc = xmlNode.getDocument(); Element elem = doc.createElement("ReportInfo"); Element elemPeriod = doc.createElement("SomeParameter"); Text startPeriodVal = doc.createTextNode((String)someBean.getValue(pageContext)); elemPeriod.appendChild(startPeriodVal); elem.appendChild(elemPeriod); XMLNode firstChild = (XMLNode)xmlNode.getFirstChild(); // xmlNode пуст, если VO был пуст if (firstChild != null){ XMLNode parent = (XMLNode)firstChild.getParentNode(); parent.appendChild(elem); }else{ // добавляем элемент в корень xmlNode.appendChild(elem); }3) Натягиваем данные на существующий шаблон XDO
select lb.file_data from xdo_templates_b tmp, xdo_lobs lb where tmp.template_code = :1 and tmp.application_short_name = :2 and lb.application_short_name = tmp.application_short_name and lb.lob_code = tmp.data_source_code and lb.lob_type = 'TEMPLATE' and sysdate between tmp.start_date and nvl(tmp.end_date,sysdate)4) Формируем выходной поток с помощью класса oracle.apps.xdo.template.FOProcessor
Шаблон для нашего отчета будет иметь особенности. Имя группы будет составлено как Имя_VO || 'Row'. Например, если VO отчета назывался ReportVO, то группа будет названа ReportVORow. Имена элементов будут совпадать с именами атрибутов VO. Отдельная группа - вручную добавленные параметры шапки:
<dataStructure> <group name="reportVORow" source="reportVORow"> <element name="ATTR1" value="ATTR1"/> <element name="ATTR2" value="ATTR2"/> ... <group name="ReportInfo" source="ReportInfo"> <element name="SomeParameter" value="SomeParameter"/> ...
Комментариев нет :
Отправить комментарий