メッセージ・ボックスは、現在のフォームの前面に表示されます。メッセージ・ボックスはモーダルなので、下のフォームを再度アクティブにするには、ユーザーはボタンの1つをクリックしてメッセージ・ボックスを終了させる必要があります。
メッセージ・ボックスは、以下のようにタイトル、アイコン、メッセージ・テキスト、および1つ以上のボタンで構成されます。
メッセージ・ボックスは、MESSAGE_BOX_SHOW組み込みファンクションを使用して作成されます。以下は上のメッセージ・ボックスのソースです。
use builtin(MESSAGE_BOX_SHOW) with_args(OK OK Information 'Radio Button' 'Radio button 2 has been selected')
MESSAGE_BOX_SHOWファンクションは、以下の引数を持ちます。
|
以下のコードがあります。
use builtin(MESSAGE_BOX_SHOW) with_args(YesNo No Question 'Confirmation' 'Do you want to proceed with the operation?')
ここでは、はいといいえの2つのボタンがあるメッセージ・ボックスを作成して表示します。いいえがデフォルトのボタンです。アイコンは、以下のように疑問符です。
ユーザーの応答の取得
メッセージ・ボックスに複数のボタンがある場合は、ユーザーがクリックしたボタンを知る必要があります。応答を取得するには、TO_GETパラメータを使用し、応答を保存するフィールドを指定します。フィールドは、20文字以下の英数字フィールドでなくてはなりません。
確認ダイアログ・ボックスの応答を#REPLYという名前のフィールドに保存するには、以下のように指定します。
use builtin(MESSAGE_BOX_SHOW) with_args(YesNo No Question 'Confirmation' 'Do you want to proceed with the operation?') to_get(#reply)
それから#REPLYの値を使用し、プログラムが実行するアクションを決定します。例:
If cond'#reply *EQ Yes'
use builtin(MESSAGE_BOX_SHOW) with_args(OK OK Information '' 'Yes was
pressed')
else
use builtin(MESSAGE_BOX_SHOW) with_args(OK OK Information '' 'No was
pressed')
endif
メッセージ・ボックスのボタンにより、戻り値は以下のようになります。
適切なボタンの使用
メッセージ・ボックスに置くボタンを決定するときに、メッセージのテキストに注意を払い、テキストとボタンが一致するようにしてください。例えば、メッセージボックスが質問をする場合は、適切なボタンははい、いいえと場合によってはキャンセルで、OKとキャンセルではありません。
また、メッセージが表示される文脈にも注意してください。例えば、情報メッセージでは、OK以外のボタンはありません。
メッセージ・テキストのフォーマット
メッセージのテキストは、前の例よりも長くでき、その一部またはすべてをフォームのコントロール(フィールドやグリッドなど)またはデータベースから取得できます。複数のテキスト文字列から構成されるメッセージを作成するには、 MESSAGE_BOX_ADDファンクションかMESSAGE_BOX_APPENDファンクションを使用できます。MESSAGE_BOX_APPENDファンクションは、文字列を結合し、MESSAGE_BOX_ADDは、文字列を別々の行に追加します。
MESSAGE_BOX_APPEND
MESSAGE_BOX_APPENDファンクションは、文字列を結合します。以下のダイアログ・ボックスのテキストは、PSLMSTファイルのフィールド#GiveName、#Surname、#Address1、#Address2、および#Address3を追加して作成されました。
ソース・コードは以下の通りです。
change #empno 'A1234'
fetch fields(#givename #surname #address1 #address2 #address3) from_file(pslmst) with_key(#empno)
use builtin(MESSAGE_BOX_APPEND) with_args(#givename)
use builtin(MESSAGE_BOX_APPEND) with_args(#surname)
use builtin(MESSAGE_BOX_APPEND) with_args(#address1)
use builtin(MESSAGE_BOX_APPEND) with_args(#address2)
use builtin(MESSAGE_BOX_APPEND) with_args(#address3)
use builtin(MESSAGE_BOX_SHOW)
MESSAGE_BOX_ADD
MESSAGE_BOX_ADDファンクションは、テキスト文字列を別々の行に追加します。このメッセージ・ボックスは、上の例と同じ方法で作成されていますが、MESSAGE_BOX_ADDステートメントを使用しています。
1行に最大10のアイテムを追加できます。例えば、メッセージ・ボックスでフィールドの前に質問とスタティック・テキストを追加して行を指定できます。
change #empno 'A1234'
fetch fields(#givename #surname #address1 #address2 #address3) from_file(pslmst) with_key(#empno)
use builtin(MESSAGE_BOX_ADD) with_args('Update employee details?')
use builtin(MESSAGE_BOX_ADD) with_args('')
use builtin(MESSAGE_BOX_ADD) with_args('First name:'#givename)
use builtin(MESSAGE_BOX_ADD) with_args('Surname:'#surname)
use builtin(MESSAGE_BOX_ADD) with_args('Street:' #address1)
use builtin(MESSAGE_BOX_ADD) with_args('Suburb:'#address2)
use builtin(MESSAGE_BOX_ADD) with_args('State and Country:'#address3)
use builtin(MESSAGE_BOX_SHOW)
MESSAGE_BOX_SHOWファンクションで引数を指定しない場合は、フォームの記述がメッセージ・ボックスのタイトルに使用され、アイコンは表示されず、OKボタンが使用されます。
ファンクションのフォーマットでは、Text to Show以外のMESSAGE_BOX_SHOWファンクションのすべての引数を使用できます(テキストを指定すると、フォーマットされたテキストを上書きします)。以下のステートメントは、はいボタンといいえボタンを追加し、疑問符アイコンとEmployee Detailsというタイトルをメッセージ・ボックスに追加します。
use builtin(MESSAGE_BOX_SHOW) with_args(YesNo No Question 'Employee Details')