我在VS2008中有一个简单的报告。我有一张像这样的表:
我得到的结果如下:
我已经浪费了2个小时坐在这个问题面前。此外,我的同事也没有看到任何错误。我百分百肯定我桌子上没有格式化。字段 value 中的结果以字符串形式出现。
我在上一栏的代码中做错了什么?
P.S。我也试过
=IIF(IsNumeric(Fields!value.Value), Fields!value.Value, Fields!value.Value)
然后第三列中的数据显示在第一列中。 似乎有些奇怪的原因,IIF试图解析True和False部分以及字符串上的CDbl()失败,但我无法相信这是可能的,因为我之前没有看到过这样的编程语言。
答案 0 :(得分:0)
在我的帖子发表评论之后,我通过编写这两个函数找到了解决方案。这两个都用于显示数据并克服不可编辑的总场的愚蠢。
Public Function cdblf(ByVal s As Object) As Object
If (IsNumeric(s)) Then
Return CDbl(s)
Else : Return Nothing
End If
End Function
Public Function cdbls(ByVal n As Object, ByVal s As Object, ByVal b As Boolean) As Object
If (IsNumeric(n)) Then
Return CDbl(n)
Else :
If(Not IsNothing(s)) Then
If(b) Then
Return CStr(Left(CStr(s), Len(CStr(s)) - 1))
Else : Return Nothing
End If
Else : Return Nothing
End If
End If
End Function
这些功能的组合应该是这样的:
=Code.cdbls(
Sum(Code.cdblf(Fields!value.Value)),
Fields!value.Value,
InScope("matrix1_row_name") and InScope("matrix1_column_name"))
这解决了我不想对字符串值求和的事实,也不再需要使用IIF了。