NULL日期的RDL表达式返回#Error

时间:2013-04-08 07:28:03

标签: null report expression reportviewer rdl

需要一些帮助,如上所述,这部分给我带来麻烦,因为如果date的值为NULL,它会将值显示为#Error。 如果有日期值则可以,但如果为NULL则没有。 Argghhhhhhh .... 我已经在下面给出了几个表达,但没有一个能解决问题:

=IIf(IsNothing(Fields!LastReviewDate.Value), "N/A", DateValue(Fields!LastReviewDate.Value).ToString("dd-MMMM-yyyy")) 

OR

IIf(Fields!LastReviewDate.Value Is Nothing, "N/A", DateValue(Fields!LastReviewDate.Value).ToString("dd-MMMM-yyyy")) 

OR

=IIf(Fields!LastReviewDate.IsMissing, "N/A", DateValue(Fields!LastReviewDate.Value).ToString("dd-MMMM-yyyy"))

谁能告诉我如何解决这个问题?我希望用“”或“N / A”或“ - ”替换NULL日期...... 这是输出:

Report show value as #Error if date is NULL

我尝试更改数据源的属性,但它给了我这样的错误消息:

Error when change datasource properties

1 个答案:

答案 0 :(得分:0)

我现在为我的问题找到了解决方案,感谢G叔叔(谷歌)给了我很多资源和帮助。感谢所有通过互联网分享知识的人!感谢!!!

答案是:

1)为受影响的列配置Expression,在我的情况下,我需要检查我的日期类型列是否包含NULL值。这是我的例子: -

=Code.CheckForNull(Fields!LastReviewDate.Value)

Step 1, change the expression

2)查看您的RDL报告的Visual Studio菜单,选择REPORT>>>报告属性...转到“代码”选项卡并将表达式的函数放入其中,这是我的示例: -

Public Function CheckForNull(ByVal value As Object) As String
    If IsNothing(value) Then
        Return "N/A"
    Else
        Return DateValue(value).ToString("dd-MMMM-yyyy")
   End If
End Function

Got to report properties

3)点击确定,保存解决方案&测试你放置ReportViewer的页面以查看结果和BRAVO你刚刚做对了! Enter your function to respond to your report expression column

enter image description here