Parameters 动态范围参数
我是Birt的新手,我想开发一个接受“多重动态范围参数”的报告。 下面是一个更好地解释问题的示例: 数据集: 表:客户 列:idCustomer,名称Parameters 动态范围参数,parameters,crystal-reports,range,birt,multivalue,Parameters,Crystal Reports,Range,Birt,Multivalue,我是Birt的新手,我想开发一个接受“多重动态范围参数”的报告。 下面是一个更好地解释问题的示例: 数据集: 表:客户 列:idCustomer,名称 我希望该用户能够插入多个idCustomer范围以检索名称。 例如:用户可能需要id介于205和300之间、id介于501和670之间以及id介于800和920之间的客户… 我通常对BO Crystal Report执行相同的操作,将“允许多值”和“允许范围值”设置为输入参数。Birt上是否存在类似的内容?我在这里上传了一个图像:。这是一个输入参
我希望该用户能够插入多个idCustomer范围以检索名称。
例如:用户可能需要id介于205和300之间、id介于501和670之间以及id介于800和920之间的客户…
我通常对BO Crystal Report执行相同的操作,将“允许多值”和“允许范围值”设置为输入参数。Birt上是否存在类似的内容?
我在这里上传了一个图像:。这是一个输入参数的BO屏幕截图,带有“允许多值”和“允许范围值”。
谢谢
GG简短回答:不 更详细的回答:BIRT没有允许单个参数取值范围的选项 它确实有一个选项,允许单个参数获取多个值,但仅限于ListBox参数。此外,您只能将单个报表参数值绑定到给定的数据集参数,这意味着您无法在数据集查询中选择多个参数值(假设您使用的是关系数据源);相反,您需要根据“编辑数据集”对话框的“过滤器”选项卡中的参数值向数据集添加过滤器。(这仍然只允许您指定参数的多个单独值,而不是多个值范围。) (或者,您可以为数据集编写beforeOpen事件脚本,将参数的多个值直接插入到数据集的查询文本中,而不是将报表参数绑定到数据集参数;但是,这会使报表面临SQL注入攻击的风险。或者,您可以向BIRT为您绑定多个参数值。) 因此,你的选择是:
[205..300],[501..607]
),然后为数据集编写一个beforeOpen事件脚本,以解析所需范围的输入参数值,并相应修改查询文本请注意,最后一个选项被强烈反对,因为它需要更多的工作,删除了指定有效值的选项,并打开了您的报告。谢谢您详尽的回答。顺便说一句,第一个对我不好,因为我有数千个客户。第二个是最简单的方法,但限制了用户。在第三个是我可以知道用户需要多少范围,然后我也会管理空范围。第四个是一个很好的折衷方案,但正如您在上面所写的,它被强烈反对,并引入SQL注入攻击。