2023年2月15日水曜日

対話グリッドの列を空白にしたときに他の列も空白にする

 対話グリッドの列を空白にしたときに他の列も空白にする実装をしてみます。

サンプル・データセットEMP/DEPTの表EMPソースとした対話グリッドを使用して、実装を紹介します。

列JOBを空白にしたときに、列SALとCOMMを空白に変更します。

以下のように動作します。


対話グリッドの列JOBに動的アクションを作成します。

識別名前JOBがNULLになったときとしました。

タイミングイベント変更選択タイプ対話グリッドEmployees(対話グリッドのリージョンのタイトル)、JOBになります。

クライアント側の条件として、タイプアイテム/列はnullを選択します。コンポーネント・タイプとしてJOBを選択します。

これで、列JOBがNULL(空白)に変更されたときだけ、TRUEアクションが呼び出されます。クライアント側の条件という名前の通り、ブラウザ側(のJavaScriptの処理)で評価され、サーバーとの通信は発生しません。


実行されるTRUEアクションとしてクリアを選択し、影響を受ける要素選択タイプとしてSAL,COMMを指定します。


以上で実装は完了です。

比較的簡単な実装ですが、クライアント側の条件を変えたり、呼び出すTRUEアクションを変えたりすることで、色々と応用ができるでしょう。

今回作成したAPEXアプリケーションのエクスポートを以下に置きました。
https://github.com/ujnak/apexapps/blob/master/exports/set-null-if-column-is-set-null.zip

Oracle APEXのアプリケーション作成の参考になれば幸いです。