1

Navisionでドキュメントを印刷しようとすると、次のエラーが発生します。 提供されたエラーメッセージ

翻訳:このメッセージはC / ALプログラマー向けです:メンバーActivePrinterの呼び出しに失敗しました。MicrosoftWordから次のメッセージが返されました。プリンタエラー。

次の行でエラーが発生します:

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関数(関数のプロパティを参照)が導入され、任意の関数に設定できます。その関数を呼び出して(!)ブール値の戻り値を評価すると、エラーが抑制されるため、falseが返されます。

詳細情報:https ://docs.microsoft.com/en-us/dynamics-nav/handling-errors-by-using-try-functions

重要な情報:

try関数によってデータベースに加えられた変更はロールバックされないため、try関数内にデータベース書き込みトランザクションを含めないでください。既定では、MicrosoftDynamicsNAVサーバーの構成によりこれを実行できません。try関数にデータベース書き込みトランザクションが含まれている場合、ランタイムエラーが発生します。

于 2020-07-27T09:45:35.150 に答える