Получение определенного значения из глобальной переменной checkbox в oracle apex - PullRequest
0 голосов
/ 07 ноября 2019

Я создал флажок, используя флажок apex_item, и массив APEX_APPLICATION.G_F01 содержит значения выбранных значений флажка. Мой вопрос, как получить только одно определенное значение выбранного флажка из этого массива. Найдите мой код plsql здесь и, пожалуйста, помогите мне

declare
    var_hire DATE ;
    tenure_dt DATE;
    i number ;
BEGIN
    FOR I IN 1..APEX_APPLICATION.G_F01.count LOOP
        SELECT HIREDATE INTO var_hire from employee where empno=APEX_APPLICATION.G_F01(1);
        SELECT var_hire+ INTERVAL '1' YEAR INTO  tenure_dt FROM DUAL;
             IF SYSDATE < to_Date(tenure_dt,'DD-MON-YY') THEN
                HTP.P('The employee cannot be deleted');    
             END IF ;
    END LOOP ;
END;

Новый код PLSQL

 declare
    l_index number;
    var_hire DATE ;
    tenure_dt DATE;
begin
    for i in 1..APEX_APPLICATION.G_F01.count loop
     if(APEX_APPLICATION.G_F01.exists(i)) then  
         SELECT HIREDATE INTO var_hire from employee where empno=APEX_APPLICATION.G_F01(i);
         SELECT var_hire+ INTERVAL '1' YEAR INTO  tenure_dt FROM DUAL;
         IF SYSDATE < to_Date(tenure_dt,'DD-MON-YY') THEN
              HTP.P('The employee cannot be deleted');    
         END IF ;
     end if ;
    end loop;
 end ;

1 Ответ

0 голосов
/ 07 ноября 2019

APEX_APPLICATION.G_F01 содержит значения выбранных значений флажков

Это не то, что предлагает ваш запрос:

where empno = APEX_APPLICATION.G_F01(1)

G_F01 равно либо empno,или флажок. Не может быть и того, и другого.

Если мы предположим, что G_F01 на самом деле empno, вы должны найти, какой из них является вашим флажком. Как? Проверьте элемент в вашем браузере. Если выясняется, что флажок, например, G_F05, значит, вам не хватает другого условия, которое проверяет значение флажка, например

where empno = APEX_APPLICATION.G_F01(1)
  and APEX_APPLICATION.G_F05 = 1             --> this

, а затем выполните что-то с этой информацией.

...