powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамическое изменение select list в Tabular Form.
24 сообщений из 49, страница 2 из 2
Динамическое изменение select list в Tabular Form.
    #38747490
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, встроенное сохранение не будет работать, и еще я бы индексы 1,2 переделал например на 50,49, так как Апекс при генерации репортов, индекс начинает с 1 и будет пересечение.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38747515
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,

индексы уже поправил, а вот с сохранением разобраться не могу. Делал раньше удаление:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
begin
   for i in 1..apex_application.g_f50.count
      loop
         delete UGDT_TABLE_LOADING t
         where t.RowID = apex_application.g_f50(i);
 
         commit;
      end loop;
end;



Попробовал написать аналогичный процесс на апдейт
Код: plsql
1.
2.
3.
4.
5.
6.
7.
begin
   for i in 1..apex_application.g_f01.count
      loop
         update Reports_Plan t set t.indicator = apex_application.g_f47(i), t.typeofplan = apex_application.g_f48(i)
         where t.RowID = apex_application.g_f49(i);
      end loop;
end;


, но при сохранении появляется ошибка:
"ORA-06502: ошибка преобразования символа в число ошибка числа или значения".
(apex_application.g_f49 - это чекбокс связанный с rowid).

Какие есть ещё варианты? Или что не так с данным?

Так же возник вопрос по поводу добавления строк. Сейчас это выглядит как:
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38747538
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Посмотрите что конкретно дает 47 и 48. Может ошибка в них
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38747557
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весёлый,

Предполагаю что заголовок захватил.

А по поводу добавления, а первый select list он же не динамически меняется, он фиксированный, правильно я понимаю? Его не нужно делать через apex_item
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38747564
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,

каким образом это можно сделать?


blkangel,

правильно, но тогда как к нему обращаться при написании запроса ко второму?
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38747666
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весёлый,

Я принципиальной разницы не вижу, как обращаться. Если ты напишешь запрос как обращаться в первом случае, то точно также и во втором.
У тебя в примере я не вижу зависимости одного от другого, наверное как то так надо:
Код: plsql
1.
2.
3.
4.
select "ROWID",
       apex_item.select_list_from_query(1, :sl1, 'select distinct name1 as sl1 from reports.REPORT_INDICATORS', 'onchange="$x(\'PXX_ITEM\').value=$v(this)"' ) as INDICATOR,
       apex_item.select_list_from_query(2, :sl2, 'select distinct name2 as sl2 from reports.REPORT_INDICATORS where name1=:PXX_ITEM') as TYPEOFPLAN
from REPORTS_PLAN


где :PXX_ITEM какой то элемент на странице.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38747710
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
kasik,

разобрался с сохранением - в цикле использовал коллекцию g_f01 (опечатался). Правда вместо значений в select_list отображается %.

blkangel,

я их пока не связывал, а просто разбирался в принципе использования apex_item. Правда связывать я их думал уже в DA (пока правда смутно представляю как, но планировал решать вопросы последовательно).

blkangelЕсли ты напишешь запрос как обращаться в первом случае, то точно также и во втором.
Не совсем понял, о каких случаях речь? Если речь идёт о фиксированном select_list, то я потому и начал менять его на apex_item, что не знал, как к нему обратиться в DA.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38748664
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Никак не могу понять, почему в select_list не отображается текущее значение.
Пробовал прописывать p_show_extra => 'YES', но никаких изменений не произошло (чего и следовало ожидать - по умолчанию же и должно быть 'YES'). В чём ещё может быть моя ошибка?
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38751304
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пробую зайти с другой стороны. Кто-нибудь может подсказать, как в JS писать SQL запрос? И как его потом использовать?
Из примеров в Сети не многое понял.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38751405
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мне интересно, так чисто для себя, как ты на клиентском языке хочешь писать серверным языком?
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38751433
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) делаем процедуру в базе выполняющую execute immediate входной строки.
2) аяксом вызываем эту процедуру передавая sql запрос
3) ........
4) profit
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38751595
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly,

Это понятно, но...

Весёлый.... как в JS писать SQL запрос...
Ответ никак!
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38751603
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, зависит от контекста.

JS - клиентский язык (если не брать в расчет node.js).
SQL - запросы в базе.

То есть без базы написанный SQL в JS будет просто строкой.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38751610
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Давайте рассмотрим еще сферического коня в вакууме))))))
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38752927
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Gustly1) делаем процедуру в базе выполняющую execute immediate входной строки.
2) аяксом вызываем эту процедуру передавая sql запрос
3) Практически идеальный вариант SQL-инъекции для всех желающих
4) profit
Я раскрою Ваше много-многоточие, коллега.

ВесёлыйКто-нибудь может подсказать, как в JS писать SQL запрос? И как его потом использовать?
Лучше его не использовать никак.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38753300
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerGustly1) делаем процедуру в базе выполняющую execute immediate входной строки.
2) аяксом вызываем эту процедуру передавая sql запрос
3) Практически идеальный вариант SQL-инъекции для всех желающих
4) profit
Я раскрою Ваше много-многоточие, коллега.

delete from ... (all_objects); ха ха ха.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38753413
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Продолжаю мучить этот код-инвалид и пытаться заставить ходить его хотя бы на каких-то костылях.
Создал DA по клику. Первым действием повесил на него JS:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
t = event.target;

if (t.name == 'f02')
   {
      n = document.getElementById("P200_TEXT");
      n.value = t.value;

      var ajaxRequest = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=', $v('pFlowStepId'));
      ajaxRequest.add('P200_TEXT',$v('P200_TEXT'));
      var ajaxResponse = ajaxRequest.GetAsync(function()
         {
            if (p.readyState == 4 && p.status == 200)
               {
                  $('#Report_plan').trigger('apexrefresh');
               }
         });

      ajaxRequest = null;

      n = document.getElementById("P200_STR");
      n.value = t.id.substr(4,4);

      var ajaxRequest = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=', $v('pFlowStepId'));
      ajaxRequest.add('P200_STR',$v('P200_STR'));
      var ajaxResponse = ajaxRequest.GetAsync(function()
         {
            if (p.readyState == 4 && p.status == 200)
               {
                  $('#Report_plan').trigger('apexrefresh');
               }
         });

      ajaxRequest = null;

      b = 'f03_'+t.id.substr(4,4);
      tp = document.getElementById(b);
   }


Т.е. в один итем вставляю значение, по которому должен фильтровать второй select list, а во второй - номер строки.

Дальше пробовал два способа:
1. Вторым действием рефреш DOM Object document.getElementById('f03_'+document.getElementById("P200_STR").value).
2. Вторым действием рефреш select list на странице, который заполняется таким же запросом, как и select list в TF.
Третьим действием JS:
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
t = event.target;

if (t.name == 'f02')
   {
      str = document.getElementById("P200_STR");
      b = 'f03_'+ str.value;
      tfsl = document.getElementById(b);

      sl = document.getElementById("P200_SL");

      for (var i = 1; i < sl.options.length; i++)
         {
            tfsl.options[i].value = sl.options[i].value;
            tfsl.options[i].text = sl.options[i].text;
         }
   }


Но здесь не срабатывает цикл. Насколько я понял из-за того, что select list на странице не успевает загрузить значения до того, как начинает выполняться этот цикл.

При доработке какой-либо из этих вариантов может стать жизнеспособным?
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38754247
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весёлый,

Начну с конца.
Не не успевает, а просто срабатывает раньше, так как у тебя асинхронный вызов Ajaxa, он у тебя отрабатывает в хвосте.

Далее, раз уж ты влез в Javascript, то откажись от перезагрузки страницы вообще, и от ДА тоже, делай все на нем.
Реализуй уже второй селект лист на Javascript-e твой код уменшится в разы. Останется только один аякс запрос (кстати я не понял, зачем второй).
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38755494
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangelДалее, раз уж ты влез в Javascript, то откажись от перезагрузки страницы вообще, и от ДА тоже, делай все на нем.
Реализуй уже второй селект лист на Javascript-e твой код уменшится в разы. Останется только один аякс запрос (кстати я не понял, зачем второй).

Т.е. возвращаемся к apex_item? Но там по прежнему не ясны моменты с отображением значений.
Два аякс-запроса потому, что я в нём ни ухом ни рылом, нашёл вариант в Сети, адаптировал его для своей версии, но не разобрался, как передать сразу два элемента.
Кто-нибудь может подсказать, каким образом аяксом вытянуть данные с сервера? Хотя бы какие функции для этого используются?


И ещё момент - можно подробней про асинхронный вызов? Каким образом определяется последовательность выполнения JS и AJAX?
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38755568
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Эээээ, батенька, вам еще курить и курить матчасть!
Всё в той же сети до фига примеров с htmldb_Get... Есть и сполным описанием и методов и параметров. Так что гуглите и изучайте. При необходимости так же смотрите и js.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38756058
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВесёлыйТ.е. возвращаемся к apex_item? Но там по прежнему не ясны моменты с отображением значений.


Никаких apex_item, первый селект у тебя стандартный, второй ты сам рисовать будешь, в запросе у тебя это будет выглядить как null
Код: plsql
1.
select selectList1, null selectList2 from table;


ВесёлыйДва аякс-запроса потому, что я в нём ни ухом ни рылом, нашёл вариант в Сети, адаптировал его для своей версии, но не разобрался, как передать сразу два элемента.

Аякс возвращает текст, при чем любого размера. хоть через зяпятую возвращай кучу переменных. Но я все таки z предпочитаю JSON.
ВесёлыйКто-нибудь может подсказать, каким образом аяксом вытянуть данные с сервера? Хотя бы какие функции для этого используются?

Ты надыбал абсолютно нормальный асинхроный способ, есть еще асинхронный, в 4.2 еще появилась явскриптовая функция apex.server.process(). Ну еще и синхронный есть вызов.

ВесёлыйИ ещё момент - можно подробней про асинхронный вызов? Каким образом определяется последовательность выполнения JS и AJAX?

Тема сложная, без стеклянной емкости не обойтись :)
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38758352
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,

можно подробней о том, что такое z и JSON? :-[

И ещё вопрос по логике htmldb_Get:
Код: javascript
1.
var ajaxRequest = new htmldb_Get(null, $v('pFlowId'), 'APPLICATION_PROCESS=', $v('pFlowStepId'));


Здесь мы обращаемся к объекту, хотя мне не совсем понятно, что за объект и в чём его смысл. Всё, что нашёл, это:
"The htmldb_Get() javascript file is included into every HTML DB page by default so to start working with it you don't need to change any"

Далее:
Код: javascript
1.
ajaxRequest.add('P200_STR',$v('P200_STR'));


Т.е. через этот объект мы отправляем на сервер значение $v('P200_STR') в item с id 'P200_STR'.

Всё ли я верно понимаю? Или где-то не уловил сути?
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38760876
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весёлый,
Тяжко с тобой, учится учится и еще раз учится....
В твоем случае лучше обойти динамическое обновление, возможно переделать форму.
...
Рейтинг: 0 / 0
Динамическое изменение select list в Tabular Form.
    #38762801
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,

не без этого, только учитЬся у меня получается в основном на практических задачах.
Но в данном случае, в виду дедлайна, пришлось менять концепцию - теперь значения sl на форме зависят от того, какое значение выбрано в item sl. Потом, если будет время, попробую вернуться к первоначальной задумке.

Буду рад рекомендациям, касательно обучения.
...
Рейтинг: 0 / 0
24 сообщений из 49, страница 2 из 2
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Динамическое изменение select list в Tabular Form.
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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