是否可以在BIRT报告中将查询作为参数传递?

时间:2018-07-10 08:56:17

标签: sql birt

我想让用户输入查询,然后BIRT将基于用户的查询生成报告。

到目前为止,我要做的是将参数传递给this.queryText,但我想不出BIRT如何显示结果的方法。

这可能吗?

3 个答案:

答案 0 :(得分:0)


您可以按照以下步骤实现此目的:-

     
  1. 根据需要创建报告参数,可由用户传递。
  2.  
  3. 在SQL数据集中 beforeOpen()事件构建并分配动态查询:-
       示例- this.queryText =“从” + params [“ parmtable”]。value;中选择*;

如果还有其他要求,请详细说明。我一定会尝试为您提供一个示例rptdesign文件。

答案 1 :(得分:0)

这不可能直接实现。

但是,在外部的一些帮助下(例如,从数据库中获取光标的描述),可以生成(并保存,如果愿意的话),并最终通过以下方式运行rptdesign文件:从Java脚本调用DE API。我已经做到了,但这非常麻烦。此外,如果用户想提供参数怎么办?

从安全角度考虑,不建议使用整个方法。

IMHO BIRT并不是正确的工具,因为此任务需要更底层的编程。如果您可以自由选择,我建议将Python与ReportLab工具包(用于生成PDF的库)以及cx_Oracle(取决于您的数据库)一起使用,或者将Java与iText和JDBC一起使用。

答案 2 :(得分:0)

除此之外,我没有其他选择。

首先。 (我使用java btw)我的程序接受并执行查询。然后使用ResultSetMetaData,我得到列名。 (用作参考我的数据源)

然后。我将完整的查询和列列表传递给方法buildReport()(请参考How to Build Dynamic Table (BIRT)示例代码)