対話グリッドの列を空白にしたときに他の列も空白にする実装をしてみます。
サンプル・データセットのEMP/DEPTの表EMPをソースとした対話グリッドを使用して、実装を紹介します。
列JOBを空白にしたときに、列SALとCOMMを空白に変更します。
以下のように動作します。
識別の名前は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のアプリケーション作成の参考になれば幸いです。
完