Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jquery-ui/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ssrs 2008 可选参数和输入参数,如何实现?_Ssrs 2008_Reporting Services - Fatal编程技术网

Ssrs 2008 可选参数和输入参数,如何实现?

Ssrs 2008 可选参数和输入参数,如何实现?,ssrs-2008,reporting-services,Ssrs 2008,Reporting Services,我有一个输入参数和两个多值参数。我将两个多值参数设置为可选参数。是否有任何方法可以在不选择两个多值参数的情况下从报告的输入中获得结果? 我试过这个,但不起作用:所以考虑到国家,我试着做一个简单的例子。我意识到这不是一个多值参数解决方案,但它可以满足您的需要。在RDL中,您将定义两个参数,一个用于国家,另一个用于城市或其他任何地方。然后可以从存储过程中填充country参数,并将名称用作显示文本,将ID用作值。(如果将默认值设置为null,则所有项都将是选定的第一项) 然后,使用另一个过程填充城

我有一个输入参数和两个多值参数。我将两个多值参数设置为可选参数。是否有任何方法可以在不选择两个多值参数的情况下从报告的输入中获得结果?
我试过这个,但不起作用:

所以考虑到国家,我试着做一个简单的例子。我意识到这不是一个多值参数解决方案,但它可以满足您的需要。在RDL中,您将定义两个参数,一个用于国家,另一个用于城市或其他任何地方。然后可以从存储过程中填充country参数,并将名称用作显示文本,将ID用作值。(如果将默认值设置为null,则所有项都将是选定的第一项)

然后,使用另一个过程填充城市参数值,该过程使用选定的国家/地区参数值(这会创建正向依赖关系,因此请确保参数列表中国家/地区显示在城市之前,否则在生成报告时会出错)

现在,您有了返回报告结果集的过程,该过程同时接受公司和城市ID参数,在where子句中,您将有如下内容:

 DECLARE @Country Int,
         @City Int

 SELECT * FROM X
 WHERE  (X.Country_ID = @Country_ID OR @Country_ID IS NULL) AND
        (X.City_ID = @City_ID OR @City IS NULL)
显然,您必须对此进行一些更改以适应您的查询,但这应该允许用户只选择一个国家,或一个国家和一个城市,或根本不选择

注:如果您计划使用Null作为您的哨兵值,请不要忘记选中相关参数的“允许Null值”复选框


这样应该可以。你能解释一下你收到了什么样的错误吗?基本思想是将多值参数设置为允许空值(除非使用另一个sentinal值),然后为多值参数提供一个显示文本为“All”的空值或上下文中适合的任何详细信息,然后在其为空时忽略查询中的值。这实际上使参数成为可选的,特别是如果您将参数默认为“All”值。hi thx用于注释。我得到一个错误“blbala”参数缺少一个值”。在where Clausel I中这样做了:where(@Employee_ID为NULL)或(Employee_ID In(77502250))顺便说一下,这两个多值参数是相互依赖的。它喜欢国家和位置。如果您选择英格兰,而不是所有位置(伦敦等)或德国(慕尼黑、汉堡等)。我将获得默认值。
 DECLARE @Country_ID int
 SELECT C.Name, C.ID FROM Cities AS C 
 WHERE (C.Country_ID = @Country_ID)
 UNION
 SELECT 'All', NULL
 DECLARE @Country Int,
         @City Int

 SELECT * FROM X
 WHERE  (X.Country_ID = @Country_ID OR @Country_ID IS NULL) AND
        (X.City_ID = @City_ID OR @City IS NULL)