报告中的可选多值下拉列表/参数

时间:2015-03-26 14:50:11

标签: reporting-services ssrs-2008-r2 ssrs-2012 reporting-services-2012

我有一份包含3个下拉列表的SSRS报告。

  • 第一次下拉是针对doctorDepartment并且是多值的

  • 第二个是保险政策,是多值的

  • 第3位是医生名单,仅为单一价值

第三个下拉列表从下面的查询中获取数据集中的数据。

两个参数@specialityId和@insurancePolicy分别由前两个下拉控制(doctorDepartment& insurancePolicy)。

问题是,我需要用户能够从下拉或两者中选择性地选择一个值。

但它现在的工作方式是,两个值都是必需的,以便在第三个下拉列表中显示数据...这意味着第三个下拉列表仅用数据填充,直到用户从两个值中选择一个值第一次和第二次下降。

有没有办法告诉SSRS用户只需要从1或其中一个或两个中选择一个值,但不需要两个值?

我尝试为前两个参数允许空值,但S​​SRS不允许您设置该参数的选项允许多值。

谢谢!

SELECT ml.doctorID, doctorDisplayName 
FROM doctorList ml
   INNER JOIN doctorDepartment mc ON ml.doctorID = mc.doctorID
WHERE (mc.specialityId IN (@specialityId)
     OR ml.insurancePolicy IN (@insurancePolicy))
ORDER BY doctorDisplayName

1 个答案:

答案 0 :(得分:1)

您可以使用默认值执行此操作:

  1. 在前两个参数列表中添加额外的标签/值对;此值可以是空格' ', - 1,类似'Default'等字词
  2. 将两者的默认值设置为这些新值
  3. 更新您的WHERE子句以允许一个或多个所选参数:

    WHERE mc.specialityId IN (@specialityId) AND 'Default' IN (@insurancePolicy)  --first param selected
      OR 'Default' IN (@specialityId) AND ml.insurancePolicy IN (@insurancePolicy)  --second param selected
      OR mc.specialityId IN (@specialityId) AND ml.insurancePolicy IN (@insurancePolicy)  --both selected