【问题标题】:How do you display a custom error in Crystal Reports?如何在 Crystal Reports 中显示自定义错误?
【发布时间】:2010-01-28 23:28:54
【问题描述】:

我们需要让Crystal Report弹出一个自定义的错误信息然后停止运行。许多 Google 搜索甚至没有发现其他人问过如何做到这一点。

(触发该错误是为了防止用户不小心进行长时间运行的查询,该查询与数据库服务器上的 CPU 挂钩。报告没有参数,第三方软件将过滤条件附加到记录选择公式中。)

到目前为止,我们最好的是:

NumberVar Zero := 0;

if InStr (RecordSelection, "IndexField", 1) <> 0 
then 1
else 1/Zero // Force divide by zero error to stop report from running

这会成功停止报告,但会向用户显示令人困惑的“除以零”错误,而不是信息性错误消息。

如果我们无法获得完全自定义的错误消息,则能够自定义部分消息可能是可接受的替代方案。

Crystal Report 由第三方应用程序运行,因此我们必须能够完全从 Crystal 内部触发它。我们使用的是 Crystal Reports 专业版 11.0.0.895。

我认为编写 Crystal 函数库并将其部署到运行的任何地方的努力是不值得的,因此需要使用内置的 Crystal 功能或随处可用的其他标准功能来完成。

【问题讨论】:

    标签: crystal-reports


    【解决方案1】:

    如果我对您的理解正确,那么如果没有过滤器参数,您就不想运行查询。

    我不认为有一种简单的方法可以创建自定义弹出窗口,但我想知道您是否可以将实际报告数据移动到子报告中并将主报告留空。在子报表的抑制公式中,您可以输入InStr (RecordSelection, "IndexField", 1) = 0。被抑制的子报表不会执行,因此您长时间运行的查询将无效。在单独的部分中,您可以在其中放置一个包含错误消息的文本框。该部分的抑制公式为InStr (RecordSelection, "IndexField", 1) &lt;&gt; 0

    用户不会收到弹出窗口,但报告本身会显示失败原因的消息。

    【讨论】:

    • 嗯,这个想法很有潜力。我将不得不看看我们是否可以将整个记录选择从主报告中向下传递,并将其用作子报告的记录选择。
    猜你喜欢
    • 2021-06-02
    • 1970-01-01
    • 1970-01-01
    • 2012-08-09
    • 2020-01-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多