Гость
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вопрос по Popup Lov / 11 сообщений из 11, страница 1 из 1
03.08.2011, 12:34
    #37378532
FFFFFFFFFFFFFF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
В регионе в отчете есть поле N1 и поле n2. В поле n1 в Tabular Form Element
в Display As выставленно значение Popup Lov (Named LOV).
В List of Values выставленны значения:
Named LOV - V1
Также в List of Values заведена переменная с селектом типа:

Код: plaintext
1.
select v1 display_value, v1 return_value 
from t1

Запускаем на выполнение страницу. Открываем Popup и ищем в нем, то что нам нужно.
Нажимаем на кнопку "ок". Найденные данные с Popup передаются в поле n1 к которому
прикручен Popup.

Вопрос. Как в поле n2 передать значение из таблицы t1 (другого поля) по которой мы ищем Popup-ом.

Например, есть таблица t1 в которой есть поля v1,v2. В регионе есть отчет в котором
есть поля n1 и n2. На поле n1 прикручен Popup с поиском по полю v1. Открываем Popup и ищем.
Нашли то что нужно. Нажали "Ок" и значения попали в два поля отчета в n1 свое значение t1
и в n2 свое значение t2.

Как такое можно реализовать?
...
Рейтинг: 0 / 0
03.08.2011, 13:32
    #37378659
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
Как вариант, если хочется использовать именно табличную форму, объединить оба этих поля в одном столбце,
к примеру, возвращать v1 || some_delimiter || v2
+написать instead of триггер, который раскидывает изменения по этим 2-м столбцам.

Ну или программировать это всё на уровне яваскипта/html.
...
Рейтинг: 0 / 0
03.08.2011, 13:42
    #37378679
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
И возможно подойдёт как раз Popup Key Lov. Еще вариант добавить столбец Standard report column, и сделать его расчитываемым в запросе под Tabular Form.
...
Рейтинг: 0 / 0
03.08.2011, 14:29
    #37378801
FFFFFFFFFFFF
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
Что даст Popup Key Lov. Таблица T1 используется как справочник. С нее просто нужно подтянуть данные в поля.
...
Рейтинг: 0 / 0
03.08.2011, 17:20
    #37379276
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
Отличия в том, что Popup Key Lov отображает одно, а возвращать может другое, а что именно можно скрыть.
Т.е. возвращать можно id из этого справочника, а дальше с помощью instead of триггера можно прокопировать эти поля в таблицу, по этому ID. Конечно, для такого действа предполагается наличие unique по этим полям.
...
Рейтинг: 0 / 0
03.08.2011, 17:26
    #37379294
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
У меня для такой схемы, обычно записи заполняются поштучно, а не разом,
поэтому использую чаще формы с items, а не tabular forms, проще выходит, не знаю как у других.
...
Рейтинг: 0 / 0
04.08.2011, 01:50
    #37379752
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
FFFFFFFFFFFFFFКак такое можно реализовать?

У меня есть вопрос, возможно, не совсем по теме. А зачем такое делать? Почему в одной табличной форме получились такие два поля, что одно из них однозначно определяет второе?
...
Рейтинг: 0 / 0
04.08.2011, 11:40
    #37380209
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
Добавлю, придумалась лёгкая реализация через JavaScript.
Добавляем 2 hidden (или text field column) в которые будут копироваться v1 и v2. Добавляем им классы, скажем class="t_v1", class="t_v2"
Заводим Popup Lov который возвращает v1 || some_delimiter || v2, но не связываем его с таблицей.
Добавляем к нему в атрибуты что-то типа (внимание, это схематический, а не конечный код, его я не тестировал!!!):
Код: plaintext
1.
onChange="$(this).closest('tr').find('.t_v1').val( $(this).val().substr(0,$(this).val().indexOf('some_delimiter')) );$(this).closest('tr').find('.t_v2').val( $(this).val().substr($(this).val().indexOf('some_delimiter')+'some_delimiter'.length) );"

suPPLerFFFFFFFFFFFFFFКак такое можно реализовать?

У меня есть вопрос, возможно, не совсем по теме. А зачем такое делать? Почему в одной табличной форме получились такие два поля, что одно из них однозначно определяет второе?
FFFFFFFFFFFFТаблица T1 используется как справочник. С нее просто нужно подтянуть данные в поля.
Объяснено не очень, но подобные задачи изредка могут возникать:
т.е. есть справочник, грубо говоря, id и N полей. Далее этот справочник используется некоей сущностью. Но тут возникает проблема, меняем справочник => меняется сущность,
это если использовать foreign key, а сущность может являться, к примеру, уже подписанным документом, помещенным в архив, отсюда проблема.
Одно из простых решений: продублировать N полей из справочника в сущность, тем самым при выборе из справочника меняется не id, а эти N полей.
Описанная выше задача возникает при необходимости использовать Tabular Form с такой сущностью.
...
Рейтинг: 0 / 0
04.08.2011, 12:16
    #37380292
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
Это я про себя,
у FFFFFFFFFFFFFF, возможно, другой случай.
...
Рейтинг: 0 / 0
04.08.2011, 14:46
    #37380646
suPPLer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
SvUserОбъяснено не очень, но подобные задачи изредка могут возникать:
т.е. есть справочник, грубо говоря, id и N полей. Далее этот справочник используется некоей сущностью. Но тут возникает проблема, меняем справочник => меняется сущность,
это если использовать foreign key, а сущность может являться, к примеру, уже подписанным документом, помещенным в архив, отсюда проблема.
Одно из простых решений: продублировать N полей из справочника в сущность, тем самым при выборе из справочника меняется не id, а эти N полей.
Описанная выше задача возникает при необходимости использовать Tabular Form с такой сущностью.

Подобный случай - ошибка проектирования. :) Такой справочник должен иметь период действия у записи. Тогда "изменение" превращается в занесение новой информации, а "удаление" - в указание конца периода действия для записи. И документ в архиве не надо будет обновлять из-за обновления справочника, спасибо второй нормальной форме . Но это уже офтоп.

С интересом жду ответа топикстартера. Возможно, второе поле у него - дополнительная информация о выбранном в первом поле значении, которая не заносится в таблицу, а просто отображается. Но это только предположение.
...
Рейтинг: 0 / 0
04.08.2011, 15:33
    #37380808
SvUser
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вопрос по Popup Lov
suPPLerИ документ в архиве не надо будет обновлять из-за обновления справочника
И в приведенном решении тоже.

suPPLerПодобный случай - ошибка проектирования. :) Такой справочник должен иметь период действия у записи. Тогда "изменение" превращается в занесение новой информации, а "удаление" - в указание конца периода действия для записи. И документ в архиве не надо будет обновлять из-за обновления справочника, спасибо второй нормальной форме . Но это уже офтоп.
Всё это сложнее реализуется, в простых задачках в этом нет необходимости, так во всяком случае меня учили.
Или это можно автоматизировать каким-то простым способом? линки плз
ну у меня задачки либо небольшие, с малым бюджетом, либо дорабатываю большие (200 таблиц) с уже (по крайней мере частично) готовой структурой, поэтому каких-то особых решений на эту тему мало копал.
...
Рейтинг: 0 / 0
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Вопрос по Popup Lov / 11 сообщений из 11, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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