1

尝试在 Navision 中打印文档时,我们收到错误消息: 提供的错误信息

翻译:此消息适用于 C/AL 程序员:对成员 ActivePrinter 的调用失败。Microsoft Word 返回以下消息:打印机错误。

此行发生错误:

wrdApp.ActivePrinter := InteractLogEntry."Printer Name";

InteractLogEntry 是一个列表,其中包含本地系统上安装的每台打印机。

我的问题:如何处理这个异常(Navision 不支持通过 try-catch 处理异常)

我可以使用 if-else 语句来解决这个问题吗?

4

2 回答 2

2

经典客户端中最好的 try/catch 替换是将崩溃代码放入单独代码单元的 OnRun 部分。

然后,您可以使用 if 子句从另一个对象(代码单元、表单、报告等)调用代码

IF NOT MyCrashyCodeunit.RUN THEN BEGIN
  // Errror handling here
END
于 2013-04-30T08:45:23.317 回答
0

自 Dynamics NAV 2016 以来,有一种替代方法可以调用 Codeunit 并评估其返回值。

引入了 Try Functions(参见函数的属性),可以设置为任何函数。当调用该函数并(!)评估其布尔返回值时,错误被抑制,因此返回 false。

更多信息:https ://docs.microsoft.com/en-us/dynamics-nav/handling-errors-by-using-try-functions

重要信息:

由于 try 函数对数据库所做的更改不会回滚,因此不应在 try 函数中包含数据库写入事务。默认情况下,Microsoft Dynamics NAV Server 配置会阻止您执行此操作。如果 try 函数包含数据库写入事务,则会发生运行时错误。

于 2020-07-27T09:45:35.150 回答