我应该使用多选列表框(动态之一),用户可以在其中选择多个值(通过按住 Ctrl 键)来查看报告。
因此,在实现时,我尝试在BeforeOpen方法中获取参数值并将其传递给 DataSet ,然后使用 IN 运算符将其附加到 where 子句。我在屏幕上出现 SQL 错误。因此,当我打印参数值时,它类似于[Ljava.lang.Object;@26ba26ba]导致查询错误。我以为我无法在脚本中处理该多选参数值并将其传递给查询。所以放弃了这个想法。
现在我在 Data set 中使用 BIRT 的内置过滤器功能。我在Beforeopen 方法中使用脚本在 SQL 中做的事情现在我在数据集过滤器中做同样的事情。我使用了 row["dataColumn"]IN param["param"].value,它工作正常。我可以从过滤屏幕中选择一个或多个值,执行报告并获得正确的结果。
现在我需要实现的另一件事是过滤器列表框中应该有全选,这样用户就可以选择全选并为所有数据带来报告,而不是选择任何其他值。我正在通过“%”反对全选。由于我使用的是 IN 运算符,因此我无法在 Report 上获取任何数据。
我想提供全选功能以及多选功能,但由于上述限制无法做到这一点。或者,我可以使用 Ctrl+A 来全选并且它正在工作我也可以这样做,但这是根据我需要实现的要求。
我正在使用BIRT 版本="3.2.17"
任何想法都会受到赞赏..提前谢谢..:)