Гость
Map
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Обновление итема-идентификатора при очищении текстового поля. / 13 сообщений из 13, страница 1 из 1
25.01.2017, 10:12
    #39390818
QAWSEDRF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
Добрый день, товарищи.
Вопрос достаточно простой. Для начала описание ситуации.
Есть форма. В форме есть блок. В блоке есть 2 элемента, оба имеют тип TEXT ITEM. Первый называется ITEM_ID, хранит числовой идентификатор и не отображается пользователю. Второй называется ITEM_DESC, хранит текстовое описание и отображается пользователю. Для этих 2 элементов настроен один LOV. При выборе значения в нем текстовое присваивается в ITEM_DESC, а числовое в ITEM_ID.
Вроде бы все стандартно и хорошо. НО в момент когда пользователь очищает поле ITEM_DESC от значения и переходит к другим элементам, то поле ITEM_ID сохраняет значение, хотя мне нужно что бы оно тоже очищалось вместе с ITEM_DESC.

Внимание вопрос: Как сделать, что бы при очищении видимого поля ITEM_DESC автоматически очищалось не отображаемое поле ITEM_ID?

P.s. костыль ввиде логики очищения итема в триггере POST_TEXT_ITEM не предлагать. Хотелось бы узнать есть ли стандартный функционал очищения зависимых полей.
...
Рейтинг: 0 / 0
25.01.2017, 11:32
    #39390888
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
QAWSEDRF,

Validate from List => Yes
...
Рейтинг: 0 / 0
25.01.2017, 18:56
    #39391488
QAWSEDRF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
mRdUKE,

выставил для ITEM_ID указанное вами свойство и ничего не поменялось. Это поле остается также заполненным при когда ITEM_DESC очищаешь.
...
Рейтинг: 0 / 0
26.01.2017, 05:55
    #39391727
OldBoyOdeSu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
QAWSEDRF,

давно не работал с формсами, так что могу ошибаться, но вроде when-validate-item срабатывает при изменении полей.
на блок или ITEM_DESC повесить when-validate-item в нём if(:block.ITEM_DESC is null)then :block.ITEM_ID := '';
...
Рейтинг: 0 / 0
26.01.2017, 15:27
    #39392168
Jaid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
OldBoyOdeSu, это тот же костыль, который просили не предлагать (только вы предлагаете другой триггер использовать), но суть та же. Тоже всегда за-нуливаю в триггере, но думаю должен быть стандартный, более красивый способ.
...
Рейтинг: 0 / 0
26.01.2017, 15:28
    #39392169
QAWSEDRF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
OldBoyOdeSu,

в таком случае проще на ITEM_DESC в триггер POST-TEXT-ITEM навесить эту логику. Но когда таких элементов становится много, то писать для каждого элемента спец триггер "не айс". Вот думаю может есть логика стандартная для таких случаев.
...
Рейтинг: 0 / 0
27.01.2017, 07:16
    #39392641
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
QAWSEDRFВроде бы все стандартно и хорошо. НО в момент когда пользователь очищает поле ITEM_DESC от значения и переходит к другим элементам, то поле ITEM_ID сохраняет значение, хотя мне нужно что бы оно тоже очищалось вместе с ITEM_DESC.Не стандартно, имхо! Для чего Вам нужен "такой" блок

ITEM_IDITEM_DESCnullnull-X--X-?

Validate from List => Yes, как уже указывал выше, для того, чтобы значение было только из списка, и свойство Required => Yes, чтобы поле было обязательно заполнено, иначе - предлагать очистку записи (CLEAR_RECORD, F6); или перед сохранением, проверять блок, очищать запись с пустым значением..
...
Рейтинг: 0 / 0
27.01.2017, 12:05
    #39392894
QAWSEDRF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
mRdUKE,
под "Стандартно" я имел ввиду работу стандартных форм в OeBS, там никакой доп логики нигде не прописывается и зависимые ITEM_ID автоматом очищаются, при очищении ITEM_DESC.

блок нужен для того что бы при последующем сохранении в бд сохранялся ITEM_ID с нулевым значением, а не с заполненным.

Пример ситуации. Пользователь создал запись. Выбрал с помощью LOV значения и автоматом у него заполнились ITEM_ID и ITEM_DESC. Сохранил в БД, при этом в бд естественно передался только ITEM_ID, ITEM_DESC не сохраняется.
Затем заново открыл форму и запросил созданную ранее запись. Она отобразилась. Очищает руками поле ITEM_DESC, сохраняет и думает что у него это поле пустое. При этом в БД передалось старое заполненное значение ITEM_ID, так как ITEM_ID остался заполненным.
Далее возникнет казус, пользователь запросит ранее сохраненную запись, ожидая увидеть пусто в ITEM_DESC, а оно у него будет заполнено, так как ITEM_ID ранее автоматом не очистился и имеет значение.
...
Рейтинг: 0 / 0
27.01.2017, 12:25
    #39392907
mRdUKE
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
QAWSEDRF,

С OEBS не знаком; а отображение (только просмотр) и редактирование (вставка/удаление) данных я лично реализую в разных блоках / на разных соотв. вкладках, и в принципе не использую вставку новых данных "строчным" методом (по типу MS Excel).
...
Рейтинг: 0 / 0
27.01.2017, 16:19
    #39393226
efendi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
QAWSEDRF,

Стандартного решения нет.
Несколько вариантов решения данной проблемы вижу и часто их использую (IMHO):

1. Триггеры POST-TEXT-ITEM, PRE-INSERT, PRE-UPDATE, WHEN-VALIDATE-ITEM.
2. Добавить пустую запись в LOV-список. Ручную очистку запретить.
3. Использовать Calculation mode => Formula (нужна функция и дополнительное поле)
4. Добавить кнопку очистки. Ручную очистку запретить.
5. Если записей в списке немного, то использовать List Item - заполнять при запуске формы. Установить свойство Required => No
...
Рейтинг: 0 / 0
27.01.2017, 16:27
    #39393246
Jaid
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
efendi,

все это напоминает разные виды костылей)
не, а как стандартные-то формы заналивают поля-идентификаторы? там я таких "танцев-с-бубнами" не припоминаю...
...
Рейтинг: 0 / 0
27.01.2017, 16:29
    #39393251
OeBS Dev
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
QAWSEDRFпод "Стандартно" я имел ввиду работу стандартных форм в OeBSРаз это OeBS, то тебе надо перечитать Oracle E-Business Suite Developer's Guide раздел про зависимые элементы.
...
Рейтинг: 0 / 0
29.01.2017, 17:30
    #39394082
efendi
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление итема-идентификатора при очищении текстового поля.
Jaidefendi,

все это напоминает разные виды костылей)
не, а как стандартные-то формы заналивают поля-идентификаторы? там я таких "танцев-с-бубнами" не припоминаю...

Стандартного решения нет. Визард обычно по 1 варианту формы создает, если не ошибаюсь -не пользуюсь им при создании форм, использую свои заготовки.
...
Рейтинг: 0 / 0
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Обновление итема-идентификатора при очищении текстового поля. / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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