2

私が本当に必要としているのは、インタラクティブレポートのようにフィルタリング可能でありながら、一度に複数の行を更新できる表形式です。これがリモートでさえ可能である可能性はありますか?

また、「削除」機能がアクティブ化されたときに表示される表形式の行のチェックボックスをハイジャックし、それらを使用して、共通の属性に基づいてグループに割り当てられる行を選択したいと思います。(つまり、テーブルに在庫内のパーツが含まれているため、共通の属性を持つパーツをグループに割り当てて処理できるようにする必要があります)

おそらく、グループをPKとして、そのグループに割り当てられたパーツをリストなどとして、「グループ」テーブルに新しい行を作成するgroup-by関数...?

考え?私はちょっと途方に暮れています...

4

2 に答える 2

4

それほど難しいことではありません:)IRを疑似表形式に簡単に変換できます。そして、常によりスタイリッシュでエレガントなソリューションがありますが、それらは通常、多くのjavascriptやプラグインを含みます。それらは素晴らしいですが、もちろんあなたが望むものや必要なものであるとは限りません。

では、出力を操作する方法は?APEX_ITEM apiを使用してください!

簡単な例。私はempに基づいて構築されたirを持っています。チェックボックスとテキストボックスを追加しました。 例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 asStandard Report Columnます。そうしないと、出力はプレーンテキストになります。htmlコードを生成するのでapex_item、もちろんプレーンテキストは必要ありません:) ir列の属性

ここで、生成されたフィールドで実行するアクションに基づいて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;

これにより、チェックボックスがオンになっているレコードがループされ、テーブルに挿入されます。たとえば、KINGでボックスにチェックマークを付け、テキストフィールドを編集しました。レコード番号2を参照してください(1は前のアクションからのものです;)) 例irを編集 編集の出力

しかし、まだそこまでは進んでいません。表形式のフォームとそのプロセスの機能、および楽観的ロックのようなものをまだ見逃しています。表形式を使用したい場合は、たとえば、このリンクを確認することもできます。このような独自のmruプロセスなどを作成することについてもいくつか質問があります;)

于 2011-11-29T22:36:30.783 に答える
3

同じ表形式を使用して、それは可能です。

  1. 表形式領域にアイテム(テキストアイテム)を作成します。
  2. 送信ボタンを作成します(この地域のアイテムの間に表示されるボタンを作成します)
  3. 表形式の領域ソースのwhere句を変更します

たとえば、顧客名で検索する必要があります。

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))||'%'
)

シンプルで同じ表形式を使用します。

于 2012-09-21T17:09:34.097 に答える