4D View Pro:インポートコールバックにより、カスタム関数を完全に解決

Deeplからの自動翻訳

ドキュメントのインポートは、4D View Proで作業する際の一般的なタスクです。しかし、これらのドキュメントにカスタム関数が含まれている場合、印刷や保存のようなアクションを実行する前に、すべての計算がいつ完了したかを判断するのは難しいことです。これを解決するために、4D 20 R9は、インポートコマンドのコールバック式が、すべてのカスタム関数が完全に処理された後にのみ実行されるようにしました。この改善により、インポートされた4D View Proドキュメントを操作する際のコントロールと信頼性が向上しました。

HDI 4DVP エンドロードカスタム関数

更新されたインポートコマンド

以下のインポートコマンドは、すべてのカスタム関数が応答するまでコールバックが実行されないことを保証します:

例えば、多くのカスタム関数を含む大きなドキュメントをオフスクリーンエリアにロードし、すべての計算が終了するのを待ってからエクスポートする場合、次のようなクラスを設定する必要があります:

property pdfPath : Text
property autoQuit:=False

Class constructor($pdfPath : Text)
   This.pdfPath:=$pdfPath
	
  // This function is called on each event for the offscreen area
Function onEvent
   Case of 
      : (FORM Event.code=On VP Ready)
         var $largeDocument4VP:="c:\\tmp\\mylargedocument.sjs"
			
         // Exports document in PDF called at the end of the import
         var $callback:=Formula(VP EXPORT DOCUMENT(This.area;\
            This.pdfPath; {formula: Formula(ACCEPT)}))
			
         // Document import with recalculation of all the formulas
         VP IMPORT DOCUMENT(This.area; $largeDocument4VP;\
            {formula: $callback; sjsOptions: {fullRecalc: True}})
			
			
      : (FORM Event.code=On URL Loading Error)
         CANCEL		
   End case 

のようにクラスを設定し、それをオフスクリーン領域で呼び出す必要があります:

// Creation of the offscreen parameter object to init the offscreen area
$offScreenParameter:=cs.OffScreenParameterClass.new($pdfPath)

// Creation of the offscreen area
VP Run offscreen area($offScreenParameter)

VPフラッシュ・コマンドの更新

また、非同期計算の終了を待つメカニズムを VP FLUSH COMMAND.インポートと同じように、計算の終了時に呼び出される数式をパラメータとして追加できるようになりました。

例えば、プログラミングによってカスタム関数の呼び出しをいくつか追加し、その計算を待ってドキュメントをエクスポートするような場合です:

// Adds an asynchronous calculation
VP SET FORMULA(VP Cell($area; 1; 2); "my4DFunction(1)")
// Waits for the calculation to finish and exports the document
VP FLUSH COMMANDS("ViewProArea"; Formula(VP EXPORT DOCUMENT("ViewProarea"; "c:\\tmp\\vpflush.xlsx")))

まとめ

このアップデートにより、カスタム関数を使用した4D View Proのインポート処理が簡素化され、すべての計算が完了した場合のみ、ドキュメントの印刷、保存、処理が簡単になりました。

Fabrice Mainguené
- Product Owner -Fabrice Mainguenéは、2016年11月に4D Programチームに参加しました。プロダクトオーナーとして、彼はユーザーストーリーを書き、それを機能仕様に変換する役割を担っています。CNAMでコンピュータサイエンスの学士号を取得した後、FabriceはWindev開発者として小さなソフトウェア出版社に入社しました。その後、彼は産業および貿易分野のさまざまな企業で、Windev および Web 開発者として、また新機能の技術アドバイザーとして働きました。