プロンプトに関するあれこれ - その1

プロンプトオブジェクトは自動生成される為、なにげなく使っている人も多いと思いますが、その実態(仕様)をちゃんと知っていますか? 今回はプロンプトにまつわる話です。

1.プロンプトとは


プロンプトとはいわゆるレコード選択用の一覧画面の事です。プロンプトオブジェクトという呼び方もしますが、実態はWebパネルオブジェクトです。
GeneXusでは、主キー項目、外部キー項目に対して自動的にプロンプトオブジェクトが作成されます。(ビルド時)

トランザクションの主キー項目、外部キー項目がプロンプトの対象になる



デザイン時は特にアイコンの表示はない

実行時にはプロンプトを表示するためのアイコンが表示される

プロンプトアイコンをクリックし、プロンプトを表示させた所


2.プロンプトの種類

プロンプトにはいくつか種類があります。

2-1.システムプロンプト

GeneXusが自動生成したプロンプトオブジェクトをシステムプロンプトといいます。特徴としては以下の通りです。

  • GeneXusが自動生成する
  • 生成対象はトランザクションの主キー項目、外部キー項目
  • オブジェクト名(GXxxxx)は変更不可 (xxxxはGeneXusが自動的に付与)
  • 項目属性とプロンプトオブジェクトとの紐付けは自動的に行われる。トランザクション上に記述は無い。ナビゲーションレポートで確認(下記キャプチャー)
  • 一覧上の項目、検索条件の項目はGeneXusが自動的に選択。項目の取捨選択は開発者は指定できない
  • トランザクションのストラクチャー(構造)変更に伴い自動的に更新される
  • プロンプトオブジェクトを削除しても、ビルド時に再作成される


トランザクションのナビゲーションレポート
「Prompts」セクションに該当するプロンプトオブジェクトがリストアップされる



2-2.ユーザープロンプト

ユーザー=開発者が作成したプロンプトの事ですが、方法は2種類あります。

(1).システムプロンプトを改変して保存
システムプロンプトはGeneXusが開発者の意図とは関係無く項目を取捨選択して自動生成されます。これが要件と合わない場合、プロンプトオブジェクトを変更する事が可能です。但し、保存する時にユーザープロンプトに変更される旨の確認ダイアログが表示されます。

特徴は以下の通りです。

  • オブジェクト名は変更不可
  • プロンプトオブジェクトの変更(項目の追加・削除等)は可能
  • トランザクションオブジェクト上の項目属性との紐付けは自動で行われる
  • その後のトランザクションストラクチャーの変更には追従しない



システムプロンプトを改変(項目の追加・削除、プロパティ変更)して保存する時
自動更新されなくなる旨の確認ダイアログが表示される

ナビゲーションレポートではユーザープロンプトには人のアイコンが表示される

ユーザープロンプトになってもオブジェクト名は変更不可
項目属性との紐付けは自動で行われている


(2).開発者が作成したWebパネル
開発者が一から作成したWebパネルをプロンプトとして利用する事が可能です。この場合は、トランザクション上の項目属性との紐付けは自動で行われませんので、「Prompt」ルールを記述し、項目属性とプロンプトオブジェクトを明示的に関連付けします。
又、システムプロンプトを別名保存した場合も同様です。

特徴は以下の通りです

  • オブジェクト名は自由に設定可能
  • トランザクションオブジェクト上の項目属性との紐付けはPromptルールを記述
  • プロンプトオブジェクトの変更は可能

システムプロンプトを別名保存してもユーザープロンプトになる
この場合はオブジェクト名を任意に設定可能

Promptルールの記述で関連付け

自分で作成したプロンプトが表示される




それではプロンプトを使用したくない場合、又、システムプロンプトを自動生成したく無い場合はどうしたらよいでしょうか? これは次の機会に。





コメント

このブログの人気の投稿

データプロバイダーを使いこなそう - 応用編その4 スケジューラー 補足編

HTMLヘッダーにあれこれ直接追加したいとき

GeneXusにおけるWebアプリケーションセキュリティ対策 - OWASP 2010 Top10 Security Risks in GeneXus Applications