【问题标题】:Custom .ToString() Formats in .rdlc Reports.rdlc 报告中的自定义 .ToString() 格式
【发布时间】:2010-03-02 09:49:13
【问题描述】:

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

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

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

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

【问题讨论】:

  • 你试过Fields("MyField").Value.ToString("lr")吗?它会产生相同的结果吗(应该)?
  • 不幸的是没有运气。事实上,我看的越多,似乎越不可能将参数传递给 rdlc 文本框中的函数。调用 .ToString() 似乎可行,但调用 .ToString("lr") 会产生 #Error。任何人都可以确认是否是这种情况?

标签: .net vb.net rdlc tostring


【解决方案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 )

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-06-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多