我有一個整數值存儲在我的數據庫中,代表文檔狀態。更改代碼中的reportviewer值
我想編寫一個報告,顯示其中一列的狀態。
但是,我不想在列中顯示原始整數值。我想顯示一個將狀態轉換爲可讀格式的字符串。
例如:
1 -> New
2 -> Pending
3 -> Sent
這感覺就像它需要比表達更多 - 即:C#代碼。這可能嗎?
我有一個整數值存儲在我的數據庫中,代表文檔狀態。更改代碼中的reportviewer值
我想編寫一個報告,顯示其中一列的狀態。
但是,我不想在列中顯示原始整數值。我想顯示一個將狀態轉換爲可讀格式的字符串。
例如:
1 -> New
2 -> Pending
3 -> Sent
這感覺就像它需要比表達更多 - 即:C#代碼。這可能嗎?
您也可以通過在您用來選擇的查詢中使用CASE來解決問題。
SELECT
CASE
WHEN Status = 1 THEN 'New'
WHEN Status = 2 THEN 'Pending'
WHEN Status = 3 THEN 'Sent'
END as "StatusStr"
FROM
...
;
這可以在代碼中完成嗎?我當然可以開始對strig值進行硬編碼,但我希望能夠調用業務層來最終獲得本地化的字符串。 – Kev 2013-03-21 11:32:55
我想我會爲此發佈後續問題。 – Kev 2013-03-21 11:45:18
報告接受參數。你可以在c#中進行轉換,並將其作爲參數傳遞給報表。 – nunespascal 2013-03-21 12:11:02
如果你正在傳遞整數參數的報表查看器,並希望將其轉換爲一些「串」,你可以像
=IIF(Fields!Status.Value = 1, "New", IIF(Fields!Status.Value = 2, "Pending", "Sent"))
你有一個查找表中的列分配體現在哪裏?這些狀態存儲在哪裏? – Yahya 2013-03-21 11:06:08
它們存儲在我的業務對象的枚舉中。這是爲了使它們可以本地化。 – Kev 2013-03-21 11:24:51
nunespascal的解決方案看起來不錯,足以解決您的問題 – Yahya 2013-03-21 11:28:32