CallFormメソッドの書き方
CallFormメソッドは、以下のように記述します。
INVOKE POW-SELF ”CallForm” USING ”フォーム名” [”DLL名”] [フォーム識別ID] RETURNING 復帰値
これから子フォームを開こうとしている親フォーム自身を表しています。POW-SELFの代わりに、親フォーム自身のフォーム名を使うこともできます。
フォーム名については、「4.7 プロジェクト構成要素の命名規則」を参照してください。
これから開こうとしている子フォームの名前を指定します。
CallFormメソッドとOpenFormメソッドの違い
OpenFormメソッドでフォームを開いた場合と異なるのは、CallFormメソッドで開いたフォームは、ダイアログボックスのように、開かれたフォームが閉じられるまで、呼び出し元のフォームの操作ができなくなることです。
たとえば、前項のOpenFormの説明で使用したサンプルプログラムTable2.ppjでは、[商品の追加]ウィンドウをCallFormメソッドで開いた場合、[商品の追加]ウィンドウを閉じるまで、[購入商品の入力画面]ウィンドウの操作ができなくなります。
つまり、OpenFormメソッドを呼び出すと、フォームが開かれていても、続いて次の処理が実行されますが、CallFormメソッドでは、フォームが閉じられるまで、呼び出し元の処理は停止しています。
また、CallFormメソッドは、復帰値を通して、開いたフォームから情報を受け取ることができます。復帰値を利用することにより、たとえば、ダイアログボックス形式でフォームを開いた場合、OKボタンがクリックされたか、キャンセルボタンがクリックされたかを簡単に判定することができます。使用例は、サンプルプログラム"SimpleForm\ReturnCheck.ppj"で、参照できます。CallFormメソッドについての詳細は、『リファレンス』を参照してください。