powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамическое обновление IR через javascript
22 сообщений из 22, страница 1 из 1
Динамическое обновление IR через javascript
    #36068762
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, снова вопрос:
Необходимо в ответ на изменение значения в селект листе перерисовывать отчёт. Сделать это хочу через джаваскрипт. Альтернативный вариант сделал через бранч и селект лист с сабмитом, да надо бы всё-таки именно через скрипт это организовать.

Пишу в хедер:
Код: plaintext
1.
2.
3.
4.
<script language="JavaScript" type="text/javascript">
function refresh()
{
gReport.pull();
}
в селект листе в HTML Form Element Attributes вписываю
Код: plaintext
onchange="refresh();"
в source для отчета пишу:
Код: plaintext
select * from docs where status=TO_NUMBER(v('P1_STATUS'))
P1_STATUS-имя селект листа
поле status в таблице принимает целочисленные значения.
В итоге выдает no data found
Попробовал сделать аналогичное для текст бокса- ставлю значение по умолчание какое-то, при первом запуске для него всё отбирает, после выполнения скрипта опять no data found.
Такое ощущение, что где-то то ли значение не подхватывается, то ли форматирует некорректно
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36069667
kvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
О новом значении P1_STATUS должен как-то узнать сервер, чтобы
select * from docs where status=TO_NUMBER(v('P1_STATUS'))
выполнился по новым данным.
gReport.pull() обновлением состояния переменных сессии не занимается, поэтому, перед его вызовом новое значение нужно передать.
Например так:
Код: plaintext
1.
2.
3.
4.
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P1_STATUS', $v('P1_STATUS'));
var ret = get.get();
get = null;
Это чтобы не делать лишний раз сабмита.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36069957
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvad,
Спасибо большое, работает.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36292653
Bosyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvadО новом значении P1_STATUS должен как-то узнать сервер, чтобы
select * from docs where status=TO_NUMBER(v('P1_STATUS'))
выполнился по новым данным.
gReport.pull() обновлением состояния переменных сессии не занимается, поэтому, перед его вызовом новое значение нужно передать.
Например так:
Код: plaintext
1.
2.
3.
4.
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P1_STATUS', $v('P1_STATUS'));
var ret = get.get();
get = null;
Это чтобы не делать лишний раз сабмита.
Возникла проблема как у автора вопроса. Использовал этот способ, и в итоге сбивается все форматирование страницы (какие-то эелементы страницы пропали, какие-то переехали).
Подскажите, что не так, есть другие способы?
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36292860
Bosyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
сделано так:
Page Attributes - HTML Header:
<script language="JavaScript" type="text/javascript">
function refresh()
{
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P0_param', $v('P0_param'));
var ret = get.get();
get = null;
}
---
P0_param - HTML Form Element Attributes:
onchange="refresh();"
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36293188
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Bosyak,

так поуниверсальней будет:
http://suppler.blogspot.com/2009/10/apex.html
Код: plaintext
1.
2.
3.
4.
5.
6.
/* Сохранить в сессии значение элемента */  
  function saveThisItem(p){
    var get = new apex.ajax.ondemand();
    get.ajax.add(p.id, $v(p));
    get.ajax.get();
  }
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36293189
kvad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Bosyak,
Закрывающий тэг
Код: plaintext
</script>
на месте? (из примера не видно)
В какой момент форматирование страницы сбивается?
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36294664
Bosyak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kvadBosyak,
Закрывающий тэг
Код: plaintext
</script>
на месте? (из примера не видно)
В какой момент форматирование страницы сбивается?
а вот тега не было ). Из-за него видимо был перекос страницы.
Но все-таки функционально происходит не то, что хотел. Появилось подозрение, что моя задача не много отличается(извините, в апек я новичок, как и в JS). Вот суть в 2-х словах:
есть 2 селек-листа (л1 и л2). Первому значению в Л1 соответствует несколько значений в Л2, второму значению - другой список значений в Л2, но некоторые пересекаются со списком при первом значении в Л1. Не много запутано ) Так вот, если выбрать второе значение Л1, и в Л2 сформируется список и в нем отсутствует выбраное значение, которое было при Л1 = зн.1, то в таблицах на листе NO DATA FOUND. Т.е. база видит значение, которое в Л2 уже отсутствует. Задача тривиальна, но решение найти не получается.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36499435
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerBosyak,
var get = new apex.ajax.ondemand();

А где можно почитать про эту функцию. Я не совсем понимаю каким образом ей передать имя процесса, который должен быть запущен.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36499622
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,

0. Если сможете сориентироваться в JS-коде (его там немного) - здесь , в самом конце. Тот код взят из репозитория APEX - #IMAGE_PREFIX#/javascript/uncompressed/apex_ns_3_1.js
1. Первый параметр - название процесса, второй параметр - callback-функция.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36499825
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо за пример, разобрался. Только это оказалось не совсем то, что мне нужно или я не совсем понимаю как это работает.
Открыл отдельную тему чтобы не засорять ветку.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36653729
Evol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите пожалуйста
У меня имеется элемент P15_REFERENCE -HTML Editor standart

в процессе работы делаю :

text_inquire='';
line=xmlResponse.getElementsByTagName("P");
for (i=0;i<line.length;i++){
try{
value= ((line[i].firstChild.nodeValue!='NULL_VALUE')? line[i].firstChild.nodeValue:'')+'<br>';
}catch(err){
value='<br>';
}
text_inquire+=value;
}
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P15_REFERENCE', text_inquire);
var ret = get.get();
get = null;

Но Объект не обновляется :( Какое было у него значение при загрузки страницы, такое и осталось.
При обновлении страницы видно что значение в самом Apex'е изменяется
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36653881
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Evol,

а где $s с присваиванием этого значения элементу на странице?
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #36655175
Evol
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

У меня не получается добраться до этого объекта с помощью JS, а точнее JQUERY
В связи с тем что подключается внешняя страница :(

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
<INPUT style="DISPLAY: none" id=P15_REFERENCE___Config value=AutoDetectLanguage=false&DefaultLanguage=ru type=hidden>
<IFRAME style="BACKGROUND-IMAGE: none; BORDER-BOTTOM: 0px; BORDER-LEFT: 0px; PADDING-BOTTOM: 0px; BACKGROUND-COLOR: transparent; MARGIN: 0px; PADDING-LEFT: 0px; WIDTH: 997px; PADDING-RIGHT: 0px; HEIGHT: 630px; BORDER-TOP: 0px; BORDER-RIGHT: 0px; PADDING-TOP: 0px" id=P15_REFERENCE___Frame height= 630  src="/i/fck/editor/fckeditor.html?InstanceName=P15_REFERENCE&Toolbar=Default" frameBorder= 0  width= 997  scrolling=no></IFRAME>
<TEXTAREA style="DISPLAY: none" id=P15_REFERENCE wrap=virtual rows= 42  cols= 105  name=p_t01>:P102_TEXT</TEXTAREA>
<SCRIPT type=text/javascript src="/i/fck/fckeditor.js"></SCRIPT>

<SCRIPT type=text/javascript>
<!-- 
function P15_REFERENCE_init() {

            var oFCKeditor        = new FCKeditor( 'P15_REFERENCE' ) ;
            oFCKeditor.BasePath   = "/i/fck/" ;
            oFCKeditor.Width      = '997,5';
            oFCKeditor.Height     = '630';
            oFCKeditor.ToolbarSet = 'Default' ;
            oFCKeditor.Config[ "AutoDetectLanguage" ] = false;
            oFCKeditor.Config[ "DefaultLanguage" ]    = "ru";
            oFCKeditor.ReplaceTextarea() ;

        }
        addLoadEvent(P15_REFERENCE_init);
//-->
</SCRIPT>

Код: plaintext
$("iframe[id=P15_REFERENCE___Frame] ").length;
[/quote]
Объект находится, а дальше нет,
пытался обновить Iframe
[quote автор]
Код: plaintext
document.getElementById ('P15_REFERENCE___Frame').contentWindow.location.reload ();
Тоже без результатно

Дальше попробовал такое :

Код: plaintext
1.
2.
		$("TEXTAREA#P15_REFERENCE").val(text_inquire);
		P15_REFERENCE_init();
		document.getElementById('P15_REFERENCE___Frame').contentWindow.location.reload ();
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Динамическое обновление IR через javascript
    #38300333
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошо,
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P0_param', $v('P0_param'));
var ret = get.get();
get = null;
на сервер передали. А как сам отчет без субмита заставить рефрешнуться?
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300771
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyХорошо,
Код: javascript
1.
2.
3.
4.
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P0_param', $v('P0_param'));
var ret = get.get();
get = null;


на сервер передали. А как сам отчет без субмита заставить рефрешнуться?

Версия APEX какая? Начиная с 4.0, можно использовать Advanced DA, у которого в качестве True Action выбрать Refresh и указать регион с отчётом в качестве Selection.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300782
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerGustlyХорошо,
Код: javascript
1.
2.
3.
4.
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P0_param', $v('P0_param'));
var ret = get.get();
get = null;


на сервер передали. А как сам отчет без субмита заставить рефрешнуться?

Версия APEX какая? Начиная с 4.0, можно использовать Advanced DA, у которого в качестве True Action выбрать Refresh и указать регион с отчётом в качестве Selection.
А в качестве условия срабатывания как указать выполняемый JS код?
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300806
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyА в качестве условия срабатывания как указать выполняемый JS код?

Можно выкрутиться, указав Event=Custom и соответствующее событие, которое затем вызвать из своего кода в конце, используя jQuery(...).trigger("имяСобытия");
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300812
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerGustlyА в качестве условия срабатывания как указать выполняемый JS код?

Можно выкрутиться, указав Event=Custom и соответствующее событие, которое затем вызвать из своего кода в конце, используя jQuery(...).trigger("имяСобытия");
А вместо ... в jQuery(...) что писать?

Повезло, что в списке оказался нужный мне эвэнт change item, у меня как раз меняется он в коде JS. Но есть ли что-нибудь более изящное, чем 5 строк большого кода?
$s('P9_FILE_NAME','text.txt');
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P9_FILE_NAME', 'text.txt');
var ret = get.get();
get = null;
?
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300822
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyА вместо ... в jQuery(...) что писать?
То, что потом указывается в DA: поле, регион или jQuery-селектор, для которого будет срабатывать это событие.


GustlyПовезло, что в списке оказался нужный мне эвэнт change item, у меня как раз меняется он в коде JS. Но есть ли что-нибудь более изящное, чем 5 строк большого кода?
Код: javascript
1.
2.
3.
4.
5.
$s('P9_FILE_NAME','text.txt');
var get = new htmldb_Get(null,$v('pFlowId'),'APPLICATION_PROCESS=',$v('pFlowStepId'));
get.add('P9_FILE_NAME', 'text.txt');
var ret = get.get();
get = null;


?

Думаю, что есть, если Вы опишете задачу, а не реализацию выбранного Вами решения .

PS: На форуме для оформления кода принято использовать тег SRC для удобства читателей. Как использовать его и другие теги, описано здесь .
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300824
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
suPPLerGustlyА вместо ... в jQuery(...) что писать?

Думаю, что есть, если Вы опишете задачу, а не реализацию выбранного Вами решения .

Есть на странице 2 репорта. И если я кликаю на любую из строк первого, то 2-й должен рефрешится в зависимости от выбранной строки 1-го репорта. Без субмитов, не нравятся они мне, страница перезагружается и уходит вверх, плюс время на все это.
...
Рейтинг: 0 / 0
Динамическое обновление IR через javascript
    #38300832
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
22 сообщений из 22, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамическое обновление IR через javascript
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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