带有日期验证的文本参数输入

时间:2014-11-28 06:47:22

标签: vb.net sql-server-2005 reporting-services

我想允许用户在报告中输入日期作为参数。

我正在使用datetime类型作为参数(因此它显示了一个日期选择器)。在我将PC的区域更改为“英国”之后,它显示正确的格式“dd / mm / yyyy”,但是当我在门户网站上查看时格式错误:它显示“mm / dd / yyyy”。请注意,我的浏览器语言已设置为“en-GB”。

所以,我想如果我在文本框中创建,我需要验证它。我做了一些研究,并在报告属性的代码选项卡中实现了以下VB代码:

function CheckDateParameters(Dateas date) as Integer
    Dim msg as String

    If IsDate(Date)    Then 
        msg="correct format"
    else
        msg="invalid date format"
    End If

     If msg <> "" Then
        MsgBox(msg, 16, "Report Validation")
        Err.Raise(6,Report)                    'Raise an overflow
     End If
End Function

要调用我执行的功能:

=Code.CheckDateParameters(Parameters!from.Value)

如果日期格式正确,此功能有效,但如果格式错误则无效。 (我不熟悉VB语言。)

进行验证的正确方法是什么?它是在SSRS方面,还是应该在我的存储过程中进行?

1 个答案:

答案 0 :(得分:0)

您的代码的问题在于您正在验证日期,如果日期您根本不需要验证日期。将其更改为输入的字符串。 并尽量不要使用“日期”作为变量名称。

Function CheckDateParameters(Dates As String) As Integer
        Dim msg As String

        If IsDate(Dates) Then
            msg = "correct format"
        Else
            msg = "invalid date format"
        End If

        If msg <> "" Then
            MsgBox(msg, 16, "Report Validation")
            'Err.Raise(6, Report)                    'Raise an overflow
        End If
    End Function