【问题标题】:Parameter Validation on Reports报表上的参数验证
【发布时间】:2009-01-14 17:41:22
【问题描述】:

我是 SSRS 的新手,所以如果这个问题太简单,我深表歉意:

我有一份报告,它接受一个名为“金额”的参数。我想将有效输入限制为 >= 0 的货币值,如果用户输入的值不正确,则会弹出一条错误消息。

我不想验证我的存储过程中的输入并引发异常,因为 SSRS 会向从另一台机器访问报告的用户显示非常通用的“'someTable' 的查询执行失败”消息,而我的业务没有想要打开“启用远程错误”标志。

如何将输入验证添加到报告参数并通知用户输入错误?

是的,我用谷歌搜索过,但运气不佳。在此先感谢:)

【问题讨论】:

    标签: validation reporting-services report


    【解决方案1】:

    好的,这个怎么样?

    您在 SSRS 中拥有的只是报表字段中的 SQL 查询和表达式。

    也许您可以在报告顶部为您的错误消息添加一个大的红色文本框,并给它一个表达式,如 '=IIf(Parameters!Amount.Value

    然后转到表的“隐藏”属性并为其指定表达式“=Parameters!Amount.Value

    您还可以在查询的 where 子句中添加“AND @Amount >= 0”,这样当出现错误时您就不会从数据库中获取数据。

    【解决方案2】:

    可以在 SSRS 中创建基于特定列表或查找查询的报告参数,但我认为您不能应用正则表达式或类似的东西。

    相反,您可以考虑将您的报告分成两个面板,一个显示您的报告,一个显示错误,然后您创建一个程序集,其中包含一个函数,用于在报告运行之前验证报告的参数。如果验证参数功能成功,则隐藏错误面板并显示报告面板,否则则相反。

    【讨论】:

    • 我并不是真的在寻找正则表达式解决方案。此外,“两个面板 + 自定义 DLL 来验证错误”选项听起来有点矫枉过正(更不用说额外的程序集使部署复杂化)——这是验证报告参数的标准方法吗?
    • 可以在报告中嵌入代码,而不是单独的 DLL。我不确定自定义代码是否是验证参数的标准方式,但它对我来说确实是最明智的方式。
    【解决方案3】:

    我不认为您可以在报告工具本身中做很多事情。很简陋。

    但是,您可以提供一个 ASP.net Web 界面或表单,您可以使用它以 .NET 允许的任何格式向用户询问参数值,并使用 ReportViewer 控件显示报告。这听起来令人生畏,但实际上非常简单,特别是如果您已经有一个可以构建的项目。

    微软提供tutorials for using the ReportViewer controls

    【讨论】:

    • 没有可构建的项目,这些报告完全是内部报告,我们的会计部门访问 MS 提供的默认 someserver/Reports 页面。仅仅为了参数验证,围绕这个站点编写一个 Web 界面比它的价值要多一点:)
    猜你喜欢
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 2023-02-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-16
    相关资源
    最近更新 更多