1

APEX 3.2 にはさまざまなフィールドがあり、マージンはユーザーが入力した値に応じて計算されます。Margin の検証を行う方法は? 例マージンがゼロ未満であると仮定すると、ユーザーはボタンのクリック時にアラートポップアップを取得する必要があります。

4

1 に答える 1

0

次の質問も参照してください: APEX 3.2 (Oracle): アイテムを変更すると、ページ上の他のアイテムの値が動的に入力
されます。

「calculate_margin」というアプリケーション プロセスを作成します。

DECLARE
   lMargin NUMBER;
BEGIN
   lMargin := :P8_ITEM1 + :P8_ITEM2 + :P8_ITEM3;

   IF lMargin < 0 THEN
      htp.p('{"result":"nok", "message":"margin is less than zero!"}');
   ELSE
      htp.p('{"result":"ok", "message":"margin is ok"}');
   END IF;      
END;

この JavaScript コードをページに配置します。JavaScript セクションがない場合は、これを<script type="text/javascript"></script>タグの間に入れます。

function checkMargin(){
   $.post('wwv_flow.show', 
          {"p_request"      : "APPLICATION_PROCESS=calculate_margin",
           "p_flow_id"      : $v('pFlowId'),
           "p_flow_step_id" : '0',
           "p_instance"     : $v('pInstance'),
           "p_arg_names"    : ['P8_ITEM1','P8_ITEM2','P8_ITEM3'],
           "p_arg_values"   : [$('#P8_ITEM1').val(),$('#P8_ITEM2').val(),$('#P8_ITEM3').val()]},
           function(data){
              if(data){
                 var lReturn = $.parseJSON(data);
                 if(lReturn.result=='ok'){
                    //you could do something here 
                 } else {
                    alert(lReturn.message);
                 };
              };
           }
   );
};

ではボタンに移ります。これが apex で定義したボタンである場合は、URL を指すように変更し、URL に次のように入力します。

javascript:checkMargin();
于 2012-12-03T09:33:43.587 に答える