4D View Pro(特にオフスクリーンモード)を複雑なドキュメントで使用する場合、すべての計算式の計算に時間がかかり、最終的にいつ終了したかを知ることが難しい場合があります(エクスポートや印刷などのコマンドを呼び出す前に待つことが重要です)。
その解決策として、2つの新しいイベントを導入しました。そのうちの1つは、1つの計算/式ごとに呼び出され、タイマーを起動するために使用することができます。もし、他の計算式が終了しないまま時間切れになった場合、ドキュメント全体が終了したと判断することができます。
最初のイベントはOn VP Range Changed です。このイベントは、計算が終了するたびに起動します。計算が複数ある場合もあるので、2つ目のイベントはon Timer イベントです。このイベントにより、次の計算が完了するまで待つことができます。タイマーが終了する前にOn VP Range Changed イベントが投げられた場合は再起動し、そうでない場合は終了となります。
例えば、大きな文書を読み込んで、すべての計算の終了を待って、エクスポートしたい場合は、このようなクラスを作成する必要があります。
Class constructor($pdfPath:Text)
This .pdfPath
:=$pdfPath
This .autoQuit:=False
This .isWaiting:=False
Function onEvent
Case of : (FORM Event.code=On VP Ready)
// Document import VP IMPORT DOCUMENT (This.area;$largeDocument4VP)・
This .isWaiting:=True
// Start a timer to verify if all calculations are finished.
// If during this period the "On VP Range Changed" is thrown, the timer will be restarted
// The time must be defined according to the computer configuration.
SET TIMER (60)
: (FORM Event.code=On VP Range Changed)
// End of calculation detected. Restart the timer
If (This.isWaiting // To make sure not to restart the timer if you call other 4D View commands after this pointisWaiting // Stop the timer // Start the PDF export
)
SET TIMER (60)
End if
: (FORM Event.code=On Timer)
This :=False
SET TIMER (0)
VP EXPORT DOCUMENT (This.area;This.pdfPath;New object("formula";Formula(ACCEPT))
: (FORM Event.code=On URL Loading Error)xml-ph-00のようなものです。 CANCEL
End case
上記のHDIをダウンロードして、これらのイベントを使用して、大きな4D View ProファイルをPDFフォーマットでエクスポートする方法をご覧ください。
詳細は、ドキュメントセンターでご確認ください。