1

我在 APEX 3.2 中有不同的字段,边距是根据用户输入的值计算的。如何进行保证金验证?例如,假设边距小于零,用户应该在按钮单击时弹出警报。

4

1 回答 1

0

另请参阅此问题:APEX 3.2 (Oracle):在更改项目时动态填充页面上其他项目的值
我不是 3.2 向导,但我会尽力提供帮助。

创建一个名为“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 回答