2012-04-22 1 views
0

Я хотел бы запустить отчет в настраиваемом приложении (без просмотра birt, прямой интеграции механизма отчета в код приложения для рендеринга отчетов под капотом и обеспечивая ссылки на итоговые документы).Возврат BIRT вычисленных значений отчета обратно в пользовательское веб-приложение для дальнейшей обработки

После представления отчета мне необходимо прочитать конкретные значения, которые были рассчитаны в отчете - например, для подталкивания его к веб-сервису другого приложения.

Представьте отчет о счете-фактуре с указанием основного и подробных данных, которые вычисляют в главном разделе, а затем агрегированную сумму платежа всех деталей счета-фактуры. Если мне нужно будет передать расчетную сумму платежа в службу платежей из приложения (не в отчете!) - как бы я это сделал?

  • Я видел DataExtractionTasks в API Birt. Однако в редких примерах они, похоже, сильно связаны с запросами, и я не уверен, что они каким-то образом будут работать с данными без результатов.

  • Я попытался использовать GlobalPersistentReportVariables и получить к ним доступ после рендеринга отчета через API, однако через API они всегда кажутся нулевыми. Не уверен, что это «правильный путь» для доступа к рассчитанным значениям отчета. Я думаю, что в основном они предназначены для обмена данными между различными элементами отчета, такими как таблицы.

Я, конечно же, не хочу дублировать логику отчета в приложении, чтобы снова рассчитать сумму платежа.

ответ

0

Первый является интеграция ->http://wiki.eclipse.org/Birt_3.7_Migration_Guide

Во-вторых, вы должны создать пользовательские XML плагины для BIRT.

добавил, что плагин в ur интегрирует BIRT.

Теперь делают ур отчет в формате XML (помните формат XML будет определен в Уре плагин, чтобы дать такой формат, что и может читать его легко с любым JavaScript, к JQuery или только Java файл)

теперь делать любые вычисления/манипуляция u нравится.

В моем случае, я имел 2 файла контекста IE

Контекст-1 (Myapplication.war) - вызов - >> Контекст-2 (BIRT.war с настраиваемой плагин XML)

Я назвал отчет BIRT использованием JavaScript XMLRequest метод с URL: "HTTP: // локальный: 8080/BIRT/framset _ отчет = GraphReport1.rptdesign & _format = XML"

И формат чтения XML в JavaScript & показывая настроенный jquery gra phs согласно данным.

+0

Как я уже сказал в вопросе, я не требую Birt Viewer (войны) вообще - не технически, а не из требований. SO, проходящий через веб-слой, в любом случае не требуется. Двигатель отлично работает без Birt Viewer и отображает PDF/Excel в 100% в моем собственном веб-приложении. – Alex

+0

Да, этот вариант также есть. полностью зависит от требований ур. – wizavi

1

Хотя я думаю, что теоретически задача DataExtraction была бы правильной, я бы не смог получить значение элемента простого элемента отчета (например, динамического текстового элемента) для его публикации в другом месте.

У меня есть работающий сейчас, злоупотребляя святым appContext (универсальным вводом-в-чем-либо) для получения требуемых данных обратно в мое приложение (отчет записывает вычисленное значение в appcontext - приложение читает после рендеринга отчет).

+0

Использование appContext является рекомендуемым и самым простым решением здесь. Мы делаем то же самое. Другой вариант - передать объект контекста приложения и использовать его как параметр отчета, но это затруднит разработку отчета в среде IDE. – hvb