我已将几个报告从Visual Studio 2008 Report Builder格式转换为Visual Studio 2010 Report Builder格式。这涉及到转换.RDLC文件并引用新的报表查看器程序集,版本为10.0(旧版是9.0)。
我发现枚举值现在显示为数字值,而旧版本显示枚举值的字符串表示形式。我无法弄清楚如何格式化该值以便显示字符串。
我使用IEnumerable的对象作为我的数据源。我知道我可以添加属性到对象中,以将枚举值公开为字符串 - 但我认为这是最后的办法,因为我要处理数百个报告和对象,而添加这些属性更像是一个hack解决方案,没有实际价值。
所以,我希望有一种更干净的方法来直接通过报表设计器完成格式化枚举值。
在以下枚举中,“PaymentBucketTyp.PRIN”应在报表中显示为“PRIN”,而不是“0”,“PaymentBucketType.AINT”应显示为“AINT”:
我发现枚举值现在显示为数字值,而旧版本显示枚举值的字符串表示形式。我无法弄清楚如何格式化该值以便显示字符串。
我使用IEnumerable的对象作为我的数据源。我知道我可以添加属性到对象中,以将枚举值公开为字符串 - 但我认为这是最后的办法,因为我要处理数百个报告和对象,而添加这些属性更像是一个hack解决方案,没有实际价值。
所以,我希望有一种更干净的方法来直接通过报表设计器完成格式化枚举值。
在以下枚举中,“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"
更新 - 2012年2月28日
我还尝试使用System.ComponentModel.DataAnnotations
特性,但仍然没有成功:
[System.ComponentModel.DataAnnotations.Display(Name = "PRIN")]
[System.ComponentModel.DataAnnotations.DisplayFormat(DataFormatString="G")]