powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как сделать: в таблице хранится id, на канве отображается name и используется LOV
6 сообщений из 6, страница 1 из 1
Как сделать: в таблице хранится id, на канве отображается name и используется LOV
    #36855334
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Доброе время суток всем!
Использую Forms6. В блоке, основном на вьюхе, есть поля: PROJECT_ID и PROJECT_NAME. На канве отображается PROJECT_NAME и к нему привязан LOV основанный на группе записей- селект к справочнику. PROJECT_ID хранится в т аблице, а PROJECT_NAME отображается на форме. При запуске PROJECT_NAME отображается пустым, хотя если щелкнуть на нем - откроется список, выберу значения и все нормально сохранится- в PROJECT_ID в таблице есть значение. Хорошо. Беру на триггере POST-QUERY делаю заполнение Item PROJECT_NAME селектом. Теперь все хорошо, значения в PROJECT_NAME отбражаются, но при переходе на следующую запись в блоке возникает предупреждение- "изменились данный сохранить?". И если после создание новой записи в блоке, попробовать тут же внести изменение возникает ошибка: "FRM-40654 Запись обновлена другим пользователем ". Если открыть формочку заново, то ошибка пропадает- вносить изменения можно.

Как обычно решается такая задача?: Когда в таблице хранится id, на канве отображается name, и используется LOV для выбора значения.
...
Рейтинг: 0 / 0
Как сделать: в таблице хранится id, на канве отображается name и используется LOV
    #36855404
anvano
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обычно так и решается - поле ID базовое, NAME - небазовое. NAME заполняется в POST-QUERY триггере.

Не ясно почему у вас ругается, может у вас поле PROJECT_NAME описано как базовое, но тогда по идее рвало бы еще на самом запросе с сообщением об отсутствии поля в таблице.
С другой стороны, если поле PROJECT_NAME объявлено как базовое и есть во вьюхе, на которой построен блок, то непонятно почему оно у вас сразу не заполняется.

В общем не совсем ясна конструкция блока, что за вьюха, какие поля там есть, какие из них на форме базовые/небазовые. Какой DML Target у блока, если он на вьюхе. А если DML таргета нет, то каким механизмом вы создаёте в блоке новые записи и сохраняете их.
...
Рейтинг: 0 / 0
Как сделать: в таблице хранится id, на канве отображается name и используется LOV
    #36855526
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTar,

подозреваю, что на PROJECT_NAME стоит галочка "сверять со списком значений"... это приводит к тому, что когда в POST-QUERY вы устанавливаете значение, то потом происходит "валидация" этого значения (скрытое открытие списка значений) и изменение PROJECT_ID (пусть даже на такое же значение, что было). поэтому нужно либо убрать галку "сверять со списком", либо в POST-QUERY d в самом конце написать нечто вроде
Код: plaintext
1.
SET_RECORD_PROPERTY(CURRENT_RECORD,'BLOCK_NAME',STATUS,QUERY_STATUS);

А про изменение данных другим пользователем - возможно снова триггеры на вьюхе или таблицах.
...
Рейтинг: 0 / 0
Как сделать: в таблице хранится id, на канве отображается name и используется LOV
    #36855622
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OmegaMale
подозреваю, что на PROJECT_NAME стоит галочка "сверять со списком значений"...

Да, точно стоит галочка ) Пасибо )
...
Рейтинг: 0 / 0
Как сделать: в таблице хранится id, на канве отображается name и используется LOV
    #36855633
MikTar
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
anvano,

Понял, поле PROJECT_NAME у меня было не базовое, просто Item ) Добавлю его во вьюху, и тогда по идеи оно начнет отображаться ) Пасибо )
...
Рейтинг: 0 / 0
Как сделать: в таблице хранится id, на канве отображается name и используется LOV
    #36855735
OmegaMale
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikTar,

Ну, если имя - это поле из СУБД, тогда лучше поставить галочку - раз, а два - просто не трогать его в POST-QUERY и тогда галку оставить.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Как сделать: в таблице хранится id, на канве отображается name и используется LOV
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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