是否可以在 BIRT 报告中将查询作为参数传递?
Is it possible to pass a query as parameter in BIRT report?
我想要求用户输入查询,然后 BIRT 将根据用户的查询生成报告。
到目前为止,我所做的是将参数传递给 this.queryText
,但我想不出 BIRT 将如何显示结果的方法。
这可能吗?
您可以按照以下步骤实现此目的:-
- 如果需要,创建报告参数,可由用户传递。
- 在 SQL 数据集 beforeOpen() 事件构建和分配动态查询:-
示例- this.queryText = "Select * from " + params["parmtable"].value;
如果您还有其他需求,请您详细说明。我一定会尽力帮助您制作示例 rptdesign 文件。
这不是直接可能的。
然而,借助外部的一些帮助(例如从数据库中获取游标的 描述 ,可以生成(并保存,如果你愿意的话),最后运行从Java脚本中调用DE API一个rptdesign文件,我已经这样做了,但是很麻烦。另外,如果用户要提供参数怎么办?
从安全的角度来看,不推荐整个方法。
恕我直言,BIRT 不是适合此目的的工具,因为此任务需要更多低级编程。如果您可以自由选择,我建议 Python 与 ReportLab 工具包(生成 PDF 的库)以及 cx_Oracle(取决于您的数据库)或 Java使用 iText 和 JDBC.
除此之外我别无选择
首先。 (我使用 java btw)我的程序接受并执行查询。然后使用 ResultSetMetaData
,我得到列名。 (用作参考我的数据源)
然后。我将完整的查询和列列表传递给方法buildReport()
(请参考How to Build Dynamic Table (BIRT)示例代码)
我想要求用户输入查询,然后 BIRT 将根据用户的查询生成报告。
到目前为止,我所做的是将参数传递给 this.queryText
,但我想不出 BIRT 将如何显示结果的方法。
这可能吗?
您可以按照以下步骤实现此目的:-
- 如果需要,创建报告参数,可由用户传递。
- 在 SQL 数据集 beforeOpen() 事件构建和分配动态查询:-
示例- this.queryText = "Select * from " + params["parmtable"].value;
如果您还有其他需求,请您详细说明。我一定会尽力帮助您制作示例 rptdesign 文件。
这不是直接可能的。
然而,借助外部的一些帮助(例如从数据库中获取游标的 描述 ,可以生成(并保存,如果你愿意的话),最后运行从Java脚本中调用DE API一个rptdesign文件,我已经这样做了,但是很麻烦。另外,如果用户要提供参数怎么办?
从安全的角度来看,不推荐整个方法。
恕我直言,BIRT 不是适合此目的的工具,因为此任务需要更多低级编程。如果您可以自由选择,我建议 Python 与 ReportLab 工具包(生成 PDF 的库)以及 cx_Oracle(取决于您的数据库)或 Java使用 iText 和 JDBC.
除此之外我别无选择
首先。 (我使用 java btw)我的程序接受并执行查询。然后使用 ResultSetMetaData
,我得到列名。 (用作参考我的数据源)
然后。我将完整的查询和列列表传递给方法buildReport()
(请参考How to Build Dynamic Table (BIRT)示例代码)