如图中所示参数的display type选成Como Box,List of value选择为Dynamic,其链接至的Data Set选择为前面定义的ordernum数据集,同时选定Select value column为数据集ordernum中的某个字段,这里ordernum数据集只有一个字段,故选择为ordernumber。 这样就将报表参数和数据集参数关联起来。但这不是我们的最终目的,我们的目的是以报表参数ordernumpara为中介,向另一个数据集提供参数。 因此,我们定义图7所示的数据集。
图 7. 数据集“ordersdetail”
点击“Parameter”项,进入数据集参数定义界面,如图8所示。
图 8. 将数据集内的参数连接至报表参数“ordernumpara”
将本数据集的参数num链接至ordernumpara,就完成藉由一个报表参数为中介将一个数据集的字段值链接到另一个数据集的参数的功能。 2 Cascading Parameter
除了使用动态报表参数提供数据值的选择列表,报表开发过程中用户经常需要用到互相关联的参数。 比如要选择某个客户的某个订单号标识的所有订单的内容,用户并不愿意列出所有可能的订单号,比较理想的情况是给出一个客户编号的选择列表,根据这个列表的 内容再给出每个客户的所有订单号的列表,这样用户就可以选择相应的客户对应的某个订单号,从而查询出此客户的这个订单号标识的所有订单的详细内容。 Cascading parameter 一方面增强了报表逻辑的功能;另一方面,通过将一部分应用逻辑转移到界面操作上,进一步降低了报表内部逻辑和SQL查询语句的复杂性。
首先定义一个customer数据集,这个数据集 包含customernumber和customername两个字段。如图9所示。
图 9. 数据集“customer”
接着定义一个名字为orders的数据集,如图10所示。
图 10. 数据集“orders”
在“Orders”数据集中使用一个数据集参数,这个数据集参数将要引用接下来将要定义的层叠参数中customer参数。 定义了以上数据集之后,我们就可以来定义层叠参数了。
右键点击Outline面板中的Report parameter选项,在弹出的上下文菜单中点击“New Cascading
Parameter”,弹出以下对话框,在Cascading Parameter name域输入参数的名字,本例中使用的参数名字为“custorder”,Data Set Model选择为Multi Data Set。 在紧接着的Parameters表中定义一个名为customer的参数,并将其关联至customer这个数据集,其取值为customer数据集中的 customernumber字段,这样customer这个层叠参数的取值就是一个customernumber的列表。 Customer此时也成为一个动态参数。 如图11所示。
图 11. 层叠参数定义1
完成customer的定义后,我们紧接着定义另一参数order,方法和定义customer相同,最后order参数和数据集orders关联,其取 值为orders数据集中的ordernumber字段。 由于数据集orders的局部参数需要和前面定义的customer参数关联后才能产生数据结果集合,因此,在下一步将数据集orders与参数 customer完成关联后,order这个层叠参数也将成为一个动态参数,它也成为一个数据值的选择列表,这个列表的值是由某个 customernumber决定的所有可能的订单号。 如图12所示。