Поле обнуляется при нажатии кнопки формы оракула? - PullRequest
0 голосов
/ 27 августа 2018

Я создаю форму для данных поиска в формах оракула 10g

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

1 Ответ

0 голосов
/ 27 августа 2018

Скриншот поможет;неясно, где находится это поле без базы данныхЕсли это табличный формат форума, размещается ли он во всех других полях?Или это где-то в контрольном блоке, не являющемся базой данных?

В любом случае: вот как я это сделаю.

Прежде всего, если возможно, избегайте изобретения ваш собственный алгоритм поиска.Формы очень хороши в том, чтобы делать такие вещи самостоятельно.Коротко:

  • войти в режим запроса
  • ввести критерии поиска (выбрать его из списка значений; почему нет?)
  • выполнить запрос
  • абсолютно никакого дополнительного программирования не требуется (кроме LoV)

Если по какой-то причине вы должны сделать это «по-своему»:

  • поставьте неполе LoV базы данных в отдельный блок управления
  • WHEN-BUTTON-PRESSED должен
    • использовать SET_BLOCK_PROPERTY и установить для блока базы данных DEFAULT_WHERE (или, может быть, даже лучше, ONETIME_WHERE) выбранный LoVзначение
    • перейти к блоку базы данных (GO_BLOCK)
    • EXECUTE_QUERY
  • альтернативно, WHEN-BUTTON-PRESSED будет только EXECUTE_QUERY, новы бы использовали PRE-QUERY триггер в блоке базы данных, который устанавливает критерии поиска, например :database_block.name := :control_block.lov_field;

По вашему вопросу:

  • кажется, чтоПоле LoV является частью блока базы данных, и оно очищается после выполнения запроса.Посмотрите, можете ли вы заполнить его, используя POST-QUERY триггер
  • Или, если это не так, проверьте, что делает триггер WHEN-BUTTON-PRESSED - возможно, он очищает его

См.из того, что я написал, помогает.Если нет, измените вопрос (ваше первоначальное сообщение) и предоставьте дополнительную информацию, которая поможет нам помочь вам.

...