2020年3月13日金曜日

ページ・アイテムのデフォルト値を設定する3つの方法

フォームが開いたときにページ・アイテムにデフォルト値を設定しておきたい、という要望がありました。パッと思いついた3つの方法について、紹介したいと思います。SQLワークショップのサンプル・データセットに含まれるEMP / DEPTをインストールし、それから作成したアプリケーションを説明に使用します。

レポートから作成をクリックしてフォームを開きます。または、編集アイコンをクリックして、フォームを開きます。JOBの設定はあらかじめ削除しました。


フォームが開きますが、ここのJOBにSALESMANというデフォルト値を設定します。

デフォルトを設定する


最初に作成をクリックしてフォームを開いたときは、もちろん空白です。


ページ・デザイナを開いて、ページ・アイテムP4_JOBデフォルトを設定します。タイプとして静的静的値としてSALESMANを指定します。デフォルト値の設定方法は静的以外にも、アイテムSQL問合せコロンで区切られたリストを戻すSQL問合せPL/SQL式PL/SQLファンクション本体順序といった方法を選ぶことができます。


デフォルトを設定すると、フォームがオープンするときにJobとしてSALESMANが設定されます。



計算を設定する


ページ・アイテムのデフォルトは、新規行の場合のみ設定されます。ですので、最初にあるページで編集をクリックすると、Jobは空白のままです。


ほとんどの場合で「私のやりたいことは、そうじゃないんだ。」となります。このような場合にデフォルト値を設定するには、ページ・アイテムP4_JOBに計算を設定します。P4_JOB上でコンテキスト・メニューを開き(右クリック)、計算の作成を実行します。


計算のプロパティをそれぞれ設定します。実行オプションポイントは、リージョンの前です。ページのレンダリング処理の前にページ・アイテムに値を設定しないと表示されません。計算のプロパティはタイプ静的値静的値SALESMANとします。そして、サーバー側の条件として、タイプアイテムはNULLとし、アイテムP4_JOBにします。P4_JOBに値が無い時だけ、値としてSALESMANを設定します。


この計算が設定されていると、ページ・アイテムのデフォルトの設定は不要になります。

動的アクションを設定する


計算はサーバー・サイドでの処理によるデフォルト値の設定ですが、ブラウザ側でもできます。動的アクションをページ・アイテムP4_JOBに設定します。P4_JOBの上でコンテキスト・メニューを表示させ、動的アクションの作成を実行します。


動的アクションのタイミングとして、イベント変更選択タイプアイテムアイテムP4_JOBを指定します。クライアント側の条件として、タイプアイテムはnullアイテムP4_JOBを指定します。


Trueアクションとして、値の設定を指定します。設定のセクションでは、タイプの設定Static AssignmentSALESMANです。変更イベントの禁止は、この設定には影響しないので、ON/OFFどちらでもかまいません。影響を受ける要素は、値が設定されるコンポーネントのことですので、選択タイプアイテムとして、アイテムP4_JOBを指定します。実行オプション初期化時に実行は必ずONです。これをONにしていないと、フォームが開いた時に値が設定されません。



計算を使ったデフォルトの設定と、(ここで作成した)動的アクションを使ったデフォルトの設定は画面上の動作が異なります。計算の場合はデフォルトを設定するタイミングは、ページがロードされるとき、一度のみですが、動的アクションの場合は、値が変更されるたびに評価されます。ですので、Jobを空白にして、別のページ・アイテムにフォーカスが移ると、またデフォルト値が設定されます。動的アクションのタイミングとしてページのロードを選ぶと動作もまったく同じになるはずです。