Как автоматически загрузить файл JS из classpath на BIRT

Я создал набор утилит для использования в моих отчетах BIRT.

Я поместил их (my-utils.jar) в директорию lib BIRT:

BIRT_HOME\plugins\org.eclipse.birt.report.viewer_x.x.x.x\birt\scriptlib

Они работают нормально, но теперь я хочу создать файл JS, поместить его в путь к классам, чтобы иметь возможность использовать его функции.

// my-utils.js
GLOBAL_VARIABLE = {  
    formatSomething: funnction(value) {
       // do my stuff with 'value' and return
    }
};

Я хочу использовать его напрямую, без всякой простоты, загрузить его внутри события Dynamic Text или Script, например так:

GLOBAL_VARIABLE.formatSomething('bla bla bla')

Как я могу это сделать?

2 ответа

Решение

Вы хотите создать точку расширения. В Eclipse создайте новый пустой плагин-проект, затем добавьте эту точку расширения:

org.eclipse.birt.core.ScriptFunctionService

Создайте папку прямо под корнем проекта, назовите ее, например, "jslib" и поместите ваши js-файлы в эту папку. Отредактируйте файл plugin.xml и добавьте тег JSLib, чтобы он выглядел следующим образом:

<?xml version="1.0" encoding="UTF-8"?>
<?eclipse version="3.4"?>
<plugin>
   <extension
         id="my.js.function"
         name="My custom JS functions"
         point="org.eclipse.birt.core.ScriptFunctionService">
   </extension>
  <JSLib
        location="jslib">
  </JSLib>

</plugin>

Экспортируйте плагин как jar и разверните его в Eclipse и / или веб-приложениях, и ваши функции js должны быть доступны. Больше информации о пользовательских функциях Birt здесь

Обратите внимание, что решение Доминика только для случая, когда функции реализованы с использованием Java.

Следующее решение относится к случаю, когда функции реализованы с использованием Javascript:

Во-первых, вам не нужно добавлять файлы **. Js* в путь к классам. Вместо этого вы помещаете их в каталог, указанный для ресурсов, и ссылаетесь на них в своем отчете (или в одной из библиотек, которые вы используете в своих отчетах). Смотрите следующий пример:

Структура каталогов:

workspace
    \birt    # I have this configured as as "Report Project" in the WS
        my_report.rptdesign
    \res  
        my-utils.js

В меню настроек: Дизайн отчета / Ресурс / Папка ресурса = <Текущая папка проекта>/ res

(Во время выполнения вы можете установить папку ресурсов с помощью API, я не знаю, как настроить это для примера Web Viewer)

В my_report.rptdesign, посмотрите свойства самого отчета. На вкладке "Ресурсы" добавьте my-utils.js в файлы Javascript.

Теперь вы можете использовать функции вашей библиотеки в своем отчете.

Другие вопросы по тегам