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/2/linux/23.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,我正在将几个手动报告合并为一个SSRS-one,方法是将select语句更改为以下格式: select 'DepartmentName' ,'StatName' ,'DataType' --(Int, percentage,date,time, etc) ,'Stat' from TablesNeeded 现在这个联合很好,所以我得到了一个统计名称及其值的列表。在此之后,我想让显示Stat的单元格根据数据类型的结果更改其格式 我尝试使用IIF来确定格式,该格式使用单个IIF语句,但

我正在将几个手动报告合并为一个SSRS-one,方法是将select语句更改为以下格式:

 select
 'DepartmentName'
 ,'StatName'
 ,'DataType' --(Int, percentage,date,time, etc)
 ,'Stat'
 from TablesNeeded
现在这个联合很好,所以我得到了一个统计名称及其值的列表。在此之后,我想让显示Stat的单元格根据数据类型的结果更改其格式

我尝试使用IIF来确定格式,该格式使用单个IIF语句,但是在嵌套以容纳不同的数据类型后,似乎会使每个IIF结果都为假,并仅返回默认值/值:

工作

 =iif(
 Fields!DataType.Value="Percentage"
 ,Format(Fields!Stat.Value,"0%")
 ,Fields!Stat.Value
 )
发抖

 =iif(
 Fields!DataType.Value="Percentage"
 ,Format(Fields!Stat.Value,"0%")
 ,iif(
 Fields!DataType.Value="Date"
 ,Format(Fields!Stat.Value,"y")
 ,iif(
 Fields!DataType.Value="int"
 ,Fields!Stat.Value
 ,Fields!Stat.Value
 )))
同样地使用开关也是错误的

 =Switch(
 Fields!DataType.Value="Percentage",Format(Fields!Stat.Value,"0%")
 ,Fields!DataType.Value="int",Format(Fields!Stat.Value,"#,#0")
 ,Fields!DataType.Value="Date",Format(Fields!Stat.Value,"y")
 )

我问了一位同事,我们都被难住了。关于正确的表达式格式有什么想法吗?

假设所有数据类型都是正确的,那么您只需要在单元格的Format属性中使用switch语句的简化版本

类似于

 =SWITCH(
 Fields!DataType.Value="Percentage","0%"
 ,Fields!DataType.Value="int","#,#0"
 ,Fields!DataType.Value="Date","y")
 )

注意,你可以用p0表示你的百分比类型,用n0表示你的整数。

刚刚意识到,也许,经过尝试,它成功了!这就是我自己,我来这里是为了结束这个问题。先生,你说得对!