我是Birt的新手,我想开发一个接受“多重动态范围参数”的报告。 在这里,您可以更好地解释问题:
数据集: 表:客户 列:idCustomer,名称
我希望该用户能够插入多个范围的idCustomer来检索名称 例如:用户可能希望客户的ID介于205和300之间,ID介于501和670之间,ID介于800和920之间...
我通常在BO Crystal Report设置“允许多值”和“允许范围值”对输入参数执行相同的操作。在Birt上是否存在类似内容?
我在此处上传图像:http://i.stack.imgur.com/uvz7F.jpg。它是输入参数的BO屏幕截图,带有“允许多值”和“允许范围值”。
由于
GG
答案 0 :(得分:1)
简答:不。
更长的回答:BIRT没有选项来启用单个参数来获取一系列值。
它有一个选项允许单个参数获取多个值,但仅限于ListBox参数。此外,您只能将单个报表参数值绑定到给定的数据集参数,这意味着您无法在数据集查询中选择多个参数值(假设您使用的是关系数据源);相反,您需要在“编辑数据集”对话框的“过滤器”选项卡中根据参数值向数据集添加过滤器。 (这仍然只允许您指定参数的多个单独值,而不是多个值范围。)
(或者,您可以为数据集编写一个beforeOpen事件脚本,该脚本可以直接将参数的多个值插入到数据集的查询文本中,而不是将报表参数绑定到数据集参数;但是,这会打开您的报表SQL注入攻击的风险。或者,你可以为BIRT添加一个插件来为你绑定多个参数值。)
因此,您的选择是:
[205..300],[501..607]
),然后为数据集编写beforeOpen事件脚本以解析所需范围的输入参数值并相应地修改查询文本。请注意,最后一个选项已被强烈弃用,因为它需要更多工作,删除了指定有效值的选项,并将报告打开为SQL injection attacks的风险。