Jasper reports 如何在报表中传递相互链接的查询中的参数

Jasper reports 如何在报表中传递相互链接的查询中的参数,jasper-reports,Jasper Reports,我想在我的报表仪表板中使用输入控件。我有3个过滤器要应用。我想做的是,当我从日期过滤器中选择一个日期时,另一个过滤器必须仅显示该日期的客户,当我选择一个客户时,第三个过滤器的第三个下拉列表中必须仅显示该客户执行的交易 除此之外,仪表板还必须显示所有过滤器中“所有”值的数据。 因此,用户可以查看所有日期、所有客户的所有交易的数据,还可以选择特定的日期、客户和交易我想您需要在SQL查询中输入参数,例如,您需要在第二个查询(客户)中输入日期参数,然后您需要在交易查询中输入客户参数。在此之前,您还需要在

我想在我的报表仪表板中使用输入控件。我有3个过滤器要应用。我想做的是,当我从日期过滤器中选择一个日期时,另一个过滤器必须仅显示该日期的客户,当我选择一个客户时,第三个过滤器的第三个下拉列表中必须仅显示该客户执行的交易

除此之外,仪表板还必须显示所有过滤器中“所有”值的数据。
因此,用户可以查看所有日期、所有客户的所有交易的数据,还可以选择特定的日期、客户和交易

我想您需要在SQL查询中输入参数,例如,您需要在第二个查询(客户)中输入日期参数,然后您需要在交易查询中输入客户参数。在此之前,您还需要在设计器中定义这些参数。

您可以使用级联输入参数

什么是级联参数

在级联参数中,一个参数的值列表取决于所选的值 在前面的参数中

顺序对于级联参数很重要,因为列表后面的参数的数据集查询包含对列表前面的参数的引用

例如,假设我们有两个输入控件,名称为Shipcountry和Shipcity,在这种情况下,如果选择Shipcountry,则下一个输入控件Shipcity应仅显示属于所选装运国家的城市

你可以参考这篇文章了解更多细节

在查询的where子句中添加参数add CONDICTION后,可以添加三个输入控件p_date(数据类型:date)、p_customer(集合)和p_transaction(集合)

 Where date_columns = $P{p_date}
   AND $X{IN, customer,p_customer}
   AND $X{IN, transaction,p_transaction}
然后在JasperReport服务器中创建三个输入控件,在查询第二和第三个输入控件时使用where子句