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
Reporting services 如何在SSRS参数中组合数据类型?_Reporting Services_Ssrs 2012 - Fatal编程技术网

Reporting services 如何在SSRS参数中组合数据类型?

Reporting services 如何在SSRS参数中组合数据类型?,reporting-services,ssrs-2012,Reporting Services,Ssrs 2012,背景-我正在尝试使用ReportBuilder3.0在SSRS中创建一个包含多个参数的报告。请求是在打开报告时,显示所有数据行。最终用户可以选择一个或多个参数,以减少显示的结果。我可以用下面的方法让它工作 参数的数据集如果可用值来自查询,则数据集类型为文本 对于数字字段: SELECT 0 'FACG' UNION ALL SELECT DISTINCT STR(ACG) FROM STG_CSI_SA_CONFIRM 对于包含文本的列: SELECT 'Any' 'FunderName

背景-我正在尝试使用ReportBuilder3.0在SSRS中创建一个包含多个参数的报告。请求是在打开报告时,显示所有数据行。最终用户可以选择一个或多个参数,以减少显示的结果。我可以用下面的方法让它工作

参数的数据集如果可用值来自查询,则数据集类型为文本

对于数字字段:

SELECT 0 'FACG'  UNION ALL  SELECT DISTINCT STR(ACG) FROM  STG_CSI_SA_CONFIRM
对于包含文本的列:

SELECT 'Any' 'FunderName'  Union All  Select DISTINCT NAME FROM  STG_CSI_SA_CONFIRM
在报告的数据集中,我有:

WHERE  ('Any' IN (@FrName) or Fname.name in (@FrName)) AND ( 'Any' IN (@FACG) OR FLIST.FACG IN (@FACG))
结果是两个参数框,一个表示0,一个表示Any,报告在第一次打开时运行。最终用户可以从FACG中选择一个或多个数字,或从FRName中选择一个或多个名称

我的问题是,如何调整第一个参数以显示“Any”而不是零作为默认值?返回的所有值都是7位数的整数。当我简单地将0更改为Any时,会收到一条关于转换数据类型的错误消息。如果我使用STR,我可以从SQLServer中获得一个列表,正如我所期望的那样。任何,1234567,1234568等,但我不能让列表在SSRS中工作

谢谢

R

这有两种方法。 1.确保为您的参数提供值的数据集有两列,一列是用于在数据集中实际执行筛选/联接的ID列,另一列是用户可见的标签。差不多

ID         Label
'Any'      0
'1234567'  1234567
'1234568'  1234568
如果您的主数据集是一个查询而不是一个存储的过程,那么您可以简单地拥有一个如上所述的参数数据集,但不包含“Any”行。然后将可用值设置为参数数据集,并将默认值设置为同一参数数据集。默认情况下,将选择所有参数。 在主数据集中,查询将沿着以下行进行:

SELECT * FROM myTable WHERE myColumn IN (@myParameterName)

SSRS会将参数中选定的值转换为逗号分隔的值列表,并为您将其插入查询。

该列表位于参数数据集中。是否有更好的方法在报告首次打开时强制SSR运行?将数值设置为“Any”行或“0”的唯一原因是为了让报表在启动时显示所有值。如果如我所述将默认值设置为参数查询,它将使用所有值填充参数。只要所有参数都有默认值,报表将在打开时自动运行。