Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Запустить процедуру через html кнопку / 14 сообщений из 14, страница 1 из 1
12.02.2010, 11:34
    #36465271
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Мне необходимо через кнопку запустить процесс с параметрами. Как можно это сделать?
...
Рейтинг: 0 / 0
12.02.2010, 12:37
    #36465491
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Foxter,

с сабмитом страницы, с простым переходом, вообще без перехода?
...
Рейтинг: 0 / 0
12.02.2010, 13:34
    #36465713
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
suPPLerFoxter,

с сабмитом страницы, с простым переходом, вообще без перехода?

Можно с переходом на эту же страницу, так как процедура принудительно запускает формирование отчета и можно его сразу же отобразить после исполнения.
...
Рейтинг: 0 / 0
12.02.2010, 13:55
    #36465781
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Foxter,

Кнопка Submit and Branch + Процесс с условием When Button Pressed + Branch с таким же условием.
...
Рейтинг: 0 / 0
12.02.2010, 14:45
    #36466002
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
suPPLerFoxter,

Кнопка Submit and Branch + Процесс с условием When Button Pressed + Branch с таким же условием.

У меня репорт. в котором во фреймах отображаются хтмл-страницы, а вот внизу кнопки. как хтмл. Мне необходимо добавить такуюже кнопочку хтмл. но запускающую процесс. Я же не смогу туда вставить кнопку апекса, так как вывод кнопки (html) происходит через htp.p вот таким кодом

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
select '<IFRAME src="/i/procont/tc_rep/'||r.file_name||'" width="1100" height="500" scrolling="auto" frameborder="1"></iframe>

<br><br><input type="button" value=" Открыть в новом окне " onClick=window.open("/i/procont/tc_rep/'||r.file_name||'")><br><br>' " "
FROM tc_rep R,
(select instr(':'||U.rep_user||':', ':'||R2.t_rep_id||':',  1 ,  1 ) r_id, R2.t_rep_id
from tc_t_rep R2, tc_user_rep U

where U.user_ID = :APP_USER) Z
WHERE Z.r_id >  0 
AND R.t_rep_id = Z.t_rep_id 
AND R.file_name is not null
AND trunc(R.dt_in) = :dor;
...
Рейтинг: 0 / 0
12.02.2010, 14:46
    #36466006
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Точнее пакетную процедуру, а не процесс. Типа

Код: plaintext
apex_tc_rep.run_report_batch
...
Рейтинг: 0 / 0
12.02.2010, 15:17
    #36466139
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
FoxterМне необходимо добавить такуюже кнопочку хтмл. но запускающую процесс.

кнопке установить onclick=doSubmit('<REQUEST>'), процессу и бранчу в условиях выбрать тип Request=Expression 1 , в Expression 1 написать <REQUEST>.
...
Рейтинг: 0 / 0
19.02.2010, 08:59
    #36479147
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Спасибо, SuPPler, Вы мне оказали неоценимую помощь. Теперь начинаю понимать как организован механизм Апекс :). Не поможете еще немного? :)

Мне как-то необходимо передать в пакетную функцию (по нажатию кнопки html) параметры ее исполнения (дату и тип отчета).

Функцию запускает процедура (так как не знаю можно ли запустить ее напрямую с кнопки). И использует 2 параметра.

Попробывал сделать так:

Код: plaintext
<input type="button" value=" Refresh " onClick=javascript:doSubmit(''REQUEST(sysdate, 2 )'')>

Но, как Вы понимаете, ничего не произошло. Потом думал, что можно параметры передавать через скрытые поля. но как записать в них данные через хтмл - не понимаю.

Каким образом можно запустить пакетную функцию с параметрами через кнопку хтмл? Заранее благодарен.
...
Рейтинг: 0 / 0
19.02.2010, 10:15
    #36479301
non-apexoid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Ответ несколько раз содержался в предыдущих постах. Вам нужен процесс уровня страницы, срабатывающий при сабмите по нажатию определённой кнопки. Аргументы ваша функция возьмёт из значений полей на странице, скрытых или нет, не важно.
...
Рейтинг: 0 / 0
19.02.2010, 13:15
    #36479846
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Так в том - то, собственно и дело.

У меня формируется отчет, каждая строка которого содержит фрейм со страницей. параметры которой получены селектом. То есть, у каждой записи отчета отдельные параметры .

Таким образом, при нажатиии кнопки в поля должны записываться разные значения.

Я понимаю, что реквест может запускать процедуру, которая может брать параметры из этих полей. Но вот как в каждом случае записывать в них разные значения по нажатию хтмл кнопки - не понимаю.

Вот в чем дело.
...
Рейтинг: 0 / 0
24.02.2010, 09:21
    #36485131
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Решил записывать значения в поля. а потом вызывать процедуру.

Код: plaintext
1.
2.
3.
4.
5.
6.
<script type="text/javascript">  
function changeContent(){
alert("!!!");
element = document.getElementById("P28_ARG1");
element.value+="'||R.T_REP_ID||'";
javascript:DoSubmit("Rebatch");
}  

Все работает, поле заполняется. ТОЛЬКО не запускается процедура. Видимо с вызовом что-то не так.
...
Рейтинг: 0 / 0
03.03.2010, 10:57
    #36499075
aboutapex
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Foxter,

авторЯ понимаю, что реквест может запускать процедуру, которая может брать параметры из этих полей.
Видимо все таки не до конца понимаете.
Процедура не запускается из javascripta непосредственно. Для запуска процедуры необходим Apex Process - основной механизм выполнения PL/SQL. Процесс запускается либо перед отрисовкой страницы, либо после Submit. В Вашем случае непонятно пока, создали вы процесс на странице или нет.
Про создание процессов подробно написано в в документации.

авторjavascript:DoSubmit("Rebatch");
javascript чувствителен к регистру идентификаторов функция пишется doSubmit.

В апексе лучше вместо
авторelement = document.getElementById("P28_ARG1");
использовать
Код: plaintext
element = $x("P28_ARG1");
...
Рейтинг: 0 / 0
04.03.2010, 10:14
    #36501538
Foxter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Спасибо.

Процесс был создан изначально. Сейчас все работает.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
21.11.2012, 23:16
    #38047901
rockclimber
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Запустить процедуру через html кнопку
Тоже аналогичная проблема.
Сделал кнопку, все работает, но есть нюанс: если в свойствах кнопки в разделе Button Display Attributes выбрать стиль "HTML button", то кнопка перестает работать, точнее, перестает вызывать прописанный ей обработчик onclick. Если вернуть стиль Image, то нормально вызывает мою javascript функцию. Хотелось бы все-таки не картинку, а "HTML button".
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Запустить процедуру через html кнопку / 14 сообщений из 14, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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