powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Сохранить только выбранные записи, вернуть выбранные и не выбранные
11 сообщений из 11, страница 1 из 1
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38711734
nub_ora13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добый вечер.
Пожалуйста подскажите кто-нибудь, как сделать в 6-х формзах (ОЕБС R11) следующее:
Есть таблица злодеев и таблица злых дел (вообще всех возможных). Нужно в форме злодеев сделать окно, выводящее все возможные злые дела для данного злодея на основе стандартной таблицы злых дел + поле чекбокс и, если чекбокс выбран, то данное злое дело совершено данным злодеем. Таким образом, форма отображает характеристики злодеев и их злые дела. Список злых дел должен соответствовать стандартной таблице злых дел. То-есть если вдруг в стандартную таблицу добавили строку, то в списке оно должно тоже появиться. Но при этом список должен сохранять прежние выборы, то-есть чекбоксы должны быть проставлены там, где надо. Я сначала думал конкатенировать в текстовое поле, теперь склоняюсь к parent-child таблице... Но в любом случае это не LOV, а отдельное окно/блок.
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712215
nub_ora13Есть таблица злодеев и таблица злых делРаз это отношение "многое ко многим", то нужна еще и таблица злодеяний злодеев.
nub_ora13склоняюсь к parent-child таблицеДа, мастер-деталь, где мастер - злодеи, а деталь это вьюшка из таблицы злых дел + таблица злодеяний злодеев. Вьюшку обвесить instead of тригерами.
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712240
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мастер-детальВьюшку обвесить instead of тригерами.
Нафига?

Показ делаем на View + вытаскиваем ID из таблицы связки
Обновление (DML) делаем на таблицу связки, у поля ID говорим, что это ключевое поле (для update)
Остальные поля делаем недоступными для редактирования
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712279
Leonid KudryavtsevНафига?Когда меняем состояние чекбокса, то для блока это будет update, а нам нужен insert в таблицу связки (установили крыжик) или delete (убрали крыжик)
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712283
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сорри, был не прав.

1) Вместо View, можно было бы банально использовать post_query триггер.

Тогда делаем блок на таблице-связки, данные из справочной таблице подтягиваем в post_query триггере.

С точки зрения абсолютной правильности, это менее правильно, чем View. Т.к. будет больше обращений к серверу базы данных. В случае View, все данные передадутся одним select'ом, в случае post-query для каждой строки будет еще один или несколько одиночных запросов. Хотя, существуют ситуации, когда post-query более производительно.


2)
На самом деле, задача не так уж и просто.

Как я понимаю, автор хочет автоматом высветить ВЕСЬ СПРАВОЧНИК, вне зависимости от того, что есть в таблице-связки. Стандартный подход, обычно, позволит высветить ТОЛЬКО данные из таблице связки.

Можно придумывать разные навороты. Но наверное наиболее просто такое сделать полностью ручками. См. транзакционные триггеры. ON-SELECT, ON-LOCK, ON-DELETE. ON-INSERT, ON-UPDATE и так далее.

Ну, или, действительно View и instead-of триггер. (ни разу instead-of не делал)
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712291
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мастер-детальКогда меняем состояние чекбокса, то для блока это будет update, а нам нужен insert в таблицу связки (установили крыжик) или delete (убрали крыжик)
Да, уже сам заметил.
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712317
Leonid Kudryavtsevнаверное наиболее просто такое сделать полностью ручками. См. транзакционные триггеры. ON-SELECT, ON-LOCK, ON-DELETE. ON-INSERT, ON-UPDATE и так далееСоглашусь только на ON-LOCK - действительно, очень полезно будет его сделать. В остальном, чем меньше подменяем стандартную функциональность, тем лучше.
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712318
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Самый простой и не очень правильный вариант (view + instead of правильнее):

Делаем отдельное модальное окошко с одним блоком (так сделал бы я).
Делаем блок по таблице справочника, поле с Check-box не базовое, заполняется на post-query
ЗАПРЕЩАЕМ блоку сохраняться в таблицу. Поле DML Target None
Делаем две кнопки Ok, Cancel )))

По кнопке Ok - в цикле проходимся по блоу, анализируем поле с Check-Box, обрабатываем, как нам нужно
На кнопкке Cancel - все понятно

Может иметь смысл, если трогать(создавать) объекты в БД не желательно, все на чистом Forms, просто и понятно. Во всех прочих случаях, признаю за вариантом с view и instead of триггерами одни плюсы.
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712323
Leonid Kudryavtsev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
мастер-деталь
Мы с тобой параллельно пишем )))
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712399
nub_ora13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно чтобы для каждого злодея выводился список всех злых дел( злодеи и злые дела - это стандартные таблицы) c чекбоксами, и чтобы при повторном выборе злодея этот список отображался также, со всеми злодействами с галочками напротив выбранных. Менять можно только состояние чекбоксов.
...
Рейтинг: 0 / 0
Сохранить только выбранные записи, вернуть выбранные и не выбранные
    #38712414
nub_ora13
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
То-есть я правильно понимаю, что нужно будет создать таблицу соответствия evil_deeds(criminal_id, evil_deed_id, ...), и заполнять блок формы через вьюшку с фулл аутер джоином данной таблицы со стандартными. Где evil_deed_id not null - там чекбокс выбран. Правильно?
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / Сохранить только выбранные записи, вернуть выбранные и не выбранные
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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