Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вставка выбранных значений из Shuttle в таблицу / 3 сообщений из 3, страница 1 из 1
27.12.2011, 18:21
    #37595753
SimbaRu
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка выбранных значений из Shuttle в таблицу
APEX4
Имеется апексовый shuttle.
Задача по САБЖ.
Всё динамически.
С одним выбранным значением всё понятно. А вот как вставить несколько значений?
Пояснение: в левый select list подгружается выборка значений (2 столбца). Текстовые данные в display_value и числовые в return_value. Т.е. перекидываем текст слева направо, жмём кнопку, происходит динамическая вставка значений (среди них числовое значение из return_value правого select list).
Существует ли какой-нибудь простой способ, или нужно яваскриптом получать количество значений правого листа, производить вставку, удалять значение из селекта и по новой?
...
Рейтинг: 0 / 0
12.01.2012, 20:13
    #37611882
andreslemik
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка выбранных значений из Shuttle в таблицу
это делается примерно так:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
declare
  l_selected APEX_APPLICATION_GLOBAL.VC_ARR2;
begin
  l_selected := APEX_UTIL.STRING_TO_TABLE(:P12_GROUPS,':');
  FOR i IN 1..l_selected.count
  LOOP
    insert into user_group(user_id,group_id)
     values(:P12_USER_ID, l_selected(i));
  end loop;
end;



P12_GROUPS - это shuttle
...
Рейтинг: 0 / 0
13.01.2012, 10:05
    #37612479
flame33
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка выбранных значений из Shuttle в таблицу
Source:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
DECLARE
	V_PRODUCTS APEX_APPLICATION_GLOBAL.VC_ARR2;
BEGIN
	SELECT ID_PRODUCTS RETURN_VALUE
		BULK COLLECT
		INTO V_PRODUCTS
		FROM CATEGORIES_VIRT
		WHERE NVL(:P2_ID,'-1')='-1' OR ID_CATEGORIES = :P2_ID;
	
	RETURN(APEX_UTIL.TABLE_TO_STRING(V_PRODUCTS));
END;


List of Values:
Код: plsql
1.
2.
3.
4.
5.
SELECT C.NAME||' / '||P.NAME DISPLAY_VALUE, P.ID RETURN_VALUE 
FROM PRODUCTS P LEFT JOIN CATEGORIES C
 ON P.CATEGORY_ID = C.ID
WHERE P.ACTIVE = 1
ORDER BY P.CATEGORY_ID, P.NAME


Process:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
DECLARE
  ITEM_ARRAY_ HTMLDB_APPLICATION_GLOBAL.VC_ARR2;
  DELIM_ VARCHAR2(1) := ':';
BEGIN
  ITEM_ARRAY_ := HTMLDB_UTIL.STRING_TO_TABLE(TRIM(BOTH DELIM_ FROM :P2_ADD_PRODUCT),DELIM_); 

  DELETE FROM CATEGORIES_VIRT 
   WHERE ID_CATEGORIES = :P2_ID
     AND INSTR(':'||:P2_ADD_PRODUCT||':', ':'||ID_PRODUCTS||':') = 0;

  FOR I IN 1..ITEM_ARRAY_.COUNT
  LOOP
    BEGIN
      INSERT INTO CATEGORIES_VIRT (ID_PRODUCTS, ID_CATEGORIES) 
      VALUES (ITEM_ARRAY_(I), :P2_ID);
    EXCEPTION
      WHEN DUP_VAL_ON_INDEX THEN NULL;
    END; 
  END LOOP;
  COMMIT;
END;
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вставка выбранных значений из Shuttle в таблицу / 3 сообщений из 3, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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