2

基本的に、次のサンプル SQL クエリに基づく SQL 更新可能レポートがあります。

select A, B, C from my_table;

このレポートに基づいて、列 B を名前付き LOV に基づく SELECT LIST にしました。また、この列に「lov_select」という ID を割り当てました。

ここのC列もテキストエリアです

私の質問とこれを行う方法がわからないのは、このレポートが列 B - 選択リストから選択された値に基づいて 3 行を返すと仮定すると、このレポートは行によって異なる可能性があるため、この値を列 B 選択リストで使用したいということです。テーブルから別の値を取得し、この値を列 C のテキスト フィールドに返し、この選択リストの値を使用します。

動的アクションを介してこれを行いたいと思います。

例えば:

Column A                Column B (select list LOV)   Column C
----------------------- ---------------------------- ------------------------------------
Row 1                   NAME1                        returns 5                       
Row 2                   NAME2                        returns 6
Row 3                   NAME3                        returns 7

したがって、行 2 列 B を変更して「NAME2」を選択すると、値「NAME2」を使用してクエリを実行し、値 6 を返します。次に、NAME2 に沿って列 C に入力します。

4

1 に答える 1

3

ソース付きの手動表形式:

select 
apex_item.text(1, empno) empno,
apex_item.text(2, ename) ename,
apex_item.text(p_idx => 3, p_value => deptno, p_size => 4, p_maxlength => 2, p_attributes => 'class="deptno"') deptno,
apex_item.text(4, null) dname
from emp

2 つの可能な解決策:

  1. ajax プロセスによる動的アクション

    • イベント: 変更
    • 選択タイプ: jQuery セレクター
    • jQuery セレクター: .deptno
    • 状態:状態なし

    真のアクション: JavaScript コードを実行する

    • ページ読み込み時に起動: オフ

      var lFetchFor = $(this.triggeringElement).val(), 
          lTarget = $(this.triggeringElement).closest('tr').find('input[name="f04"]');
      
      $.post('wwv_flow.show', 
             {"p_request"      : "APPLICATION_PROCESS=fetch_value",
              "p_flow_id"      : $v('pFlowId'),
              "p_flow_step_id" : $v('pFlowStepId'),
              "p_instance"     : $v('pInstance'),
              "x01"            : lFetchFor}, 
             function(data){
                lTarget.val(data);
             });
      
    • 影響を受ける要素タイプはありません

  2. 動的アクションのみと隠しアイテム

    • イベント: 変更
    • 選択タイプ: jQuery セレクター
    • jQuery セレクター:.deptno
    • 状態:状態なし
    • 真のアクション: 設定値
      • セットタイプ:Javascript式
      • Javascript 式:$(this.triggeringElement).val()
      • ページ読み込み時に起動: オフ
      • 影響を受ける要素:
        • 選択タイプ: アイテム
        • アイテム:P37_FIND_DEPTNO
    • 真のアクション: 設定値
      • セットタイプ:SQL文
      • SQL ステートメント:select dname from dept where deptno = :P37_FIND_DEPTNO;
      • 提出するページ項目:P37_FIND_DEPTNO
      • ページ読み込み時に起動: オフ
      • 影響を受ける要素:
        • 選択タイプ: アイテム
        • アイテム:P37_FIND_DEPTNO_RESULT
    • 真のアクション: JavaScript コードを実行する

      • コード:

        $(this.triggeringElement).closest('tr').find('input[name="f04"]').val($v ('P37_FIND_DEPTNO_RESULT'));
        
      • ページ読み込み時に起動: オフ

      • 影響を受ける要素タイプはありません
    • 2 つの非表示のアイテム、保護された値を [いいえ] に設定
      • P37_FIND_DEPTNO
      • P37_FIND_DEPTNO_RESULT

どちらも値のフェッチを処理しますが、それをどのように解決したいかによって異なります。

于 2012-11-07T13:47:54.767 に答える