Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / работа с APEX API. / 22 сообщений из 22, страница 1 из 1
16.02.2009, 18:40
    #35820622
Varlock9000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Вопрос такой: кто-нибудь может посоветовать ещё что-нибудь хорошее по APEX API, кроме "API Reference E12855-01" ??
желательно чуть более подробное, и, может быть, с примерами +)
(русскоязычное тоже очень приветствуется(хотя надежды у меня почти нет +) ) )

собственно почему возникает такой вопрос - потому, что в самом E12855-01 совершенно упущен момент работы с этим API... одни функции и кратенькое описание...(т.е. хотелось бы не только "что прменять" чтобы было, но и описание, как это можно применить) а достучаться до значения RADIOGROUP созданной по запросу:
Код: plaintext
Select APEX_ITEM.RADIOGROUP( 1 ,ID,'1',USER_NAME) test FROM USERS
мне уже в течении часа не получается... из E12855-01 выудил только то что это должно выглядеть: APEX_APPLICATION.G_F01 или APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01) или TO_NUMBER(APEX_APPLICATION.G_F01).. ну и другие подобные варианты, перебрал уже все возможные вроде (даже дурацкие типа :F01 и :G_F01), но возвращает либо ошибку, либо NULL стабильно.

З.Ы. версия АРЕХа: 3.1.0.00.32
...
Рейтинг: 0 / 0
17.02.2009, 09:10
    #35821239
Legi
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
...
Рейтинг: 0 / 0
17.02.2009, 17:16
    #35822997
Ales Protiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Вам нужно читать руководство по PL/SQL, потому что APEX_APPLICATION.G_F01 - это не что иное как pl/sql коллекция. И обращаются с ними также как и с другими коллекциями.
...
Рейтинг: 0 / 0
25.02.2009, 17:41
    #35837412
Varlock9000
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Поясни плз ещё, в чём именно у меня ошибка обращения к APEX_APPLICATION.G_F01
например, когда я пытаюсь:
Код: plaintext
1.
2.
FOR i in  1 ..APEX_APPLICATION.G_F01.COUNT LOOP
:P107_VIEW7 :=  :P107_VIEW7 || to_char(APEX_APPLICATION.G_F01(i));
END LOOP;
или
Код: plaintext
1.
2.
FOR i in  1 ..APEX_APPLICATION.G_F01.COUNT LOOP
:P107_VIEW7 :=  :P107_VIEW7 + to_number(APEX_APPLICATION.G_F01(i));
END LOOP;
или почему
Код: plaintext
APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01)
мне NULL стабильно возвращает во всех вариантах? хотя в примерах, которые я нашёл именно так предлагалось обращаться к нему. (написано что APEX_UTIL.TABLE_TO_STRING переводит коллекцию в строку)
ничего кроме этого дельного в руководствах по PL/SQL найти я к сожалению не смог...
запрос по которому создавалась APEX_APPLICATION.G_F01 в первом посте.

и ещё вопрос, каковы пределы видимости этих коллекций? т.е. на соседней странице я могу обратится к этой коллекции и получить тот же результат?? ненашёл нигде пока этой информации...
...
Рейтинг: 0 / 0
26.02.2009, 10:14
    #35838429
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Varlock9000Поясни плз ещё, в чём именно у меня ошибка обращения к APEX_APPLICATION.G_F01
например, когда я пытаюсь:
Код: plaintext
1.
2.
FOR i in  1 ..APEX_APPLICATION.G_F01.COUNT LOOP
:P107_VIEW7 :=  :P107_VIEW7 || to_char(APEX_APPLICATION.G_F01(i));
END LOOP;
или
Код: plaintext
1.
2.
FOR i in  1 ..APEX_APPLICATION.G_F01.COUNT LOOP
:P107_VIEW7 :=  :P107_VIEW7 + to_number(APEX_APPLICATION.G_F01(i));
END LOOP;
или почему
Код: plaintext
APEX_UTIL.TABLE_TO_STRING(APEX_APPLICATION.G_F01)
мне NULL стабильно возвращает во всех вариантах? хотя в примерах, которые я нашёл именно так предлагалось обращаться к нему. (написано что APEX_UTIL.TABLE_TO_STRING переводит коллекцию в строку)
ничего кроме этого дельного в руководствах по PL/SQL найти я к сожалению не смог...
запрос по которому создавалась APEX_APPLICATION.G_F01 в первом посте.

и ещё вопрос, каковы пределы видимости этих коллекций? т.е. на соседней странице я могу обратится к этой коллекции и получить тот же результат?? ненашёл нигде пока этой информации...

Без всяких там to_number и to_char просто APEX_APPLICATION.G_F01(i) и все нормально будет!
...
Рейтинг: 0 / 0
26.02.2009, 10:27
    #35838463
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
У меня вопрос в тему но немного другой.
Есть updateable report с составным запросом по нескольким таблицам, чтолбцов около 20 но показываются 6 столбцов причем первый столбец это чекбоксы(создан автоматически при создании табулар форм) а второй столбец радикнопок cозданных через APEX_API следующий столбец это склейка 3-х полей таблицы и остальные 5 и 6 столбцы просто поля.
использую процесс:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
DECLARE
   vRow BINARY_INTEGER;
BEGIN
   :p19_x := NULL;
 
   FOR i IN  1  .. apex_application.g_f01.COUNT
   LOOP
      vRow := apex_application.g_f01(i);
      :p19_x :=
            :p19_x
         || 'строка' || vRow || CHR( 13 )
         || 'столбец 2 ' || apex_application.g_f02(vRow) || CHR( 13 )
         || 'столбец 3 ' || apex_application.g_f03(vRow) || CHR( 13 )
         || 'столбец 4 ' || apex_application.g_f04(vRow) || CHR( 13 )
         || 'столбец 5 ' || apex_application.g_f05(vRow) || CHR( 13 )
         || 'столбец 6 ' || apex_application.g_f06(vRow) || CHR( 13 )
         || 'столбец 7 ' || apex_application.g_f07(vRow) || CHR( 13 )
         || CHR( 13 );
   END LOOP;
END;
столбец 2 выводит код на который повешен радиобуттон а пятый и шестой слобец в репорте выводится в строке 4 и 7 соответственно, а третий столбец(склейка трех полей) вообще нигде нет...
Что за непонятная нумерация??? как мне выцепить нужные столбцы? и почему их 7 если в репорте их 6???
...
Рейтинг: 0 / 0
26.02.2009, 14:08
    #35839342
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Почему то нумерация судя по некоторым игранием последовательности моего запросу идет не от первого поля в запросе, а с последнего , то есть вообще последний столбец в репорте соответствует последнему полю в запросе и пошло вверх, причем игнорирутся поля с алиасами(составное поле как раз с ним)...
Что за ерунда,помогите разобраться!
...
Рейтинг: 0 / 0
26.02.2009, 14:24
    #35839412
Ales Protiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Ну как вы там нумеруете свои айтемы - это только вам известно. Нужно понимать, что эти коллекции уже существуют, и к любой из них можно обратиться. Если создать два айтема с одинаковым номером, то второй перепишет первый и т.д....
Короче - просто аккуратней нужно создавать элементы.
...
Рейтинг: 0 / 0
26.02.2009, 14:47
    #35839511
lshch
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Мне кажется. нумеруются они в той последовательности, в которой расположены в запросе
в Source regiona. Только первым всегда ставится CheckBox. а дальше по запросу
в том числе и не отображаемые.
Можно еще посмотреть исходный код страницы, поискать там например id="f05_0001".
Это будет пятый столбец в первой строке и посмотреть его название. Т.е. хоть как-то связать номера
со столбцами.
...
Рейтинг: 0 / 0
26.02.2009, 14:56
    #35839559
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Вообщем допер до следующего:
первый столбец чекбоксов у меня остался с табулар форм(delete, update), но удаление мен нужно было а нужен был тока элемент. теперь при обращении к f01(это он и есть) ввиде значения value я получаю не код товара допустим(по которому потом произвожу поиск в таблице и делаю определенные операции), а всего лишь значение выделенной строки, которая мне ничего не дает...
Можно ли как нибудь привязать к value значение кода товара без добавления в запрос функцию
Код: plaintext
APEX_ITEM.CHECKBOX( 1 ,empno)
???
...
Рейтинг: 0 / 0
26.01.2010, 11:24
    #36430825
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
А у меня почему-то эта строка

Код: plaintext
:TXT2:=APEX_APPLICATION.G_F01(i);

из кода

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

SELUSERS NUMBER;
COLLECT VARCHAR2( 1600 );
TMP NUMBER;

BEGIN

SELUSERS:=:SEL_USERS;

FOR i in  1 ..APEX_APPLICATION.G_F01.count
LOOP
-- собирает ids в строку через :
--IF (APEX_APPLICATION.G_F01(i) IS NOT NULL) THEN
--TMP:=TO_CHAR(APEX_APPLICATION.G_F01(i));
--COLLECT:=(COLLECT||':'||TMP);
--END IF;

:TXT2:=APEX_APPLICATION.G_F01(i);

END LOOP;

END;

всегда возвращает имя поля, а не его ID. Как можно выцепить сами значения?
...
Рейтинг: 0 / 0
26.01.2010, 13:10
    #36431185
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Foxter,

покажите код запроса, который создаёт у Вас эту коллекцию.
...
Рейтинг: 0 / 0
26.01.2010, 14:16
    #36431423
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Формируется отчет, suPPLer, в который добавлен чекбокс


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
select	 "TC_T_REP"."T_REP_ID" as "T_REP_ID",
	 "TC_REP"."REP_ID" as "REP_ID",
	 "TC_T_REP"."REP_NAME" as "REP_NAME",
apex_item.checkbox( 1 ,'T_REP_ID') "REPID",
	 "TC_T_REP"."DT_START" as "DT_START",
	 "TC_T_REP"."DT_END" as "DT_END",
	 "TC_REP"."DT_IN" as "DT_IN" 
 from	 "TC_T_REP" "TC_T_REP",
	 "TC_REP" "TC_REP" 
 where   "TC_T_REP"."T_REP_ID"="TC_REP"."REP_ID"
...
Рейтинг: 0 / 0
26.01.2010, 14:37
    #36431494
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
FoxterФормируется отчет, suPPLer, в который добавлен чекбокс


Код: plaintext
1.
2.
...
apex_item.checkbox( 1 ,'T_REP_ID') "REPID",
...


По-моему, Вы не видите разницы между одинарными кавычками (aka апостроф) и двойными. В двойных кавычках указываются идентификаторы (названия переменных, столбцов, таблиц, пакетов и т.д.). В одинарных - строки-литералы. Почитайте указанную документацию , в частности, п.0.
...
Рейтинг: 0 / 0
26.01.2010, 14:56
    #36431556
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Пример был взят из 6 главы адвансед тьбториал. но я дейстчительно еще не усвоил разницу между разными кавычками :(

Но когда меняю на с апострофа на кавычки, получаю

автор1 error has occurred
Query cannot be parsed within the Builder. If you believe your query is syntactically correct, check the ''generic columns'' checkbox below the region source to proceed without parsing. ORA-00918: столбец определен неоднозначно
...
Рейтинг: 0 / 0
26.01.2010, 15:48
    #36431721
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
FoxterНо когда меняю на с апострофа на кавычки, получаю

Уберите кавычки вообще от этого столбца и попробуйте выполнить этот запрос в SQL Workshop->SQL Commands.
...
Рейтинг: 0 / 0
26.01.2010, 16:06
    #36431782
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
suPPLerFoxterНо когда меняю на с апострофа на кавычки, получаю

Уберите кавычки вообще от этого столбца и попробуйте выполнить этот запрос в SQL Workshop->SQL Commands.

Без кавычек (также как и с двойными) и в коммандс и в самом билдере - столбец определен неоднозначно. С одинарными - нормально строит отчет.
...
Рейтинг: 0 / 0
26.01.2010, 19:47
    #36432263
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
FoxterБез кавычек (также как и с двойными) и в коммандс и в самом билдере - столбец определен неоднозначно. С одинарными - нормально строит отчет.

Вы никак не поймёте, что с одинарными кавычками Вы явно присваиваете в качестве value всем элементам эту строку в одинарных кавычках. Раз столбец объявлен неоднозначно, то добавьте к нему псевдоним нужной таблицы, например:

Код: plaintext
apex_item.checkbox( 1 ,"TC_T_REP"."T_REP_ID") "REPID",
...
Рейтинг: 0 / 0
28.01.2010, 12:12
    #36435788
Перекотихода
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Качай отличную книгу с:
http://nnm.in.ua
...
Рейтинг: 0 / 0
29.01.2010, 09:58
    #36437807
Перекотихода
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Varlock9000,

Вот книга в отличном качестве PRO APEX
...
Рейтинг: 0 / 0
29.01.2010, 09:59
    #36437811
Перекотихода
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
Varlock9000,

PRO APEX
...
Рейтинг: 0 / 0
01.02.2010, 08:22
    #36441420
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
работа с APEX API.
suPPLerFoxterБез кавычек (также как и с двойными) и в коммандс и в самом билдере - столбец определен неоднозначно. С одинарными - нормально строит отчет.

Вы никак не поймёте, что с одинарными кавычками Вы явно присваиваете в качестве value всем элементам эту строку в одинарных кавычках. Раз столбец объявлен неоднозначно, то добавьте к нему псевдоним нужной таблицы, например:

Код: plaintext
apex_item.checkbox( 1 ,"TC_T_REP"."T_REP_ID") "REPID",


Все понял :) Вы мне очень помогли. Спасибо.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / работа с APEX API. / 22 сообщений из 22, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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