powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Добавление строк в Tabular Form
25 сообщений из 53, страница 1 из 3
Добавление строк в Tabular Form
    #39111970
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо добавлять строку в таблицу, заполненную на основании уже имеющихся (что-то вроде частичного копирования) . На часть строк я добавил кнопки
Код: javascript
1.
'<input type="button" value="Добавить самосвал" onClick="javascript:InsertRow('||DATETOCH||', '||SHOV||', '||LOADTYPEID||', '||SHIFT||');">'


(см. скриншот)

На кнопках висит функция
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
function InsertRow(dt, shov, lt, sh)
{
 addRow();
 var j = document.wwv_flow.f01.length;
 var NewRow = lpad(j, 4, '0');
 
 apex.item('f04_'+ NewRow).setValue(sh);
 apex.item('f05_'+ NewRow).setValue(shov);
 apex.item('f06_'+ NewRow).setValue(lt);
}



В принципе, строки добавляются, но есть три момента:
1. Строка добавляется в конец формы, что не очень удобно для пользователя. Как можно её перенести в нужный блок до сохранения?
2. Функция отказывается принимать в себя дату (DATETOCH) - выдаёт ошибку "missing ) after argument list" (при замене на другое значение всё работает).
3. В колонке "Дата" продолжает висеть иконка Date Picker. Как от неё можно избавиться? (от остального избавился с помощью hide())
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112016
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весёлый,

Насколько я понимаю, это Апекс 5.0.
1. Чтобы добавить строчку в нужное место, вам нужно хорошо изучить HTML разметку, javascript (jQuery), наизусть згначть структуру табуляр формы (Наименование элемнтов, корректное их вставка). И добавлять вручную.
2. Дата в Javascipte и то что вы видите на экране это разные вещи, у вас когда вместо DATETOCH, подставляется какое то число с двумя точками, он не знает что ЭТО, ты мне такое суешь сюда.
3. См. пункт 1.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112022
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
blkangel,

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

Апекс 4.2.
1. Т.е. полностью переписать addRow?
2. Пробовал добавлять to_char(DATETOCH, 'dd.mm.yyyy') и to_date(DATETOCH, 'dd.mm.yyyy') - результат тот же. Каким образом правильно передавать дату?
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112805
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весёлый,
Пересмотрите задачу. То что вы хотите я нигде не видел. Таблица это матрица, а не мусорница кнопок.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112816
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весёлыйblkangel,

Апекс 4.2.
1. Т.е. полностью переписать addRow?
2. Пробовал добавлять to_char(DATETOCH, 'dd.mm.yyyy') и to_date(DATETOCH, 'dd.mm.yyyy') - результат тот же. Каким образом правильно передавать дату?

1. Да, либо как я и написал, добавленную строчку (после addRow()) на js, переместить в нужное место.
2. Если вы дату как текст хотите обрабатывать в JS, достаточно ковычки добавить. Это качается всех параметров.
Код: plsql
1.
'<input type="button" value="Добавить самосвал" onClick="javascript:InsertRow('''||DATETOCH||''', '''||SHOV||''','' '||LOADTYPEID||''', '||SHIFT||');">'
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112847
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весёлый,

1. blkangel с переносом нормальный вариант предложил. Кстати возможно, индексы менять и не понадобится,а перенос делается легко через jquery detach()
2. да, скорее всего кавычки.
3. Попробуйте использовать $x_Hide('DATA_ITEM_ID') (как раз апексовая доработка, чтобы скрывать айтемы с лейблами и вместе с иконками PopUp и DatePicker, мне правда казалось, что в некоторых релизах и местах не работало, но вот сейчас в 4.2.2 отработала норм), в документации описана , может принимать не только айдишник
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112894
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavysideВесёлый,

3. Попробуйте использовать $x_Hide('DATA_ITEM_ID') (как раз апексовая доработка, чтобы скрывать айтемы с лейблами и вместе с иконками PopUp и DatePicker, мне правда казалось, что в некоторых релизах и местах не работало, но вот сейчас в 4.2.2 отработала норм), в документации описана , может принимать не только айдишник

Только надо понимать, что функция $x_Hide сделана для одиночных элементов, а не для элементов внутри табуляра...
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112965
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
blkangel,

Да, возможно как раз в гридах у меня она и не работала. Тогда в зависимости от разметки можно написать например:
$('#f06_0001').closest('td').children().hide();
или
$('#f06_0001').parent().children().hide();
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112978
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavyside,

1. А каким образом можно передать в селектор detach новообразованную строку?
2. Да, кавычки помогли :)
3. С третьим решил не заморачиваться - раз уж всё равно значение будет передаваться из имеющейся строки, то можно просто использовать не DatePicker, а Text Field :)
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39112992
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весёлый,

надо смотреть разметку и выяснять какие признаки для новой строки характерны. Может класс, айдишник или расположение(последняя строка в таблице). Как вариант, если исходить только из того, что вы писали:

var new_row = $('#f04_'+ NewRow).closest('tr').detach();

но лучше поизучать разметку, может есть более надёжный(не зависящий от наличия коллекции f04 на странице) признак
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113462
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вообще табуляр форма - дурная штука, слишком много сюрпризов она готовит, когда начинаешь делать шаг влево/вправо.
1) Есть ограничение на размер заголовка, который можно передать на сервер, если невзначай превысите, при сабмите будет происходить непонятная хрень вместо отработки формы.
2) Размерности массивов по столбцам никак не синхронизированы, если вы в одном из столбцов хотите закрыть часть строк от редактирования, получите два несинхронизированных масива.

ИМХО если хочется сделать чего то сложнее обічной табулар форм, копайте в сторону самописных или jQuery подобных гридов и делайте редактирование через AJAX и коллекции.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113471
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
CasufiВообще табуляр форма - дурная штука,
+1
плюс ещё можно работать по MVC - добавил на сервер, команда не перерисовку контрола - всё обновилось по свежим данным.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113478
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Petro123добавил на сервер, команда не перерисовку контрола
Это уже не MVC, а хрень какая то. На апексе такое через Ж нужно реализовывать.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113515
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Casufi,
Не подходи буквально.
Вместо добавления на клиенте, инсерт в Модель. А view refresh. Контроллер в apex все отработает.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113745
blkangel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
CasufiВообще табуляр форма - дурная штука, слишком много сюрпризов она готовит, когда начинаешь делать шаг влево/вправо.
1) Есть ограничение на размер заголовка, который можно передать на сервер, если невзначай превысите, при сабмите будет происходить непонятная хрень вместо отработки формы.
2) Размерности массивов по столбцам никак не синхронизированы, если вы в одном из столбцов хотите закрыть часть строк от редактирования, получите два несинхронизированных масива.

ИМХО если хочется сделать чего то сложнее обічной табулар форм, копайте в сторону самописных или jQuery подобных гридов и делайте редактирование через AJAX и коллекции.

Соглашусь, тут очень хорошо нужно разбираться как структуре табуляра, как воспринимает сервер при ее отправке.
Четко надо понимать, что при написании какого то своего JS для наполнения данных в строки табуляра, что в таком JS скрипте не должны использоваться индексы f01-f50. Потому что это все сразу поплывет при добавлении, перемещении столбцов.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113748
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavyside,

Не совсем понял - этот код добавлять прямо в InsertRow? Немного теряюсь в jQuery...
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113788
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весёлыйheavyside,

Не совсем понял - этот код добавлять прямо в InsertRow? Немного теряюсь в jQuery...

да, я бы попробовал туда. Но это удаление строки из разметки, вам ещё вставку в нужное место. Читайте доку jquery, экспериментируйте)

CasufiВообще табуляр форма - дурная штука, слишком много сюрпризов она готовит, когда начинаешь делать шаг влево/вправо.
+1. Так ни разу и не задействовал кажись, только каждый релиз смотрел что нового. Лучше уж интерактивный отчёт задействовать и всю обработку написать самому. Ну или обычный репорт.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113811
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
heavysideТак ни разу и не задействовал кажись
там единственное мне нравится, пакетное редактирование. Сразу несколько строк в пакете.
Но навешивать лапшу кода на него и модернизировать IMHO ну нафиг.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113821
Vladml
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В 5.1 будет редактируемый IR
http://nuijten.blogspot.nl/2015/11/apex-51-features-shown-at-doag.html
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113849
Фотография Petro123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Vladml,
вот это по человечески. А то даже дизайн у табуляр - Г.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39113850
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
VladmlВ 5.1 будет редактируемый IR
http://nuijten.blogspot.nl/2015/11/apex-51-features-shown-at-doag.html

Да, называться будет Interactive Grid. Вроде ещё мелькала информация, что можно будет все операции из менюшки делать программно.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39116976
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavyside,

возник ещё вопрос - а какие есть ограничения при использовании jQ в Region Header? У меня изначально там были прописаны две функции, а при попытке добавить третью появляется ошибка "ORA-01461: can bind a LONG value only for insert into a LONG column".

Подозреваю, что это ограничение на число символов, но хотелось бы знать наверняка :)
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39116987
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Весёлыйheavyside,

возник ещё вопрос - а какие есть ограничения при использовании jQ в Region Header? У меня изначально там были прописаны две функции, а при попытке добавить третью появляется ошибка "ORA-01461: can bind a LONG value only for insert into a LONG column".

Подозреваю, что это ограничение на число символов, но хотелось бы знать наверняка :)

Насколько я знаю, содержимое никак не анализируется кроме как браузером при выводе страницы. Так что да, ограничение на длину. Что-то длинноваты у вас функции) Лучше в файл выносить.
...
Рейтинг: 0 / 0
Добавление строк в Tabular Form
    #39116995
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavyside,

откровенно говоря, часть из них скопипащенны из трудов моего предшественника. Возможно у меня когда-нибудь даже дойдут руки, чтобы их сократить, но не сегодня :)

Что подразумевается под "в файл выносить"? Прописывать в блоке Page - Function and Global Variable Declaration?
...
Рейтинг: 0 / 0
25 сообщений из 53, страница 1 из 3
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Добавление строк в Tabular Form
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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