powered by simpleCommunicator - 2.0.52     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача занчения из APEX_ITEM в процедуру/процесс
4 сообщений из 4, страница 1 из 1
Передача занчения из APEX_ITEM в процедуру/процесс
    #39797256
od_seva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
На странице есть отчет с APEX_ITEM.CHECKBOX и APEX_ITEM.SELECT_LIST_FROM_QUERY. Есть процесс, который при выборе чекбоска отправляет данные в процедуру. Когда данные в отчете выстроены так, что выбранный чекбокс первый, то значение из APEX_ITEM.SELECT_LIST_FROM_QUERY передается верное, но если чекбокс будет на другом месте, то все равно передается значение APEX_ITEM.SELECT_LIST_FROM_QUERY которое находится в первой позиции, что делается не так?

Пример построения отчета:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
elect
APEX_ITEM.CHECKBOX(1, 'element1') as chk, 
'element1'  as element1,
'element2'  as element2,
'element3'  as element3,
APEX_ITEM.SELECT_LIST_FROM_QUERY(1, p_value => null,
p_query => 'select ''value1'' as d,  ''value1'' as r
  from dual
union  
select ''value2'' as d,  ''value2'' as r
  from dual', 
p_show_null => 'YES', p_null_value => 'value1', p_null_text => 'value1') as element4
from dual

union

select
APEX_ITEM.CHECKBOX(1, 'element1') as chk, 
'element11'  as element1,
'element21'  as element2,
'element31'  as element3,
APEX_ITEM.SELECT_LIST_FROM_QUERY(1, p_value => null,
p_query => 'select ''value1'' as d,  ''value1'' as r
  from dual
union  
select ''value2'' as d,  ''value2'' as r
  from dual', 
p_show_null => 'YES', p_null_value => 'value1', p_null_text => 'value1') as element4
from dual

union

select
APEX_ITEM.CHECKBOX(1, 'element1') as chk, 
'element12'  as element1,
'element22'  as element2,
'element32'  as element3,
APEX_ITEM.SELECT_LIST_FROM_QUERY(1, p_value => null,
p_query => 'select ''value1'' as d,  ''value1'' as r
  from dual
union  
select ''value2'' as d,  ''value2'' as r
  from dual', 
p_show_null => 'YES', p_null_value => 'value1', p_null_text => 'value1') as element4
from dual



Процесс по заполнению переменных:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
DECLARE

v_element1 VARCHAR2(64 CHAR);
v_element2 VARCHAR2(64 CHAR);
v_element3 VARCHAR2(64 CHAR);
v_element4 VARCHAR2(64 CHAR);

BEGIN

   FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
    
        SELECT element1, 
                        element2, 
                        element3, 
                        element4
        INTO v_element1, v_element2, v_element3, v_element4
        FROM table
        WHERE element1 = APEX_APPLICATION.G_F01(i);
        
    END LOOP;
    
END;



...
Рейтинг: 0 / 0
Передача занчения из APEX_ITEM в процедуру/процесс
    #39797259
od_seva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
При заполнении переменных, значение element4 будет value1, а те value2. В чем ошибка?
...
Рейтинг: 0 / 0
Передача занчения из APEX_ITEM в процедуру/процесс
    #39797827
Потому что в этом массиве только чекнутые значения. Тебе нужно отдельно id записи хранить и проходя по массиву чекнутых записей уже смотреть на id
...
Рейтинг: 0 / 0
Передача занчения из APEX_ITEM в процедуру/процесс
    #39797974
od_seva
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вопрос решился таким образом:
1. Переделав отчет, ввел переменную APEX_ITEM.DISPLAY_AND_SAVE:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
select
APEX_ITEM.CHECKBOX(1, 'element1') as chk, 
--'element11'  as element1,
APEX_ITEM.DISPLAY_AND_SAVE(3, 'element1') as element1, 
'element21'  as element2,
'element31'  as element3,
APEX_ITEM.SELECT_LIST_FROM_QUERY(2, p_value => null,
p_query => 'select ''value1'' as d,  ''value1'' as r
  from dual
union  
select ''value2'' as d,  ''value2'' as r
  from dual', 
p_show_null => 'YES', p_null_value => 'value1', p_null_text => 'value1') as element4
from dual



2. Переделав процесс:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
    FOR i IN 1..APEX_APPLICATION.G_F01.COUNT LOOP
        FOR j IN 1..APEX_APPLICATION.G_F03.COUNT LOOP
        
      IF APEX_APPLICATION.G_F01(i) = APEX_APPLICATION.G_F03(j) THEN    
        SELECT element1, 
               element2, 
               element3, 
               element4
        INTO v_element1, v_element2, v_element3, v_element4
        FROM table
        WHERE element1 = APEX_APPLICATION.G_F01(i);
      END IF;  
        END LOOP;
    END LOOP;        
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача занчения из APEX_ITEM в процедуру/процесс
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]