SSRS 2012 参数化报表 -- 级联式参数设置
再清楚的菜单,只要遇到选择项目一多的时候,难免会让人眼花缭乱,而找不到该选的选项。
当参数选项过多时,可以利用其他参数作为“预选”的项目,当前置参数被选定之后,就会同时限制了后设参数的值域,如此一来,即可做到快速选项减量的目的,例如,选择了“产品大类”为“灯具”后,那么“产品子类”就只会筛选出在这个大类下的项目,而这项功能称之为“级联式参数(Cascading Parameter)”。
级联式参数实例
步骤1:
首先,设计出一张以销售年度为组的销售报表,使用的参数为产品子类。
步骤2:
接着,建立两个新的数据集,分别为“ProductCategoryList”以及“ProductSubcategoryList”。而级联式参数的秘诀就在数据集(ProductSubcategoryList)的查询语句中参照了产品大类(ProductCategory)变量。
步骤3:
设置完成后,报表数据窗口会显示如下效果。
级联参数的优先级:
在树状目录下的参数顺序标示它们被产生的顺序。因此,需要注意到逻辑的合理性。例如,本实例中我们应该是先选择产品大类参数,才会选择产品子类参数,因此需特别注意优先级,如果不正确,请利用上图上方的箭头调整。
步骤4:
接下来,设置产品大类(ProductCategory)以及产品子类(ProductSubcategory)这两个参数。首先,开启ProductCategory参数的属性对话框,除了在“General”标签页中将它的“Prompt”改为“产品大类”,以及勾选“Allow multiple values”之外,同时切换至“Available Values”标签页,勾选“Select from one of the following options”,并且将数据集切换为“ProductCategoryList”,将值字段设为“ProductCategoryKey”(实际传递至WHERE条件的参数值),将标签字段设为“ProductCategoryName”(使用者看得懂的内容)。
步骤5:
ProductSubcategory参数也是利用一样的方式开启属性对话框,在“General”标签页中将它的“Prompt”改为“产品子类”,以及勾选“Allow multiple values”。同时切换至“Available Values”标签页,勾选“Select from one of the following options”,并且将数据集切换为“ProductSubcategoryList”,将值字段设为“ProductSubcategoryKey”,将标签字段设为“ProductSubcategoryName”。
步骤6:
设置完成后,将报表切换至“Preview”标签页预览报表,首先,会看到只有第一个参数可以利用下拉菜单选择,产品子类的菜单是被锁住而无法使用的。当产品大类选单选择值(灯具)之后,产品子类仅显示灯具类的子类项,当产品大类切换为其他项目时,产品子类也会跟着联动。
这种级联式的报表不但方便使用者勾选,同时还可以集成企业内部的权限层级,做到复杂的权限控制。例如,在查看报表时可以根据登录的使用者身份作为参数,仅列举出该使用者有权浏览的部门以及产品信息,这些都是利用级联参数来工作。