Нажимая кнопку «Отправить запрос», я даю свое согласие на обработку моих персональных данных в соответствии с Федеральным законом от 27.07.2006 № 152-ФЗ "О персональных данных" на условиях и для целей, определенных в Согласии на обработку персональных данных.
Продолжение использования сайта пользователем интерпретируется как согласие на обработку фрагментов персональных данных (таких, как cookies) для целей корректной работы сайта.
Концепция QBE – Query by Example (поиск по образцам) в Списках LUI
QBE – способ задания условий отбора нужных строк в Списках LUI максимально наглядным и быстрым способом. В результате в Списке остаются только те строки, которые соответствуют текстовым образцам, заданным в полях, на которые необходимо наложить ограничения. Условия, заданные таким способом, легко читаются и понимаются пользователем, так как интуитивно понятны и наглядны. Кроме того, установленные условия легко подвергаются коррекции, модификации, сохранению под именем и быстрому применению в нужный момент.
Общие принципы
Абсолютно в любом Списке LUI можно использовать режим Запроса по образцам (QBE). Для перехода в него нажмите F7 или кликните на кнопку «Изменить условие отбора» в ToolBar Списка. При этом форма очищается от данных и пользователь может вводить тексты в любое видимое поле одной или нескольких строк этого Списка. Текст в любой ячейке преобразуется в одно или несколько условий (предикатов), применяемых к тому столбцу, в котором введён текст. Условия, указанные в одной строке объединяются отношением «И». Несколько строк с условиями объединяются отношением «Или». Для применения заданных условий отбора нажмите F8 или кликните на кнопку «Выполнить запрос».
Пример:
Данное условие интерпретируется так:
Отобразить все договоры, которые в номере содержат три нуля подряд и заключены в 2011 году, а также договоры с юридическими лицами, заключёнными до 2011 года, и кроме того, любые договоры на ровно три объекта.
На уровне SQL условия из данного примера порождают следующие предикаты:
contract_no like '%000%' and contract_date>=to_date('01.01.11','DD.MM.RR')
or contract_date<to_date('01.01.11','DD.MM.RR') and legal_status='ЮЛ'
or n_object=3
Язык предикатов
Каждая ячейка в режиме QBE может содержать текст условия (предикат), которое задаётся одним из перечисленных способов:
Шаблон;Название;Предикат;Примечание
Текст (не содержит %, не начинается с =);Равно;Col = 'Текст';Col — текстовый столбец
;;Col = Текст;Col — числовой столбец без указания формата
;;Col = to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col = to_number('Текст', 'Формат');Col — столбец с форматом числа
=Текст;Равно;Col = 'Текст';Col — текстовый столбец
;;Col = Текст;Col — числовой столбец без указания формата
;;Col = to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col = to_number('Текст', 'Формат');Col — столбец с форматом числа
Текст не начинается с =;Похож;Col like 'Текст';Текст содержит %, Col — текстовый столбец
;;to_char(Col, 'Формат') like 'Текст';Текст содержит %, Col — столбец c форматом даты/времени или числа
<>Текст;Не равно;Col != 'Текст';Col — текстовый столбец
;;Col != Текст;Col — числовой столбец без указания формата
;;Col != to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col != to_number('Текст', 'Формат');Col — столбец с форматом числа
>Текст;Больше;Col > 'Текст';Col — текстовый столбец
;;Col > Текст;Col — числовой столбец без указания формата
;;Col > to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col > to_number('Текст', 'Формат');Col — столбец с форматом числа
<Текст;Меньше;Col < 'Текст';Col — текстовый столбец
;;Col < Текст;Col — числовой столбец без указания формата
;;Col < to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col < to_number('Текст', 'Формат');Col — столбец с форматом числа
>=Текст;Больше или равно;Col >= 'Текст';Col — текстовый столбец
;;Col >= Текст;Col — числовой столбец без указания формата
;;Col >= to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col >= to_number('Текст', 'Формат');Col — столбец с форматом числа
<=Текст;Меньше или равно;Col <= 'Текст';Col — текстовый столбец
;;Col <= Текст;Col — числовой столбец без указания формата
;;Col <= to_date('Текст', 'Формат');Col — столбец с форматом даты/времени
;;Col <= to_number('Текст', 'Формат');Col — столбец с форматом числа
Текст1><Текст2;Между;Col between 'Текст1' and 'Текст2';Col — текстовый столбец
;;Col between Текст1 and Текст2;Col — числовой столбец без указания формата
;;Col between to_date('Текст1', 'Формат') and to_date('Текст2', 'Формат');Col — столбец с форматом даты/времени
;;Col between to_number('Текст1', 'Формат') and to_number('Текст2', 'Формат');Col — столбец с форматом числа
!Условие;Отрицание;not Условие;Добавляет отрицание к последующему условию
Примеры задания условий:
Столбец;Текст условия;Результирующий текст предиката
№ договора;F0104-46955;contract_no = 'F0104-46955'
Клиент;ЗАО%;fullname like 'ЗАО%'
Клиент;=ЗАО%;fullname = 'ЗАО%'
Документ;=;doc_type_code is null
Документ;<>;doc_type_code is not null
Документ;!;not doc_type_code is null
Документ;!<>;not doc_type_code is not null
№ договора;==;contract_no = '='
Конвертов;>1;envelope_cnt > 1
Объектов;%0;to_char(n_object) like '%0'
Дата;>15.12.11;contract_date > to_date('15.12.11', 'DD.MM.RR')
Дата;01.12.11><01.01.12;contract_date between to_date('01.12.11', 'DD.MM.RR') and to_date('01.01.12', 'DD.MM.RR')
Для перехода в режим QBE нажмите F7 или кликните на кнопку «Изменить условие отбора» на ToolBar;
Для применения заданных условий отбора нажмите F8 или кликните на кнопку «Выполнить запрос».
Сохранение условий
Введённые при помощи QBE условия (наряду с порядком сортировки) могут быть сохранены в пользовательских конфигурациях, чтобы потом быть быстро применёнными при выборе сохранённой конфигурации из списка всех таких конфигураций. Если пользователь выбирает конфигурацию, то все ранее введённые условия QBE удаляются, а вместо них подставляются условия QBE из сохранённой конфигурации. После выбора конфигурации пользователь может скорректировать условия QBE и при желании сохранить их в той же или новой конфигурации.