【问题标题】:limiting only specific validation to run at a time in oracle apex page在 oracle apex 页面中仅限制一次运行的特定验证
【发布时间】:2018-04-05 08:47:54
【问题描述】:

我已经在 oracle apex 中对页面中存在的不同项目进行了页面验证,但是当我单击提交按钮时,所有验证都会同时运行。

意思是,假设我有 3 行,并且我已经对这些行进行了单独的验证,例如如果我只在第 1 行执行某项操作,那么在提交验证后,当我不接触其他两行时,应该只显示第 1 行。

但发生的情况是所有行验证错误在提交后立即显示。

请帮助解决这个问题。

【问题讨论】:

  • 请附上mvce
  • (1) Apex 有服务器端条件来说明何时应该执行某事。 (2) 可以使用一个pl/sql函数来验证,这样就可以测试不止一件事来验证。前任。先测试 if 是否为空,然后再测试其他东西。

标签: validation plsql oracle-apex oracle-apex-5.1


【解决方案1】:
declare

    v_amt number;
    v_disc number;
    v_flat_amt number;
    v_EXP_DATE DATE;
    v_disc_type varchar2(1);
begin
    select sum(c002 * c003) into v_amt
    from apex_collections
    where collection_name = 'items'
    and c003 <> 0;
    select sv.DISCOUNT_PREC, sv.FLAT_DISCOUNT_AMOUNT, cv.VOUCHER_ID, SV.EXPIRY_DATE,DISCOUNT_TYPE
    INTO v_disc, v_flat_amt, :P_VOUCHER_ID,v_EXP_DATE,v_disc_type
    from CUSTOMER_VOUCHERS cv, SALE_VOUCHERS sv
    WHERE CV.VOUCHER_ID = sv.ID
    AND CV.CUST_ID = :GLOBAL_CUSTOMER_ID
    AND PROMO_CODE=:P_VOUCHER_CODE
    AND NVL(AVAILED,'N')='N';

    if trunc(v_EXP_DATE) < trunc(sysdate) then
        :P13_DISC_PERC :=NULL;
        :P13_VOUCHER_ID:=NULL;
        APEX_ERROR.ADD_ERROR (
        p_message => v_EXP_DATE||'This is has been expired.',
        p_display_location => apex_error.c_inline_in_notification);
    end if;
    if v_disc_type = 'P' then
        :P13_DISC_PERC := round(v_amt*v_disc/100);
    else
        if v_flat_amt > v_amt then
            :P13_DISC_PERC := v_amt;
        else
            :P13_DISC_PERC := v_flat_amt;
        end if;
    end if;
    exception when no_data_found then
        :P_DISC_PERC :=NULL;
        :P_VOUCHER_ID:=NULL;
        APEX_ERROR.ADD_ERROR (
        p_message => 'Voucher not found.',
        p_display_location => apex_error.c_inline_in_notification);
end;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-26
    相关资源
    最近更新 更多