BIRT报告可以限制数据集设置中jdbc数据集的最大行提取大小。 这是一个手动输入的Integer。我正在寻找一种方法将它从ReportParameter动态传递到jdbc数据集,以限制检索到的行。
我更喜欢这样做,例如在带有JavaScript的beforeOpen()钩子中,因为直接在SQL中设置限制是特定于DBMS的,我希望报告在多个DBMS(Oracle,MySQL,DB2,Sybase,...)上运行
答案 0 :(得分:2)
在beforeFactory()
钩子中:
reportContext.getReportRunnable().designHandle.getDesignHandle().findDataSet("Data Set").setRowFetchLimit(params["my_limit"].value);
通常,很多beforeFactory()内容以reportContext.getReportRunnable().designHandle.getDesignHandle()
开头。您可以在此处找到任何报告元素,甚至可以在必要时遍历所有元素。
当你find()
元素时,ctrl + space帮助中没有列出所有方法。更多包含Eclipse帮助: BIRT程序员参考 - >参考 - > API参考 - >报告对象模型API参考。类模块句柄是开始的好地方。
我不确定,如果有一个较短的点链来访问报表设计句柄。如果是这样,请纠正我。