Transaction オブジェクトまたは Work With for Smart Devices オブジェクトの [ Section(General) ] / Edit レイアウトで自動的に呼び出される既定のプロンプトを変更できます。また、有効な値を選択できるよう、従属項目属性または変数のプロンプトを呼び出すこともできます。
Prompt(objectName,
parmx [ ,
parm1, ...., parN ]
) [
on ctrl ]
;
入力値の説明:
objectName
呼び先オブジェクトの名前です (Web パネル、パネル、Work パネルのいずれかで、少なくとも 1 つのパラメーターを返します)。
parmx
ユーザーがプロンプトから値を選択する必要がある項目属性または変数です。複合外部キーの場合は、外部キーを構成する項目属性をコンマで区切って指定する必要があります。
parm1, ...., parN
何らかの目的のために (つまり、プロンプトでフィルタを行い、条件を満たす特定のレコードだけを表示します)、呼び先オブジェクトに送信できる (呼び先オブジェクトで受け取る必要がある) オプションのパラメーターです。
ctrl
プロンプトに関連付けるコントロールです。
オブジェクト: Transaction、
Web Panel、
Work With for Smart Devices、
Panel ジェネレーター: Web、スマートデバイス
各外部キーについて、
トランザクションは、その横に表示される矢印アイコンを押すことで、フォーム内に
プロンプトまたは選択リストを自動的に提供します。また、フォームの虫眼鏡のアイコンを押すと、別のプロンプトが表示されます。同じように、Work With <トランザクション名> のリストから既に選択してあるエレメントをモバイルアプリケーションで編集する場合、各外部キーの項目属性にプロンプトが表示されます。つまり、各 WorkWith<トランザクション名> が、 [ Section(General) ] / Edit レイアウト上で各外部キーのプロンプトを表示します。
注:
- Prompt ルールが複数の出力 (out) パラメーターを参照している場合、少なくとも 1 つのパラメーターをフォーム上で有効にする必要があります。そうでない場合は、ルールが有効になりません。
- パラメーターとして示された項目属性が外部キーを構成しており、この外部キーに基づいて自動的に生成されたプロンプトがある場合、GeneXus が生成したプロンプトではなく、Prompt ルールで示されたオブジェクトが呼び出されます。
- 構文に示すように、Prompt ルールでは、オプションとして、Web インターフェースまたはモバイルインターフェースにあるコントロール名を関連付け、特定のプロンプトの呼び出しとして指定することもできます。リンクのプロパティを持つ Web オブジェクトのコントロール (TextBlock や Image など) を指定できます。モバイルアプリケーションでは、Tap イベントに関連付けることができるコントロールを指定できます。
- 「on Ctrl」を省略した場合、(対応する環境では) プロンプトのフィールドの右側に画像、ボタンなどを追加します。
外部キーの項目属性でのプロンプトの使用:
トランザクション:
Invoice Customer
{ {
InvoiceNumber* CustomerId*
InvoiceDate CustomerName
CustomerId }
CustomerName
InvoiceAmount
}
Invoice のルール:
prompt(CustomerSelection,CustomerId);
Web パネルの CustomerSelection:
ルール:
Parm(inout: &CustomerId);
フォーム:
ベーステーブル CUSTOMER を持つグリッド。CustomerId 項目属性が必ず含まれます (表示または非表示)。
イベント:
Event Enter
&CustomerId = CustomerId //選択した値がパラメーターに入れられ、返されます
Return
EndEvent
注: この例では、トランザクションに適用される Prompt ルールを示しますが、これは Web パネルで使用できます。CustomerId と同じデータタイプで、変数 &customerId を定義するとします。Web パネルの [ ルール ] セクションで次のように指定したとします:
prompt(CustomerSelection, &customerId);
フォームの変数の横にプロンプトアイコンが表示され、エンドユーザーは CustomerSelection オブジェクトから顧客を選択できます。
プロンプトに出力パラメーターが複数ある場合は、Parm ルールの最後にプロンプトアイコンが表示されます。
外部キー以外の項目属性でのプロンプトの使用
Student のトランザクション:
Student
{
StudentId*
StudentName
StudentGender
StudentAge
StudentAdd
}
ルール:
prompt(GenderSelection, StudentGender);
StudentGender (学生の性別) 項目属性は外部キーではありませんが、定義済みの値の範囲 (F または M) でなければなりません。GenderSelection という Web パネルは、2 つの選択肢 (F と M) を表示し、いずれかの値を選択できます。このプロンプトは、StudentGender 項目属性の横に配置されているアイコンを押すと、アクティブになります。
同様に、GenderSelection というパネルで、WorkWithStudent > [ Section(General) ] > Edit レイアウトの [ ルール ] セクションに上記の Prompt ルールがある場合、実行時にこのレイアウトから学生を挿入/変更しようとすると、StudentGender 項目属性で GenderSelection プロンプトがアクティブになり、目的の学生の性別を選択できます。
注: これらの例は、トランザクションまたは WW の [ Section(General) ] / Edit 内で外部キー以外の項目属性に Prompt ルールを使用する方法を示したものです。しかし、Web パネルまたはスマートデバイス用パネルでも変数 (&gender) を使用して、同じように呼び先のプロンプトオブジェクトからロードできます。
注:
- Prompt ルールは、サーバー側イベント (Web パネルでは Start イベント、Refresh イベント、Load イベント、トランザクションでは Start イベントと Exit イベント) は実行されません。ただし、パラメーター暗号化 ([ Encrypt URL parameters ] プロパティ) を使用する場合は例外です。パラメーターを暗号化する場合は、サーバー側イベントが実行されます。
- GET メソッドでプロンプト (ポップアップ) を呼び出す場合、URL の最大長を制御することはできません。これはブラウザーごとに解決されます:
- https://stackoverflow.com/questions/4618013/414-request-uri-too-large-is-this-browser-dependant
- https://support.microsoft.com/en-us/help/208427/maximum-url-length-is-2-083-characters-in-internet-explorer
Refcall ルール
Refmsg ルール