2013-03-21 23 views
0

我有一個整數值存儲在我的數據庫中,代表文檔狀態。更改代碼中的reportviewer值

我想編寫一個報告,顯示其中一列的狀態。

但是,我不想在列中顯示原始整數值。我想顯示一個將狀態轉換爲可讀格式的字符串。

例如:

1 -> New 
2 -> Pending 
3 -> Sent 

這感覺就像它需要比表達更多 - 即:C#代碼。這可能嗎?

+0

你有一個查找表中的列分配體現在哪裏?這些狀態存儲在哪裏? – Yahya 2013-03-21 11:06:08

+0

它們存儲在我的業務對象的枚舉中。這是爲了使它們可以本地化。 – Kev 2013-03-21 11:24:51

+0

nunespascal的解決方案看起來不錯,足以解決您的問題 – Yahya 2013-03-21 11:28:32

回答

3

您也可以通過在您用來選擇的查詢中使用CASE來解決問題。

SELECT 
CASE 
    WHEN Status = 1 THEN 'New' 
    WHEN Status = 2 THEN 'Pending' 
    WHEN Status = 3 THEN 'Sent' 
END as "StatusStr" 
FROM 
... 
; 
+0

這可以在代碼中完成嗎?我當然可以開始對strig值進行硬編碼,但我希望能夠調用業務層來最終獲得本地化的字符串。 – Kev 2013-03-21 11:32:55

+0

我想我會爲此發佈後續問題。 – Kev 2013-03-21 11:45:18

+0

報告接受參數。你可以在c#中進行轉換,並將其作爲參數傳遞給報表。 – nunespascal 2013-03-21 12:11:02

1

如果你正在傳遞整數參數的報表查看器,並希望將其轉換爲一些「串」,你可以像

=IIF(Fields!Status.Value = 1, "New", IIF(Fields!Status.Value = 2, "Pending", "Sent"))