2.12.2 メッセージ・ボックス

メッセージ・ボックスは、現在のフォームの前面に表示されます。メッセージ・ボックスはモーダルなので、下のフォームを再度アクティブにするには、ユーザーはボタンの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ファンクションは、以下の引数を持ちます。

引数

説明

指定できる値

Enable Buttons

メッセージ・ボックスに表示されるボタン

YesNo

YesNoCancel

OK

OKCancel

AbortRetryIgnore

RetryCancel

Default Button

フォーカスが置かれるボタン

Enable Buttons引数のボタンのいずれか

Icon to Show

メッセージ・ボックスに表示されるアイコン

Question(疑問符アイコン)

Stop(停止アイコン)

Exclamation(感嘆符アイコン)

Information(情報アイコン)

Warning

Asterisk

Error

Hand

None

Title of Message Box

 

一重引用符に囲われたタイトルのテキスト

Text to 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')