3

我有一个有两个输入参数的报告。两者都有一个保管箱,我可以在其中选择值。假设 ParameterA 和 ParameterB。是否可以使 ParameterB 依赖于 ParameterA?

例如:如果我在 ParameterA 中选择 ParameterB 中的汽车品牌“Honda”,我应该只能看到本田的所有车型——如雅阁、思域等。

iReport/JasperReports Server中是否有这种可能性?

4

1 回答 1

2

是的,JasperReport 服务器提供了这种称为级联输入控件的功能。

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

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

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

在 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;

有关更多详细信息,您可以查看此帖子:-

级联输入控件

于 2013-12-03T05:06:35.167 回答