0

查看 org.pentaho.reporting.engine.classic.core.DataFactory 更具体地说是初始化方法(以前是 ContextAwareDataFactory 的一部分)我想知道哪些资源/上下文的哪些部分可以通过接口访问,例如通过资源管理器。

例如,是否可以访问报表中定义的“资源”,例如数据源或公式(除了可通过查询方法访问的报表参数)?提前致谢!

4

1 回答 1

1

资源管理器允许您访问存储在 zip/prpt 文件中的原始数据 - 但我们不允许您访问已解析的报告或其任何(已解析的)组件。

例如,使用资源管理器,您可以加载嵌入的 xml 或其他文件,并将它们作为查询过程的一部分进行解析。

如果您要做一些需要访问报告定义及其内容的额外讨厌的事情,那么您可以通过使用子报告的狂野黑客获得访问权限:

  1. 创建一个新的报告功能(通过代码)。在该函数中,重写“reportInitialized”方法以获取报告实例(“event.getState().getReportDefinition()”)。将该对象存储在函数中并通过函数的“getValue()”方法返回它。

  2. 将该函数的结果作为参数传递给子报表。

  3. 子报表的数据工厂现在可以访问参数,该参数是主报表函数返回的报表对象。

这个过程故意复杂而不有趣。我们强烈反对在查询数据的过程中使用报表。

PS:如果您打算从可编写脚本的数据源访问 SQL/MQL/MDX 数据源,那么只需使用自 PRD-3.9 以来内置在这些数据源中的脚本扩展。

http://www.sherito.org/2011/11/pentaho-reportings-metadata-datasources.html

于 2012-06-27T14:35:18.290 回答