APEX- MRU機能を備えた表形式は、インタラクティブレポートのようなフィルタリング機能を備えていますか?
-
25-10-2019 - |
質問
私に本当に必要なのは、インタラクティブなレポートのようにフィルタリング可能である間に一度に複数の行を更新できる表形式です。これがリモートでも可能な可能性はありますか?
また、「削除」機能がアクティブになったときに表示される表形式の行チェックボックスをハイジャックし、それらを使用して、共通属性に基づいてグループに割り当てられる行を選択します。 (つまり、私のテーブルには私の在庫に部品が含まれており、処理のためにグループに共通の属性を持つ部品を割り当てることができる必要があります)
おそらく、グループをPKとしてグループとともに「グループ」テーブルに新しい行を作成し、そのグループに割り当てられた部品をリストなどとして作成するグループバイ関数...?
考え?私はちょっと途方に暮れています...
解決
それは本当にそれほど難しいことではありません:)あなたはIRを疑似亜炭の形に簡単に変えることができます。そして、よりスタイリッシュでエレガントなソリューションは常にありますが、通常は多くのJavaScriptやプラグインが含まれます。彼らは素晴らしいですが、もちろんあなたが望むものや必要なものとは限りません。
では、出力を操作する方法は?使用 APEX_ITEM API!
簡単な例。私はEMPにIRを構築しています。チェックボックスとテキストボックスを追加しました。
select empno, ename, deptno,
apex_item.checkbox(1, empno) empno_selected,
apex_item.text(2, ename, 10, 10) ename_edit
from emp
忘れないでください:列の属性で、設定します Display text as
に Standard Report Column
. 。そうでない場合、出力はプレーンテキストになります。以来 apex_item
HTMLコードを生成します、あなたはもちろんプレーンテキストを望んでいません:)
これで、生成されたフィールドで行うアクションに基づいてDMLを実行できるようにするには、プロセスが必要になります。生成されたアイテムはアプリケーション変数に保存されていることを指摘することから始めましょう。 すなわち、apex_applicationの配列。チェックボックスの動作に注意してください:チェックされたボックスのみがアレイに値を保存します!
例として、私はこれを小さくしました On Submit process
(また追加します SUBMIT
実際に送信を実行するフォームのボタン...)
for i in 1..apex_application.g_f01.count
loop
insert into empselected(empno, selectiondate, ename_changed)
values(apex_application.g_f01(i), sysdate, apex_application.g_f02(i));
end loop;
これにより、チェックボックスがチェックされた状態でレコードをループし、テーブルに挿入します。たとえば、私はキングで箱にチェックを入れて、テキストフィールドを編集しました。記録NR 2を参照してください(1は以前のアクションからのものです;))
まだそこにはまだありません。あなたはまだ表形式の機能とそれがプロセスであり、楽観的なロックのようなものを見逃しています。表形式にとどまりたい場合は、たとえば、たとえば、 このリンクをご覧ください. 。ここには、独自のMRUプロセスなどを書くことについてもいくつかの質問がありました。 このように ;)
他のヒント
同じ表形式を使用して、それは可能性があります。
- 表形式領域でアイテム(テキストアイテム)を作成します。
- 送信]ボタンを作成します(この地域のアイテムに表示されるボタンを作成します)
- 表形式の領域ソースの句を変更する
たとえば、顧客名で検索する必要があります。
WHERE lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
他のフィールドを検索する必要がある場合は、Where句に他の条件を追加するだけです
WHERE (
lower(CUSTOMER_NAME) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
or lower(CUSTOMER_address) LIKE '%'||lower(nvl(:PXX_SEARCH,CUSOTOMER_NAME))||'%'
)
シンプルで、同じ表形式を使用します。