Рисунок 1 – Заголовок фильтра

При работе с большими объемами данных возникает необходимость скрыть ненужную в данный момент информацию. Для этого используются фильтры. Фильтр содержит набор условий, которые накладываются на значения атрибутов сущности, представленной в табличной форме. При первоначальном открытии справочника фильтр пустой («Фильтр не задан») (рисунок 1) и отображаются все объекты выбранной сущности.

Содержимое панели фильтра и функции представлены в таблице 1.

Таблица 1 – Панель фильтра

Графическое изображение

Назначение

Кнопка для применения фильтра (отбора элементов списка по заданным условиям)

Сброс всех условий (отбор всех элементов списка)

Выбор сохраненных фильтров

Сохранение построенного фильтра. Задается наименование и доступ для пользователей:

  • Мне (текущий пользователь) – фильтр доступен только под логином пользователя, под которым сохранен;
  • Подразделению пользователя – фильтр доступен под логинами, которые привязаны к той же МО, что и пользователь, сохранивший фильтр;
  • Всем (подразделению пользователя и всем дочерним) – фильтр доступен всем пользователям системы

Закрытие области фильтра

Для построения фильтра необходимо щелкнуть левой кнопкой мыши в область «Фильтр не задан».

Откроется панель для построения фильтров (рисунок 2).

Рисунок 2 – Панель для построения фильтров

Содержимое области фильтра и функции, средства построения фильтра, представлены в таблице 2 и таблице 3.

Таблица 2 – Панель команд

Графическое
изображение

Назначение кнопки

Переключение представления фильтра в текстовый формат

Переключение представления фильтра в графический вид.

Преобразование представления фильтра в XML - формат

Отменяет последнее изменение фильтра (Undo)

Возвращает последнее изменение фильтра (Redo)

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

Сортировка запрашиваемых параметров

Слева располагается панель атрибутов сущности (рисунок 3).

Рисунок 3 – Дерево атрибутов

Размер панели атрибутов можно изменить, переместив мышью границу его правой или нижней внешних рамок.

Список атрибутов на панели имеет древовидную структуру. Простые атрибуты обозначаются в списке атрибутов иконкой  . Это такие атрибуты, которые не имеют ссылок на другие атрибуты. Они не могут быть развернуты в следующий уровень дерева списка. Примером простого атрибута для сущности «Посещение врача» может служить «Время посещения», «Дата ввода информации» и т.д.

Атрибуты, являющиеся так называемой «связанной сущностью», обозначаются в списке атрибутов иконкой  . Такие атрибуты имеют свои собственные списки атрибутов. Примером такого атрибута для сущности «Посещение врача» может служить атрибут «Вид оплаты», «Должность» и т.д.

В списке атрибутов сущности могут содержаться так называемые «дочерние коллекции». Дочерние коллекции обозначаются иконкой  . Примером дочерней коллекции для сущности «Посещение врача» может служить «Назначения», «Элементы реестра счетов».

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

Атрибуты можно «перетаскивать» с помощью мыши на рабочую панель. Для этого необходимо навести указатель мыши на атрибут в списке слева, нажать левую кнопку мыши и, не отпуская кнопки мыши, переместить указатель мыши на рабочую панель справа и затем отпустить кнопку. Когда мы отпустим кнопку мыши, появится форма для ввода дополнительных условий (рисунок 4).

Рисунок 4 – Форма для ввода условий

Панель инструментов (рисунок 5) содержит инструменты, позволяющие формировать различные условия фильтров.

Они являются запросами, параметрами запросов, системными параметрами, строковыми, логическими и арифметическими операторами (все функции описаны в таблице 3). Для построения условий фильтра необходимо перетащить инструменты при помощи мыши с панели инструментов на рабочую панель, в соответствующую часть условия.

Рисунок 5 – Панель инструментов фильтра

Таблица 3 – Операторы и функции, используемые в выражениях

Графическое
изображение

Назначение кнопки

Функция позволяет сделать выборку значений определенного атрибута заданной сущности

Функция подсчета количества элементов в указанной коллекции элементов типа «Объект»

Функция анализа дерева наследования

Функция позволяет проверить факт существования данных сущности, удовлетворяющих определенным условиям

Операнды не должны быть равны друг другу. В случае строк это означает, что строки не должны совпадать

Точное равенство операндов – чисел, строк, дат и т.д. Регистр символов строки данной операцией игнорируется, т.е. строки «Текст» и «текст» равны

Значение первого (левого) операнда должно быть меньше или равно значению второго (правого)

Значение первого (левого) операнда должно быть больше или равно значению второго (правого)

Значение первого (левого) операнда должно быть меньше значения второго (правого)

Значение первого (левого) операнда должно быть больше значения второго (правого)

Объединение операндов – логических значений или выражений (условий) через «или», т.е. положительным результатом выражения будет выполнение любого из этих условий

Объединение условий через «и», т.е. положительным результатом выражения будет одновременное выполнение всех этих условий

Возвращает положительный результат, если значение удовлетворяет определенному шаблону

Позволяет вставить в выражение условную конструкцию вида «Если … тогда … иначе …»

Оператор отрицания

Арифметический оператор сложения либо оператор сложения (конкатенации) строк.

Арифметический оператор вычитания

Арифметический оператор умножения

Арифметический оператор деления

Скобки определяют очередность вычислений

Вычисление математической функции

Вычисление остатка от деления

Функция, позволяющая вычислить разность между двумя датами в различных единицах измерения – годах, месяцах, днях и т.д.

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

Функция получения части даты в виде числа (год, месяц, номер недели в году и т.д.).

Функция получения заданной части текстовой строки (подстроки).

Функция вычисления длины строки в символах.

Функция переводит все символы строки в ЗАГЛАВНЫЕ

Функция переводит все символы строки в строчные

Функция добавляет слева указанные символы к строке до заданной длины строки

Функция добавляет справа указанные символы к строке до заданной длины строки

Функция заменяет в строке выбранный символ на указанный

Функция повторяет заданный символ в строке указанное кол-во раз

Функция возвращает логическое Да/Нет (1/0), Да - если длина строки >0

Функция приводит значение входного параметра любого типа к строке. Для логических параметров возвращает строку "True"/"False"

Функция удаляет пробелы в текстовой строке слева

Функция удаляет пробелы в текстовой строке справа

Функция позволяет преобразовать значение аргумента функции к требуемому типу данных, если возможно

Функция позволяет преобразовать значение аргумента функции к требуемому типу данных

Функция позволяет анализировать значение аргумента с помощью регулярных выражений

Функция задания константы

Функция задания параметра

Для ввода зарегистрированного системного параметра, например:

  • текущий пользователь
  • текущая дата

Функция позволяет проверить строку на пустоту и в случае «Да» заполнить ее заданными символами

Рабочая панель находится справа от панели инструментов и предназначена для отображения в графическом виде конструируемого фильтра.

Перед началом конструирования, рабочая панель пуста и не содержит никаких элементов. В процессе конструирования фильтров, рабочая панель заполняется условиями фильтров и содержит эти условия в графическом представлении (рисунок 6).

Рисунок 6 – Фильтр в графическом режиме