2013-03-21 2 views
0

У меня есть целочисленное значение, сохраненное в моей базе данных, представляющее статус документа.Изменение значений Reportviewer в коде

Я хочу написать отчет, который показывает статус в одном из столбцов.

Однако я не хочу показывать в столбце значение целого целого. Я хочу показать строку, которая преобразует статус в удобочитаемый формат.

например:

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

Это чувствует, как он требует больше, чем выражение - то есть: C# код. Это возможно?

+0

У вас есть справочная таблица? Где хранятся эти статусы? – Yahya

+0

Они хранятся в перечислениях в моих бизнес-объектах. Это значит, что они могут быть локализованы. – Kev

+0

Решение nunespascal выглядит достаточно прилично, чтобы решить вашу проблему. – Yahya

ответ

3

Вы также можете решить эту проблему, используя CASE в запросе, который вы используете для выбора.

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

Можно ли это сделать в коде? Я могу, конечно, начать с hardcoding значения strig, как это, но я хочу, чтобы иметь возможность называть мой бизнес-уровень, чтобы в конечном итоге получить локализованные строки. – Kev

+0

Наверное, я опубликую следующий вопрос. – Kev

+0

Отчеты принимают параметры. Вы можете сделать преобразование в C# и просто передать это как параметр в отчет. – nunespascal

1

Если вы передаете целое параметра для просмотра отчетов, и вы хотите, чтобы преобразовать его в какую-то «строку» вы можете назначить выражение для столбца, как

=IIF(Fields!Status.Value = 1, "New", IIF(Fields!Status.Value = 2, "Pending", "Sent")) 
Смежные вопросы