具有动态数据类型的SSRS报告字段

时间:2017-07-31 10:42:35

标签: reporting-services ssrs-2012

我将几个手动报告合并为一个SSRS,通过更改select语句遵循以下设置格式:

 select
 'DepartmentName'
 ,'StatName'
 ,'DataType' --(Int, percentage,date,time, etc)
 ,'Stat'
 from TablesNeeded

现在这个工会很好,所以我最终得到了一个统计名称及其值的列表。在此之后,我希望单元格显示“Stat”以根据“DataType”的结果更改其格式

我尝试使用IIF来确定格式,该格式表现为单个IIF语句,但是在嵌套以容纳不同的数据taypes之后,每个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
 )))

并且使用开关同样也是“Falsed”

 =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")
 )

我问了一位同事,我们都很难过。有关正确表达格式的任何想法吗?

1 个答案:

答案 0 :(得分:1)

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

像...这样的东西。

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

注意你可以使用" p0"对于你的百分比类型," n0"为你的int。