【问题标题】:Text parameter input with date validation带有日期验证的文本参数输入
【发布时间】:2023-03-18 17:11:02
【问题描述】:

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

我使用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 端,还是应该在我的存储过程中进行?

【问题讨论】:

  • 日期选择器返回的日期是否不正确,或者您只是对其格式感到困扰?

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


【解决方案1】:

您的代码的问题是您正在验证一个日期,如果它是您根本不需要验证它的日期。将其更改为 insted 字符串。 并且尽量不要使用“日期”作为变量名。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2022-12-02
    • 1970-01-01
    • 1970-01-01
    • 2021-06-03
    • 1970-01-01
    • 1970-01-01
    • 2023-03-10
    • 1970-01-01
    相关资源
    最近更新 更多