Как автоматически загрузить файл 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.
Теперь вы можете использовать функции вашей библиотеки в своем отчете.