はじめに
ご覧いただいた方は、Oracle APEXを用いて画面開発を行っており、開発に苦労されている方かと思います。
本記事では、動的アクションを用いてPL/SQLを記述したい方へ設定方法と意味について記述したいと思います。
※本記事は全て日本語表記で翻訳されている名称を用いています。
結論
- PL/SQLにて実行する際に、画面上に設定したアイテムなどを使用する場合は「送信するアイテム」に設定。PL/SQL上で作成した値を画面上に設定したアイテムへ反映させたい場合は「戻すアイテム」に設定することが必要となります。
設定について
現在作成している動的アクションの状態を確認したいと思います。
作成したプログラムはシンプルで「P1_DATE」に入力した値を「YYYY/MM/DD」のようなフォーマットにした値を「P1_SDATE」に格納するプログラムとなります。
ここで、PL/SQLにて使用したいアイテムを緑色の枠線(送信するアイテム)に設定することで、プログラムコード上で設定しているアイテムに値を受け渡すことが可能となります。もし、設定していない場合は、値が何も受け渡しされずに処理が行われるため、注意が必要となります。
次にプログラムコード上で作成した、赤色の枠線(戻すアイテム)に設定することで、プログラムコード上で作成した値を画面上に表示することが可能となります。
実際に設定したときの挙動について
「送信するアイテム」に設定していない場合は以下のようになります。
上記のように、入力した「P1_DATE」の値を取得できず、「/」のみ表示される状態となってしまいました。
「戻すアイテム」に設定していない場合は以下のようになります。
上記のように、実行しても戻すアイテムに値が何も入らない状態となります。
そのため、「送信するアイテム」と「戻すアイテム」には適切な値を設定するようにしてください。
応用手法について
これから記述する内容は、上記記述の応用技となります。
先ほどご説明した「送信するアイテム」や「戻すアイテム」は複数のアイテム指定することが可能となります。
ただし、複数のアイテムを指定する場合は注意が必要となります。
戻すアイテムに複数のアイテムを指定した場合、OracleAPEXは左から順番にアイテムへ値を投入するため、設定したアイテムを用いて別の動的アクションを起動する場合には保管したいアイテムの後に動的アクションを起動するためのアイテムを指定する必要があります。
サンプルとして以下のプログラムを用意しました。
<---------------------------------------------------------------------------------------->
【サンプルプログラムの説明】
内容としては、入力した日付(P1_DATE)が基準日(P1_KDATE)から数えて前後何日離れているかを算出するプログラムとなります。
P1_FLGが変更された際に、②のプログラムが実行されます。
<---------------------------------------------------------------------------------------->
緑色の枠線の順番に設定することで、P1_SDATEを保持した状態で②のプログラムが実行されるため、取得したい値(差分日数)を取得することが可能となります。
それでは、緑色の枠線の順序を逆に設定した場合どうなるのでしょうか。
結果として、実行後の赤色の枠線のように値が計算できずに、数字が何も入っていない状態となります。
上記のように「戻すアイテム」に関して、複数のアイテムを設定する場合は、注意が必要となりますので、開発を行う際には、しっかり確認を行ってください。
おわりに
本記事では、OracleAPEXを用いて画面開発を行う際の動的アクション設定方法について記述させていただきました。
本記事が、どなたかの役に立てたのであれば幸いです。
本記事をご覧頂き、ありがとうございました。