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

时间:2014-07-24 07:53:36

标签: jasper-reports

我想在报告信息中心中使用输入控件。我有3个过滤器可供申请。我想要做的是当我从日期过滤器中选择日期时,其他过滤器必须仅显示该日期的客户,当我选择客户时,则在第三个过滤器的第三个下拉列表中必须仅显示该客户执行的交易

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

2 个答案:

答案 0 :(得分:0)

我猜你需要在SQL查询中加入参数,例如你需要在第二个查询(客户)中放置一个date_param,然后你需要在事务查询中放入cust_param。在此之前,您还需要在设计师中定义这些参数。

答案 1 :(得分:0)

您可以使用级联输入参数。

什么是级联参数?

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

顺序对于级联参数很重要,因为列表中稍后的参数的数据集查询包括对列表中较早的参数的引用。

例如,假设我们有两个输入控件,名称是Shipcountry和Shipcity,在这种情况下,如果我们选择Shipcountry,那么下一个输入控件Shipcity应该只显示那些属于所选Shipping国家的城市。

您可以参阅此帖子了解更多详情 Creating cascading input controls

在查询的where子句中添加参数add condition后,可以添加三个输入控件p_date(DataType:Date),p_customer(Collection)和p_transaction(Collection)。

 Where date_columns = $P{p_date}
   AND $X{IN, customer,p_customer}
   AND $X{IN, transaction,p_transaction}

然后在JasperReport服务器中创建三个输入控件,在第二和第三个输入控件的查询中使用where子句。

相关问题