Jaspersoft Studio:强制手动输入子报表的输入参数
Jaspersoft Studio: Force input parameter of subreport to be entered manually
在我的主报告中,我从数据库中得到了一个(小的)字符串值列表。然后我想将此列表用于子报表中的 selecting 记录,以及其他输入参数:
用户应该能够select根据开始日期和结束日期的范围进行记录——这很容易使用java.util.Date
类型的输入参数并将"Is For Prompting"设置为真的。另一个标准应该是列表中的一个或多个项目,显示来自数据库字段的值。我可以在报告模板中定义列表,但是我会有硬编码的字符串(从数据库中填充,但仅在定义时)。
现在的困境是:如果我在主报表中定义输入参数,我无法预先获取列表的值;如果我在子报表中定义它们,我根本不会得到任何提示,因此无法设置它们中的任何一个。
因此报告需要开始日期和结束日期的值,以及 select 的字符串值列表(可以 select 编辑多个项目)。该列表应根据数据库中的值构建。在子报告中,所有这些值都应加入到记录过滤器中。用户应能够在执行报告之前手动定义列表中的日期和select项。
有办法实现吗?
经过几个小时的反复试验和更多的研究,我当然发现关键字是“Query-based Input Controls”。本文档描述了它们在 JasperReports 服务器上的创建。此类输入控件也可以在 Jaspersoft Studio 中编辑,但是,它们实际上只能在服务器上运行。无论如何,这就是我的问题的解决方案。
在我的主报告中,我从数据库中得到了一个(小的)字符串值列表。然后我想将此列表用于子报表中的 selecting 记录,以及其他输入参数:
用户应该能够select根据开始日期和结束日期的范围进行记录——这很容易使用java.util.Date
类型的输入参数并将"Is For Prompting"设置为真的。另一个标准应该是列表中的一个或多个项目,显示来自数据库字段的值。我可以在报告模板中定义列表,但是我会有硬编码的字符串(从数据库中填充,但仅在定义时)。
现在的困境是:如果我在主报表中定义输入参数,我无法预先获取列表的值;如果我在子报表中定义它们,我根本不会得到任何提示,因此无法设置它们中的任何一个。
因此报告需要开始日期和结束日期的值,以及 select 的字符串值列表(可以 select 编辑多个项目)。该列表应根据数据库中的值构建。在子报告中,所有这些值都应加入到记录过滤器中。用户应能够在执行报告之前手动定义列表中的日期和select项。
有办法实现吗?
经过几个小时的反复试验和更多的研究,我当然发现关键字是“Query-based Input Controls”。本文档描述了它们在 JasperReports 服务器上的创建。此类输入控件也可以在 Jaspersoft Studio 中编辑,但是,它们实际上只能在服务器上运行。无论如何,这就是我的问题的解决方案。