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



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

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

现在这个联合在一起很好,所以我最终得到了一个统计名称及其值的列表。在此之后,我想让显示"Stat"的单元格根据"数据类型"的结果更改其格式

我尝试使用 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
)))

并且使用开关类似地也"错误">

=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"表示整数。

最新更新