2017-07-31 81 views
0

我通過改變SELECT語句同化的幾個手動報告爲一個SSRS一個遵循的一套格式:SSRS報表字段與動態數據類型

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

假設您所有的數據類型都正確,那麼您只需在單元格的Format屬性中使用switch語句的簡化版本。

喜歡的東西..

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

注意:您可以只使用 「P0」 你個類型, 「NO」 爲你INT。

+0

剛剛意識到(想到也許並嘗試過,它的工作!)這個自己,並來到這裏,以關閉問題。雖然先生,你真是太棒了! – NotADog