Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача занчения из APEX_ITEM в процедуру/процесс / 4 сообщений из 4, страница 1 из 1
05.04.2019, 13:42
    #39797256
od_seva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача занчения из APEX_ITEM в процедуру/процесс
На странице есть отчет с 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
05.04.2019, 13:47
    #39797259
od_seva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача занчения из APEX_ITEM в процедуру/процесс
При заполнении переменных, значение element4 будет value1, а те value2. В чем ошибка?
...
Рейтинг: 0 / 0
07.04.2019, 13:18
    #39797827
Передача занчения из APEX_ITEM в процедуру/процесс
Потому что в этом массиве только чекнутые значения. Тебе нужно отдельно id записи хранить и проходя по массиву чекнутых записей уже смотреть на id
...
Рейтинг: 0 / 0
08.04.2019, 10:43
    #39797974
od_seva
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Передача занчения из APEX_ITEM в процедуру/процесс
Вопрос решился таким образом:
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
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Передача занчения из APEX_ITEM в процедуру/процесс / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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