我已将几个报告从visual studio 2008报告构建器格式转换为visual studio 2010报告构建器格式。这涉及转换.rdlc文件并引用新的报表查看器程序集10.0版(旧版本为9.0)。
我发现枚举值现在显示为数值,而旧版本显示枚举值的字符串表示形式。我无法弄清楚如何格式化值,以便显示字符串。
我使用IEnumerable对象作为我的数据源。我知道我可以向对象添加属性以将枚举值公开为字符串 - 但我认为这是最后的手段,因为我正在谈论数百个报表和对象以及添加这些属性更多的是真正添加的黑客解决方案没有目标对象模型。
所以我希望有一种更简洁的方法可以直接通过报表设计器完成格式化枚举值。
在以下枚举中,PaymentBucketTyp.PRIN
应在报告上显示为“PRIN”而不是“0”,PaymentBucketType.AINT
应显示为“AINT”:
Public Enum PaymentBucketType
PRIN
AINT
CORT
ATTY
MISC
End Enum
我尝试过以下表达式:
=Fields!Bucket.Value
=Fields!Bucket.Value.ToString()
=CStr(Fields!Bucket.Value)
=Fields!Bucket.Value.ToString("G") 'produces #Error
我也尝试将文本框的格式设置为="G"
更新 - 02/28/2012
我也尝试了System.ComponentModel.DataAnnotations
属性,但仍然没有运气:
[System.ComponentModel.DataAnnotations.Display(Name = "PRIN")]
[System.ComponentModel.DataAnnotations.DisplayFormat(DataFormatString="G")]
答案 0 :(得分:0)
经过长时间的互联网挖掘,我终于找到了解决方案。在字段表达式中只需输入以下代码:
=System.Enum.GetName(First(Fields!YourFieldBasedOnEnumType.Value).GetType(), Fields!YourFieldBasedOnEnumType.Value)
该解决方案对我有用。