我已经在Crystal Reports中创建了一个报表,该报表使用一个文本列并根据定界符对其进行拆分,然后将数组的第一部分转换为数字,第二部分转换为日期。我们有一些不良数据,这些数据无法转换并导致报告崩溃,因此我想创建另一个报告以帮助查找不良数据。该报告将显示其他报告中无法解析的所有记录。
我主要是.Net开发人员,并且我们具有执行DateTime.TryParse(string)之类的功能,该功能返回 bool(boolean) 值。我需要能够在Crystal Reports公式字段中执行类似的操作,但是在我的生命中,我找不到等效项或任何种类的try/catch错误处理。
有什么建议?
最佳答案
Crystal 报表引擎的处理异常
当您通过应用程序运行Crystal Reports时,有时Crystal Report Engine会导致异常。发生异常时,它可能导致出现错误对话框或导致报告停止处理。导致异常的一些原因是:
因为存在数据库位置或错误的登录参数
传递给报告引擎。也可能是因为其他数据库
错误,例如表被另一个用户,数据库锁定
引擎安装不正确或表已损坏。
从代码或用户输入接收到不正确的数据,这可能会导致
该报告停止运行。例如,将字符串值传递给
数字参数将停止运行报告。
报告中的公式无法正确评估,异常(exception)
将被抛出。这可能是由于公式中的语法错误或
另一个程序错误,例如除以零错误。
给出了错误的文件名或路径,非 Crystal 报告是
选择,或报告已损坏。
您可以选择让Crystal Report Engine本身处理异常,并显示其自己的错误消息,也可以决定自己处理异常。以编程方式处理异常的一些优点是:
例如,当报表无法显示时,不显示“登录失败”
连接到数据源,您可以显示更完整的消息,
如“无法连接到数据库,登录参数不正确
提供”。这将为用户提供更多详细信息。
编写错误消息,错误ID,发生的时间等
日志文件的相关信息。这将允许错误
跟踪和以后审查。
继续处理。通过检查错误是什么,您可以
能够编写处理错误并重新运行报告的代码
正确的信息。
http://msdn.microsoft.com/en-us/library/aa288423%28v=vs.71%29.aspx
关于error-handling - 在Crystal Reports中是否具有TryParse或Try/Catch等效项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15770242/