0

我正在使用 SQL Server Reporting Services 2005。

我有一个包含从 SQL Server 数据库获取数据的数据集的报告。此外,我有两个类型为DateTime(StartDate_paramEndDate_param) 的报告参数,用户可以在报告中选择它们。

如果用户选择不同月份的日期,例如 6 月 1 日和 5 月 3 日,我设置了限制,该过程停止:

我在报告属性-----代码部分有这个代码来管理限制:

Public Function ValidateDate(StartDate As DateTime, EndDate As DateTime) As DateTime

  If (DateDiff(DateInterval.Month, StartDate, EndDate) <> 0) Then

      Err.Raise(6,Report)

  End If

End Function

我设置了一个隐藏参数 CheckDateRange,它使用以下表达式调用 ValidateDate 函数:

= Code.ValidateDate(Parameters!StartDate_param .Value, Parameters!EndDate_param .Value)

这会停止 SQL 处理,并且在输入不同月份的日期时出现此错误:

处理“CheckDateRange”报告参数时出错

但我想在文本框上显示一条消息,而不是现在显示的消息,我该怎么做?

如果那不可能,那我该怎么办?

谢谢..

4

1 回答 1

1

与其停止进程,不如向用户显示不同的“报告”。此错误报告将包含您希望向用户显示的错误消息。然后,您只需根据参数的评估设置报告的条件可见性,您还可以更改“实际”报告的 SQL,以便在用户给出错误参数时它甚至不会运行(这将阻止进行现在无用的查询,因为不会显示此数据)。

因此,如果您的报告现在是一个 tablix,请将 tablix 的可见性条件设置为在给出错误参数时隐藏。然后在该 tablix 之外创建一个文本框,用于存储您的错误消息并为其提供相反的可见性条件逻辑。然后更改 SQL 查询,以便在给出错误参数时只返回空行。

于 2013-06-02T03:27:16.567 回答