如何在 BIRT 上从类路径自动加载 JS 文件
How to auto-load JS file from classpath on BIRT
我创建了一组实用程序以在我的 BIRT 报告中使用。
我把它们 (my-utils.jar) 放在 BIRT 的 lib 目录中:
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
}
};
我想直接使用它,而不是将它显式加载到动态文本或脚本事件中,如下所示:
GLOBAL_VARIABLE.formatSomething('bla bla bla')
我该怎么做?
您想创建一个扩展点。在 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 and/or Web 应用程序中,您的 js 函数应该可用。有关自定义 birt 函数的更多信息 here
请注意,Dominique 的解决方案仅适用于使用 Java 实现功能的情况。
以下解决方案是针对使用Java脚本实现功能的情况:
首先,您不需要将 **.js* 文件添加到类路径中。
相反,您将它们放入为资源指定的目录中并在您的报告中引用它们(或在您在报告中使用的库之一中)。请参阅以下示例:
目录结构:
workspace
\birt # I have this configured as as "Report Project" in the WS
my_report.rptdesign
\res
my-utils.js
在首选项菜单中:
Report Design/Resource/资源文件夹=<当前项目文件夹>/res
(在运行时,您可以使用 API 设置资源文件夹,我不知道如何为 Web Viewer 示例配置它)
在 my_report.rptdesign 中,查看报表本身的属性。在 "Resources" 选项卡中,将 my-utils.js 添加到 Java 脚本文件。
现在您可以在报告中使用库的功能了。
我创建了一组实用程序以在我的 BIRT 报告中使用。
我把它们 (my-utils.jar) 放在 BIRT 的 lib 目录中:
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
}
};
我想直接使用它,而不是将它显式加载到动态文本或脚本事件中,如下所示:
GLOBAL_VARIABLE.formatSomething('bla bla bla')
我该怎么做?
您想创建一个扩展点。在 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 and/or Web 应用程序中,您的 js 函数应该可用。有关自定义 birt 函数的更多信息 here
请注意,Dominique 的解决方案仅适用于使用 Java 实现功能的情况。
以下解决方案是针对使用Java脚本实现功能的情况:
首先,您不需要将 **.js* 文件添加到类路径中。 相反,您将它们放入为资源指定的目录中并在您的报告中引用它们(或在您在报告中使用的库之一中)。请参阅以下示例:
目录结构:
workspace
\birt # I have this configured as as "Report Project" in the WS
my_report.rptdesign
\res
my-utils.js
在首选项菜单中: Report Design/Resource/资源文件夹=<当前项目文件夹>/res
(在运行时,您可以使用 API 设置资源文件夹,我不知道如何为 Web Viewer 示例配置它)
在 my_report.rptdesign 中,查看报表本身的属性。在 "Resources" 选项卡中,将 my-utils.js 添加到 Java 脚本文件。
现在您可以在报告中使用库的功能了。