Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / On demand process / 25 сообщений из 57, страница 1 из 3
07.08.2009, 11:33
    #36131906
Dima OnlyLuck
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Вопрос такой : как вызвать процесс кнопкой , причем кнопка обычная , без сабмита. Например у меня имеется процесс под названием "My_process" и есть кнопа "My_button" надо сделать так , чтобы я нажал на "My_button" и процесс "My_process" был задействован без сабмита страницы (а то все данные в формочке обнулятся, да и всякой валидации понавылезает!).

P.S я так понимаю , без Javascript не обойтись , но я в них не сильно покачто разбираюсь , подскажите пожалуйста!
Заранее спасибо.
...
Рейтинг: 0 / 0
07.08.2009, 12:06
    #36132042
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
var get = new 
var onclickMyButton = function() {
  htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=MY_PROCESS',$v('pFlowStepId'));
  get.add('APP_ITEM1', 'value of APP_ITEM1');  // параметры вызова (установка значений application item-ов)
  ...
  get.add('APP_ITEMn', 'value of APP_ITEMn');
  var ret = get.get();
  get = null;
  // в ret - ответ, если надо
}

На My_button повесить url target "javascript:onclickMyButton();"

Ключевое слово для поиска доп. инфо - htmldb_Get
...
Рейтинг: 0 / 0
07.08.2009, 12:09
    #36132054
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Упс, вместо
Код: plaintext
1.
2.
3.
var get = new 
var onclickMyButton = function() {
  htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=MY_PROCESS',$v('pFlowStepId'));
д.б. это:
Код: plaintext
1.
2.
var onclickMyButton = function() {
  var get = new tmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=MY_PROCESS',$v('pFlowStepId'));
...
Рейтинг: 0 / 0
07.08.2009, 12:48
    #36132197
Dima OnlyLuck
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Спасибо за ответ , сейчас буду разбираться.
...
Рейтинг: 0 / 0
07.08.2009, 12:56
    #36132226
Dima OnlyLuck
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
var get = new
var onclickMyButton = function() {
htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=MY_PROCESS',$v('pFlowStepId'));
get.add('APP_ITEM1', 'value of APP_ITEM1'); // параметры вызова (установка значений application item-ов)
...
get.add('APP_ITEMn', 'value of APP_ITEMn');
var ret = get.get();
get = null;
// в ret - ответ, если надо
}


Эм.. а это в HTML header надо писать?
...
Рейтинг: 0 / 0
07.08.2009, 13:54
    #36132384
kvad
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
ну не это... я ж исправился:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
var onclickMyButton = function() {
  var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=MY_PROCESS',$v('pFlowStepId'));
  get.add('APP_ITEM1', 'value of APP_ITEM1'); // параметры вызова (установка значений application item-ов)
  ...
  get.add('APP_ITEMn', 'value of APP_ITEMn');
  var ret = get.get();
  get = null;
  // в ret - ответ, если надо
}

да, в хидер, предварив этим:

Код: plaintext
1.
2.
<script language="JavaScript" type="text/javascript">
<!--

и завершив:

Код: plaintext
1.
//-->
</script>

дальше в этих рамках (тэга <script>), если надо, добавляешь еще js-код, необходимый на странице.
...
Рейтинг: 0 / 0
07.08.2009, 17:19
    #36132857
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Dima OnlyLuck,

на всякий случай: RTFM How to Incorporate JavaScript into an Application
...
Рейтинг: 0 / 0
10.08.2009, 09:25
    #36134308
Dima OnlyLuck
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Блин..У меня ничего не получилось кнока не реагирует.. но я нашел более грамотный метод.. при сабмите страницы выскакивает еще одна страница и уже в ней всё то , что мне нужно , таким образом у меня и данные предыдущей страницы сохраняются , и данные , которые вводятся во 2 странице.
Всем спасибо =)
...
Рейтинг: 0 / 0
10.08.2009, 10:03
    #36134348
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
kvad
На My_button повесить url target "javascript:onclickMyButton();"

Ключевое слово для поиска доп. инфо - htmldb_Get

Все нормально работает смотри внимательней...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.08.2010, 11:43
    #36785595
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Все здорово, но вот не понятно:
в on_demand_process-е у меня
Код: plaintext
select  1  into :my_item from dual;
Но на форме значение поля не меняется, чую что нужно что-то на JS передернуть, но никак не могу понять что.
...
Рейтинг: 0 / 0
11.08.2010, 13:12
    #36785841
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Lav, для того, чтобы из On-demand процесса вернуть значение только одного поля, предназначен первый аргумент htmldb_Get. Если возвращаемых значений несколько (например, значения листа) - можно поставить тип возвращаемого значения 'XML' и затем разобрать его средствами javascript.
...
Рейтинг: 0 / 0
11.08.2010, 14:29
    #36786065
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
non-apexoid,

Уффф... я уж накопал, делаю:

-в процессе
Код: plaintext
1.
2.
3.
4.
5.
htp.prn(:P5_ID);
htp.prn('|');
htp.prn(:P5_CODE);
htp.prn('|');
htp.prn(:P5_NAME);

а в java-script делаю
Код: plaintext
1.
2.
3.
4.
var a = gReturn.split('|');
$s('P5_ID',a[ 0 ]);
$s('P5_CODE',a[ 1 ]);
$s('P5_NAME',a[ 2 ]);

Правда если в java-script делать

Код: plaintext
$s('P5_CODE','');
то почему-то в Item на странице пишет undefined , никто не знает почему?
...
Рейтинг: 0 / 0
11.08.2010, 14:31
    #36786073
Lav
Lav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Lav
Правда если в java-script делать

Код: plaintext
$s('P5_CODE','');
то почему-то в Item на странице пишет undefined , никто не знает почему?

Все разобрался, все нормально, просто if неправильно отрабатывал.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
11.04.2012, 10:28
    #37748015
iroquai
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Подскажите пожалуйста, где именно в апексе нужно вписывать вышеприведенную javascript функцию?
...
Рейтинг: 0 / 0
12.04.2012, 18:44
    #37751150
VovkaAPEXOID
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
iroquai, все зависит от версии приложения. Если ниже 4 - HOME>Application Builder>Application ID>Page ID>Edit Page>HTML Header,
если >=4 - HOME>Application Builder>Application ID>Page ID>Edit Page>JavaScript
...
Рейтинг: 0 / 0
13.04.2012, 19:01
    #37753244
C-M-A
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Я в <HTML Header and Body Attribute> кладу

Как-то вот так

Код: javascript
1.
2.
3.
4.
5.
6.
7.
<script type="text/javascript">
<!-- Begin
  function f_FNAME(){
 // тело функции
  }
//  End -->
</script>



а вызов через URL

javascript: f_FNAME();

например по кнопке
<Action When Button Clicked>
<Action>
Redirect to url
в <URL Target >
javascript: f_FNAME();
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.06.2013, 12:36
    #38296036
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Это пример как запустить процесс на уроне приложения application process. А как запустить page process, который будет запускаться по on demand ?

Задача: Необходимо выполнить инсерт по циклу FOR I IN 1..APEX_APPLICATION.G_F01.COUNT LOOP. Application process почему-то там показывает 0 записей, хотя page process запущенный через субмит нормально отрабатывает.
...
Рейтинг: 0 / 0
13.06.2013, 13:07
    #38296104
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
GustlyApplication process почему-то там показывает 0 записей, хотя page process запущенный через субмит нормально отрабатывает.

Изменения, сделанные пользователем на странице, нужно как-то отправить серверу, чтобы они были видны в процессе. Сабмит формы на странице как раз этим и занимается. Можно собрать данные всех интересующих полей и сделать сабмит вручную. Для примера можете посмотреть на jApex. В принципе, можете его и использовать.
...
Рейтинг: 0 / 0
13.06.2013, 13:23
    #38296135
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
suPPLerGustlyApplication process почему-то там показывает 0 записей, хотя page process запущенный через субмит нормально отрабатывает.

Изменения, сделанные пользователем на странице, нужно как-то отправить серверу, чтобы они были видны в процессе. Сабмит формы на странице как раз этим и занимается. Можно собрать данные всех интересующих полей и сделать сабмит вручную. Для примера можете посмотреть на jApex. В принципе, можете его и использовать.
Что за jApex? Субмит делает обновление страницы, а мне этого не хотелось бы. У меня обычные галочки при нажатие нормально отрабатывают, в консоли видно только одну строку POST. А вот мастергалочка, которая как бы имитирует нажатие на все требует этого самого списка APEX_APPLICATION.G_F01, чтобы за один раз база отработала, а не делала много раз посылку данных, если бы каждая галочка отдельно нажималась.
...
Рейтинг: 0 / 0
13.06.2013, 14:27
    #38296263
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Или как тогда вручную его заполнить?
Пробовал через
var get = new htmldb_Get(null,null, 'APPLICATION_PROCESS=ALL_CHECK',0)
var elems = document.getElementsByName("f01")
get.add('ARR', elems)

Массивы вообще нельзя туда передавать, только строки. Вопрос, как вручную без субмита заполнить этот самый G_F01.
...
Рейтинг: 0 / 0
13.06.2013, 15:58
    #38296432
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
GustlyЧто за jApex?

STFW jApex .

GustlyСубмит делает обновление страницы, а мне этого не хотелось бы.
Сабмит -- это просто отправление данных из полей формы на сервер. Его можно выполнить самостоятельно, делая соответствующие запросы POST или GET к серверу через AJAX.

GustlyА вот мастергалочка, которая как бы имитирует нажатие на все требует этого самого списка APEX_APPLICATION.G_F01, чтобы за один раз база отработала, а не делала много раз посылку данных, если бы каждая галочка отдельно нажималась.
Пусть так и будет: "мастер-галочка" при нажатии вызывает JS-код, который создаёт массив переменных с именем "fNN" (NN -- номер столбца в отчёте и коллекции G_FNN) и выполняет запрос GET либо POST с этим массивом.
...
Рейтинг: 0 / 0
13.06.2013, 16:21
    #38296484
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Как связать JS и оракловые объекты? А именно через JS заполнить коллекцию G_F01. Я только знаю как процедуры вызывать, но туда не передать массив.

P.S. Необходимо за 1 пост проделать операцию, как в случае с одним чекбоксом.
...
Рейтинг: 0 / 0
13.06.2013, 16:23
    #38296487
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
И как работать с page process, которые вызываются через on demand? Ибо метод для application process говорит что не найдено такое.
...
Рейтинг: 0 / 0
13.06.2013, 17:33
    #38296620
kasik
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
Gustly....
Пробовал через
var get = new htmldb_Get(null,null, 'APPLICATION_PROCESS=ALL_CHECK',0)
....

Читайте внимательно документацию, необходимо запонять значимые параметры!
...
Рейтинг: 0 / 0
13.06.2013, 18:27
    #38296762
Gustly
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
On demand process
kasikGustly....
Пробовал через
var get = new htmldb_Get(null,null, 'APPLICATION_PROCESS=ALL_CHECK',0)
....

Читайте внимательно документацию, необходимо запонять значимые параметры!
В документации апекса я вообще ее не нашел, только сторонние сайты.
4-й это
page – Not important as an on demand process isn’t tied to any particular page, however, if it is an authenticated page id, the user must be authenticated, else it has to be a public page.
Зачем его делать нулем?
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / On demand process / 25 сообщений из 57, страница 1 из 3
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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