Q90:複数の画面の間で1つの共通のデータや処理を呼び出したい場合に、パブリック変数/関数として使用するにはどのように変数/関数を設定すれば良いのでしょうか。例としては、ログインユーザのID、パスワードからデータ更新者の情報を設定する場合などです。
A90:
お問い合わせの件は、リモートコンポーネントをご利用になるのがよろしいかと存じます。リモートコンポーネントとは、ネットワークで接続された他のPC上で動作するMZ Platform上のコンポーネントのメソッドを呼び出す機能ですが、接続先を"local"とすることで、現在のMZ Platform上のコンポーネントのメソッドを呼び出すこともできます。
サンプルアプリケーションを、本文末尾の関連ファイル「パブリック変数.mzax」に用意しましたので、こちらを用いて設定方法等をご説明させていただきます。なお、設定の詳細は付属の「データ連携導入手順書」をご覧ください。
関連ファイル「パブリック変数.mzax」は、"サブフレーム"複合コンポーネントを持ち、その複合コンポーネントの中からトップ階層のテキストフィールド[KEY:"公開設定コンポーネント"]のメソッドを呼び出すようになっています。設定方法は以下の通りです。
【テキストフィールド[KEY:"公開設定コンポーネント"]の設定】
外部からのリモート接続が可能となるように、属性情報設定画面から以下の属性を設定します。属性情報設定画面は、コンポーネント上右クリック-[属性情報設定...]により表示されます。
・ComponentPublicName
リモート接続時に使用される名称です。アプリケーション内で一意でなければなりません。パブリック変数.mzaxでは、"メインテキスト"と指定しています。
・AllowRemoteInvokaion
リモート接続によるメソッド起動を許可するかどうかを指定します。trueを選択します。
なお、この設定を行うコンポーネントは、必ずしもトップ階層にある必要はありません。
【リモートコンポーネントの設定】
"サブフレーム"複合コンポーネント内へ移動します。公開設定を行ったテキストフィールド(公開名"メインテキスト")へ接続して、「setText(String)」と「getText()」を呼び出せるように設定することにします。
(1) 画面上右クリック[コンポーネント追加]-[処理部品]-[連携]-[リモートコンポーネント]と選択してリモートコンポーネントを追加します。
(2) 通常のコンポーネントと同様、イベントの接続コンポーネントにリモートコンポーネントを設定します。パブリック変数.mzaxでは、ボタン[KEY:"メインテキスト設定"]に接続させています。
(3) イベント接続先のリモートコンポーネント上右クリック-[起動メソッド設定]により、起動メソッド情報ダイアログを表示させます。[メソッド情報編集]ボタンをクリックします。
(4) メソッド情報編集ダイアログが表示されます。ここで、接続先プラットフォーム名とコンポーネント公開名を設定します。この場合、接続先プラット フォーム名は"local"、コンポーネント公開名は"メインテキスト"となります。コンポーネントIDは空欄で構いません。メソッド情報一覧欄には、現在設定されているメソッド情報のリストが表示されます。
(5) [追加]もしくは[編集]ボタンをクリックし、表示されたメソッド情報入力ダイアログで、メソッド名、メソッド戻り値の型、メソッド引数の型を指定します。「パブリック変数.mzax」では、以下の2つのメソッドが設定されています。
getText、java.lang.String、(なし)
setText、void、java.lang.String
(6) [設定]あるいは[OK]ボタンをクリックして起動メソッド情報ダイアログまで戻ります。メソッド選択用のコンボボックス(プルダウンメニュー)に設定したリモートメソッドが表示されているのが分かります。
(7) あとは通常のコンポーネントと同様に、リモートコンポーネントに設定したリモートメソッドを利用できます。「パブリック変数.mzax」では、ボタンのクリックにより、"メインフレーム"ウィンドウのテキストを"サブフレーム"ウィンドウに表示させたり、"サブフレーム"ウィンドウのテキストを"メインフレーム"に表示させたりすることができるようになっています。
関連ファイル:パブリック変数.mzax (※このファイルは、ZIP形式に圧縮してあります。)