我有一个有两个输入参数的报告。两者都有一个Dropbox,我可以选择值。 让我们说ParameterA和ParameterB。是否可以使ParameterB依赖于ParameterB?
例如:如果我在ParameterA中选择参数B中的carbrand'Honda'我应该只看到本田的所有车型 - 如Accord,Civic等。
iReport / JasperReports Server 中是否存在这种可能性?
答案 0 :(得分:2)
是JasperReport服务器提供此功能,称为级联输入控件。
使用级联参数时,一个参数的值列表取决于前一个参数中选择的值。
顺序对于级联参数很重要,因为列表中稍后的参数的数据集查询包括对列表中较早的参数的引用。
例如,假设我们有两个输入控件,名称是Shipcountry和Shipcity,在这种情况下,如果我们选择Shipcountry,那么下一个输入控件Shipcity应该只显示那些属于所选Shipping国家的城市。
在JasperSerever中创建一个资源ID为p_shipcountry的新输入控件,您不必使用此输入控件的数据源,只需使用下面的查询: -
SELECT DISTINCT shipcountry FROM orders ORDER BY shipcountry;
使用资源p_shipcity创建第二个输入控件,它将是级联输入控件,但您必须使用此输入控件的数据源并使用以下查询: -
SELECT DISTINCT shipcity FROM orders
WHERE shipcountry= $P{p_shipcountry} ORDER BY shipcity;
有关详细信息,请参阅此帖子: -