Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Показ Regions с помощью JavaScript / 11 сообщений из 11, страница 1 из 1
30.12.2009, 20:46
    #36394601
yurey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
Есть отчёт с некоторым колличеством столбцов. Поскольку столбцов много и они не все помещаются на экране, решил показывать на экране не полный отчёт. В отчёт добавил два дополнительных столбца с помощью функции в sql запросе
yureyAPEX_ITEM.RADIOGROUP(1,'id_data_isp',NULL,NULL,NULL,NULL,'$x_Show([plase_isp,condition,vivod])') as show,

APEX_ITEM.RADIOGROUP(1,'id_data_isp',NULL,NULL,NULL,NULL,'$x_Hide([plase_isp,condition,vivod])') ashide,
При нажатии на первый Radio у меня появляются Regions plase_isp,condition,vivod, при нажатии на другой исчезают. Всё это получается. Но в show and hide regions используется sql запрос с переменной ключа таблицы (раньше я пробовал всё это проделывать через ссылку, передавая переменную через сессию и таким образом показывал их или прятал, но хочется без перезагрузки страницы).

Вопрос: Как переменную вытащить через JavaScript?
...
Рейтинг: 0 / 0
04.01.2010, 12:00
    #36396606
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
yureyВопрос: Как переменную вытащить через JavaScript?

$s(...)? Из того, что Вы написали, не всё понял, могу предложить на onChange() добавить просто обработчик, который будет скрывать/показывать то, что Вам нужно.
...
Рейтинг: 0 / 0
04.01.2010, 18:55
    #36397052
yurey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
suPPLer,
У меня по событию Onchange и появляются скрытые регионы. А с $s() попробую.
...
Рейтинг: 0 / 0
04.01.2010, 23:07
    #36397289
yurey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
suPPLeryureyВопрос: Как переменную вытащить через JavaScript?

$s(...)? Из того, что Вы написали, не всё понял, могу предложить на onChange() добавить просто обработчик, который будет скрывать/показывать то, что Вам нужно.
$s(...) в sql запросе не получается. Ошибка появляется. Какой момент в описании не понятен и куда копать?
...
Рейтинг: 0 / 0
05.01.2010, 12:13
    #36397628
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
yurey,

что Вы подразумеваете под "переменной ключа таблицы" и где у Вас используется запрос с этой переменной?
...
Рейтинг: 0 / 0
05.01.2010, 14:34
    #36397848
yurey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
suPPLer,
SQL запрос используется в скрываемых Regions. Скрываемые регионы это репорт, сотоящий из одной строки, которую я выбрал в другом в не скрытом regione с помощью элемента radio, то есть запрос в скрываемых регинах выглядит так.
В первом регионе допустим
Select column1, column2 from table where id = переменная
Во втором регионе допустим
Select column3, column4 from table where id = переменная
Вот переменная и есть id той строки которую я выбираю с помощью radio.
...
Рейтинг: 0 / 0
05.01.2010, 14:51
    #36397868
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
yurey,

ну и передавайте в apex_item.radiogroup(p_onchange=>...) вашу функцию с айдишником текущей строки.
...
Рейтинг: 0 / 0
05.01.2010, 17:27
    #36398083
yurey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
suPPLeryurey,

ну и передавайте в apex_item.radiogroup(p_onchange=>...) вашу функцию с айдишником текущей строки.
Всё же по подробней.
Вот запрос в главном регионе

select
APEX_ITEM.RADIOGROUP(1,id_data_isp,NULL,NULL,NULL,NULL,'$x_Show([plase_isp,condition,vivod])',NULL,'show') show,

APEX_ITEM.RADIOGROUP(1,id_data_isp,NULL,NULL,NULL,NULL,'$x_Hide([plase_isp,condition,vivod])',NULL,'hide') hide,

sdzp_data_isp.id_data_isp as id,

data_isp, protokol, t_vvod, isp_provel,
pribor, vid_isp, r1, r3,
to_char (c1, 'fm9990d0') as c1,
to_char (c3, 'fm9990d0') as c3
from sdzp_data_isp, sdzp_vid_isp, sdzp_pasport
where
sdzp_data_isp.id_vid_isp = sdzp_vid_isp.id_vid_isp
and
sdzp_pasport.id_pasport = sdzp_data_isp.id_pasport
and
sdzp_data_isp.id_pasport = :P9_EDIT_DATA_ISP
order by data_isp asc

При просмотре исходного кода страницы у меня есть событие Onchange в
<input type="radio" name="f01" value="82" onChange="$x_Show([plase_isp,condition,vivod])" id="show" />

Вот запрос в скрытом регионе

select
upper(t_vsm1) as tc1,
upper(t_vsm2) as tc2,
upper(t_okr) as t_okr,
upper(more) as more
from sdzp_filial, sdzp_stantion, sdzp_disp, sdzp_faza, sdzp_data_isp
where
sdzp_filial.id_filial = sdzp_data_isp.id_filial
and
sdzp_stantion.id_stantion = sdzp_data_isp.id_stantion
and
sdzp_disp.id_disp = sdzp_data_isp.id_disp
and
sdzp_faza.id_faza = sdzp_data_isp.id_faza
and
sdzp_data_isp.id_data_isp = id(переменная)


Что мне писать на месте id(переменная) во втором запросе?
...
Рейтинг: 0 / 0
05.01.2010, 17:47
    #36398104
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
yurey,

0. Без перезагрузки страницы просто так обновлять запрос, формирующий отчёт в скрытом регионе у Вас не выйдет. Либо обновлять, используя $a_report для обычного отчёта и gReport.pull() для интерактивного, либо заново подгружать через AJAX часть другой страницы или результат процесса по требованию. В любом случае, стоит создать скрытый элемент на странице для хранения переменной-айдишника. Например, PX_HIDDEN_ID.
1. База должна знать, что поменялось значение переменной.
1.0. Для вариантов с $a_report/gReport.pull()/частью другой страницы нужно будет сохранить значение переменной, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
  function saveItem(p, val){
    var get = new apex.ajax.ondemand();
    var v = val ? val : $v(p);
    if (v.toString() == "undefined") v = "";
    get.ajax.add(p.id, v);
    get.ajax.get();
  }
1.1. Для варианта с самостоятельным вытаскиванием результата через AJAX и On Demand-процесс нужно добавить параметры в переменную запроса к БД, используя htmldb_Get.add() / apex.ajax.ondemand.ajax.add.
2. Во втором запросе используйте ту переменную, которую создали в пункте 0 (:PX_HIDDEN_ID).
...
Рейтинг: 0 / 0
05.01.2010, 18:57
    #36398197
yurey
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
suPPLeryurey,

0. Без перезагрузки страницы просто так обновлять запрос, формирующий отчёт в скрытом регионе у Вас не выйдет. Либо обновлять, используя $a_report для обычного отчёта и gReport.pull() для интерактивного, либо заново подгружать через AJAX часть другой страницы или результат процесса по требованию. В любом случае, стоит создать скрытый элемент на странице для хранения переменной-айдишника. Например, PX_HIDDEN_ID.
1. База должна знать, что поменялось значение переменной.
1.0. Для вариантов с $a_report/gReport.pull()/частью другой страницы нужно будет сохранить значение переменной, примерно так:
Код: plaintext
1.
2.
3.
4.
5.
6.
  function saveItem(p, val){
    var get = new apex.ajax.ondemand();
    var v = val ? val : $v(p);
    if (v.toString() == "undefined") v = "";
    get.ajax.add(p.id, v);
    get.ajax.get();
  }
1.1. Для варианта с самостоятельным вытаскиванием результата через AJAX и On Demand-процесс нужно добавить параметры в переменную запроса к БД, используя htmldb_Get.add() / apex.ajax.ondemand.ajax.add.
2. Во втором запросе используйте ту переменную, которую создали в пункте 0 (:PX_HIDDEN_ID).
Так и думал что без Ajax не обойтись.
Не всё ясно из того, что вы описали.
1. Где прописывать function saveItem(p, val){...?
2. Что значит частью другой страницы?
3. Где прочитать про $a_report/gReport.pull()?
4. А дока про Ajax в Apex есть?
...
Рейтинг: 0 / 0
05.01.2010, 19:31
    #36398238
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Показ Regions с помощью JavaScript
yurey,

1. В HTML Header страницы, в отдельный *.js-файл, в регион на нулевой странице... Главное, чтобы до её (функции) использования.
2. Можно отображать на одной странице часть другой страницы. RTFF getAsync и trimPartialPage , первое предложение. Если интересно, то всю тему...
3. Google it.
4. STFW oracle apex ajax . Не всеобъемлюще, но показывает основы.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Показ Regions с помощью JavaScript / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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