2

我有一个自定义业务对象,它重载了 .ToString() 函数。它还实现了 IFormattable.ToString,因此我可以定义自己的自定义格式。

除了 .rdlc 报告之外,这种方法似乎在我的应用程序中无处不在。例如,我在报表上有一个文本字段,其表达式如下:

=Fields!MyField.Value.ToString("lr")

“lr”是我创建的自定义格式。运行报告时,我总是得到#Error 作为输出。我在我的 .ToString 函数中放置了断点,并在报告运行时单步执行代码,我知道该函数正在返回正确的值,但报告似乎无法接收和显示它。

4

1 回答 1

1

可以在 rdlc 报告中以不同的方式使用 VB 代码。只需用鼠标右键单击报告。当您输入参数的上下文菜单转到属性时。单击它时,您应该会看到一个选项卡控件,其中包含几个选项卡页。转到标签页“代码”,那里是你的 VB 函数,它必须是这样的

 Public Function ParseVal(ByVal val As Object ) As String
     Dim MyClass As obj = CType(val, MyClass )
     return obj.ToString( "lr" ) 
    End Function

然后像这样调用文本框中的函数

= Code.ParseVal(Fields!MyField.Value )

PS我不太确定VB代码是否正常工作,只需对其进行测试,是否需要重写。如果出现任何其他错误,请发布它以查看问题所在

于 2010-03-05T09:18:47.337 回答