作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个使用 ReportLibraries 中的组件动态组装 BIRT ReportDesigns 的环境。这些 ReportLibraries 存储在数据库中,在文件系统的任何位置都找不到。
我想要做的是在 session 中打开一个库,给库一个名称和一个 InputStream(来自测试资源的 FileInputStream)
SessionHandle session = de.newSessionHandle(ULocale.ENGLISH);
LibraryHandle library = session.openLibrary("lib01.rptlibrary", is);
ReportDesignHandle reportDesign = session.createDesign();
reportDesign.includeLibrary("lib01.rptlibrary", "lib01");
ElementFactory elementFactory = reportDesign.getElementFactory();
DesignElementHandle deh1 = library.findElement("NewTable");
DesignElementHandle ldeh1 = elementFactory.newElementFrom(deh1, "newTable");
org.eclipse.birt.report.model.api.command.InvalidParentException: The library for the parent element "Table("NewTable")" is not included.
at org.eclipse.birt.report.model.api.ElementFactoryImpl.newElementFrom(ElementFactoryImpl.java:968)
at org.eclipse.birt.report.model.api.ElementFactory.newElementFrom(ElementFactory.java:1)
最佳答案
我还没有测试过,我认为您的报告需要首先包含库,然后才能尝试从库中获取报告中的元素句柄。
includeLibrary(filename, namespace)该函数只能用于从文件系统加载库。所以我认为您必须从数据库的内容创建一个临时文件,但您可以在创建报告后将其删除。
//add this
reportDesign.includeLibrary(filename, namespace);
ElementFactory elementFactory = reportDesign.getElementFactory();
DesignElementHandle deh1 = library.findElement("NewTable");
DesignElementHandle ldeh1 = elementFactory.newElementFrom(deh1, "newTable");
关于birt - 将 BIRT 库包含到来自 InputStream 的报告中 (BIRT DEAPI),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27900223/
我有一个使用 ReportLibraries 中的组件动态组装 BIRT ReportDesigns 的环境。这些 ReportLibraries 存储在数据库中,在文件系统的任何位置都找不到。 我想
我是一名优秀的程序员,十分优秀!