Руководство пользователя Business Studio Версия 3.6, Business Studio 3.6 Глава 11 Фильтры элементов и запросы к базе данных
« НазадГЛАВА 11. Фильтры элементов и запросы к базе данныхФильтр – это запрос к системе с целью выбрать определенную информацию из базы данных, отвечающую заданным условиям, а также произвести некоторую ее обработку: отсортировать, сгруппировать, вычислить агрегатные функции. В Business Studio пользователь с помощью простого интерфейса настраивает фильтр, задает условия, группировки и агрегаты. 1.1. Фильтр элементовОкно Фильтра (Рис. 11.1.1) открывается с помощью кнопки или с помощью комбинации клавиш «Ctrl+D». Фильтр можно открыть из окна с любым списком элементов. Ниже в таблице показаны кнопки панели инструментов окна фильтра, которые могут находиться в нажатом или отжатом состоянии. Таблица 11.1.1
Внимание: Для хранимого фильтра (см. п. 11.3) с видом результата «Форма справочника» управление показом группы осуществляется отметкой пункта меню «Действия –> Опции списка –> Показать группу». Кнопка сохраняет настроенный фильтр как хранимый фильтр. Подробнее см. п. 11.3 «Хранимые фильтры».
Используется для фильтрации элементов, лежащих только в заданной группе. Сама группа фильтра не войдет в результат фильтра. Щелчок по кнопке «Сохранить» запускает выполнение фильтра. Щелчок по кнопке «Отмена» закрывает окно фильтра. Закладка «Условия»На закладке «Условия» показана таблица со списком параметров класса и полями для ввода условий фильтра. Условия фильтра для параметра задаются в ячейках: «Тип», «Оператор», «Значение», «Не», «Потомки». В ячейке «Тип» выбирается тип операции сравнения. Тип операции по умолчанию − «Нет», т.е. операция не задана. Чтобы задать условие фильтра, нужно выбрать тип операции «Значение», «Список значений» или «Диапазон» (последнее только для даты). В ячейке «Оператор» из списка перечислений выбирается оператор сравнения:
В ячейке «Значение» вводится значение параметра. В зависимости от типа параметра это значение либо вводится с клавиатуры, либо выбирается из справочника, списка перечислений или календаря. Для типа операции «Список значений» значения выбираются из списка «Список значений». Для параметра с типом «Дата» можно указать типы сравнения «Значение» или «Диапазон». Если выбран тип «Значение», то в ячейке «Значение» открывается календарь для выбора конкретной даты. Если выбран тип «Диапазон», то в ячейке «Значение» открывается окно «Выбор периода». Кроме того, для сравнения даты можно вводить специальные константы. Подробнее об этом сказано в п. «Использование системных констант в фильтре». Опция «Не» служит для отрицания указанного условия, она включается и выключается щелчком мышкой в поле. Например, если выбрать оператор сравнения равно и включить опцию «Не», то в результат фильтрации войдут все объекты, у которых значение параметра не равно заданному. Опция «Потомки». Параметр, на который накладывается условие, может являться группой, то есть иметь потомков. В этом случае в качестве значения параметра может быть указана группа, а не конечный элемент. Для того чтобы сравнение проводилось не только с группой, но и с её потомками, нужно включить опцию «Потомки». Чтобы отменить условия фильтра, в ячейке «Тип» нужно выбрать − «Нет». Внимание: Не рекомендуется настраивать условия по рассчитываемым параметрам, например, параметр «Название» в классе Процессы. Необходимо использовать хранимое поле «Название процесса». Некоторые параметры класса имеют сложную структуру. Слева от названия такого параметра показан значок «+». Щелчок по значку «+» раскрывает структуру параметра, представляющую собой список параметров, для которых также можно задать условия фильтра. Если условие задано для параметра нижнего уровня структуры, то на каждом уровне-владельце в ячейке «Тип» необходимо указать тип «Подфильтр». Для возврата к основной структуре параметра нужно щелкнуть по значку , показанному слева в заголовке списка параметров (Рис. 11.1.2). Работа с операцией подобия «~»Операция подобия используется только для строковых и текстовых параметров. В ячейке «Значение» возможно использование шаблонных символов «_», «%», «[», «]» и «^». Таблица 11.1.2 Использование шаблонных символов для операции подобия
Использование системных констант в фильтреУсловием фильтра может служить имя системной константы. Чтобы ввести в ячейку «Значение» константу, щелкните на строке параметра правой кнопкой мышки. В контекстном меню строки выберите команду «Вставить константу», при этом в ячейке «Значение» появятся квадратные скобки. Установите курсор между скобками и введите системное название константы. В ячейке «Тип» выберите тип операции сравнения «Значение», выберите оператор сравнения. Таблица 11.1.3 Константы для подстановки в качестве Значения
Для параметров с типом «Дата» может использоваться оператор сравнения «Диапазон». Таблица 11.1.4 Константы даты для подстановки в качестве Диапазона
В диапазон подставляются значения с 00ч 00мин дня начала интервала до 00ч 00мин дня, следующего за днем конца интервала. Внимание: Можно константу диапазона подставить для типа операции «Значение». В этом случае работа будет происходить с датой начала диапазона. Внимание: Константы значений нельзя подставлять для типа операции «Диапазон». В качестве констант можно использовать параметры Объекта по умолчанию любого класса в виде: [<СистемноеНазваниеКласса>.<СистемноеНазваниеПараметра>] Объектом по умолчанию называется корневая группа класса, любой справочник имеет объект по умолчанию. Например, для класса «Процессы» объектом по умолчанию является сама группа «Процессы». Если в качестве константы подставляется параметр типа «Список», необходимо указывать тип фильтрации «Список значений». 1.2. Фильтры классов объектов системыДля объектов системы по умолчанию действует фильтр, настроенный на показ всех объектов данного класса. Пользователь может создать и назначить собственный фильтр класса для показа по умолчанию. Пользовательский фильтр класса – это элемент класса «Хранимые фильтры». Список хранимых фильтров открывается выбором пункта «Хранимые фильтры» в меню «Отчеты» (Главное меню программы). Подробнее см. п. 11.3 «Хранимые фильтры». Присвоить какому-либо классу фильтр, отличный от системного, можно в интерфейсе администратора системы. Выберите пункт меню «Администрирование –> Справочники администрирования», выберите справочник – «Фильтры классов». Будет открыто окно «Фильтры классов». Создайте новый объект «Фильтр классов» (значок ). В окне «Редактирование объекта из: Фильтры классов» в поле «Класс» выбирается класс объектов. В поле «Фильтр» выбирается хранимый фильтр вида «Форма справочника». Сохраните фильтр класса (кнопка «Сохранить»). Таким образом, задан фильтр, который будет действовать по умолчанию при обращении к списку элементов данного класса. В окне списка элементов можно выбрать фильтр, который необходим в конкретный момент времени, по кнопке « Фильтр –> Выбрать фильтр». Подробнее см. п. 2.4.1 «Работа со списком элементов. Окно списка». 1.3. Хранимые фильтрыПод фильтрами в системе подразумеваются выборки из базы данных, которые формируются на основе системного фильтра. Пользовательские фильтры вызываются с помощью пунктов меню «Отчеты» (Главное меню программы). Фильтр может быть настроен для любого класса объектов системы. Результаты выполнения фильтра могут быть в следующем виде: «Форма справочника», «Форма таблицы», «Форма шахматки». В меню «Отчеты –> Быстрые фильтры» (Главное меню программы) пункты: «Фильтр с выбором класса», «Фильтр по субъектам», «Фильтр по стрелкам», «Фильтр по процессам» – служат для настройки фильтров с результатом в виде «Формы таблицы». С помощью пункта «Фильтр с выбором класса» настраивается фильтр для любого класса объектов системы. Остальные пункты автоматически настроены на определенный класс. Фильтр можно использовать как для разового выполнения, так и сохранить его как объект класса «Хранимые фильтры». Список хранимых фильтров открывается выбором пункта « Хранимые фильтры» в меню «Отчеты». В окне «Редактирование объекта из: Хранимые фильтры» в поле «Название» вводится название хранимого фильтра (Рис. 11.3.1). В поле «Класс» отображается системное название класса, по которому построен фильтр. В поле «*Вид результата» из выпадающего списка выбирается, в каком виде будет выполнен фильтр. Вид результата «Не задан» указывается для папки. На закладке «Условия» отображаются условия фильтра. Гиперссылка Основное условие открывает окно фильтра для настройки основного условия. Чтобы создать дополнительное условие, необходимо ввести название условия в поле «Название». Логическая операция выбирается в столбце «И/ИЛИ», необходимые скобки выбираются в соответствующих столбцах. Дополнительные условия редактируются нажатием кнопки , откроется окно фильтра для настройки дополнительного условия. Можно перемещать условия кнопками со стрелками вверх и вниз. Удаление дополнительного условия осуществляется выбором соответствующего пункта контекстного меню. На закладке «Порядок колонок» показываются названия параметров, выбранных для показа (Рис. 11.3.2). В ячейке «Заголовок» можно ввести произвольное название заголовка для вывода в таблице. В колонке «Формат» можно указать формат вывода даты, числа и логики. Подробнее о способе задания формата для вывода данных см. п. «Формат для вывода даты, числа и логики» в разделе 12.4.2. С помощью кнопок и осуществляется управление порядком колонок, редактирование производится после настройки фильтра. Гиперссылка Выполнить фильтр запускает фильтр на выполнение. Класс объектов, для которого настраивается фильтр, выбирается один раз при первом редактировании фильтра. При последующем редактировании фильтра класс объектов изменить нельзя. 1.4. Настройка фильтраФильтр настраивается в окне «Фильтр − <Название класса>» (Рис. 11.4.1). Описание панели инструментов окна, назначение кнопок и полей ввода, а также закладки «Условия» дано в п. 11.1 «Фильтр элементов». Закладка «Показ»На закладке «Показ» отмечаются параметры, значения которых будут выводиться в окне результата выполнения фильтра. Чтобы включить показ, нужно щелкнуть мышкой в ячейке «Показывать» слева от параметра. Закладка «Показ» влияет на работу фильтров с результатом в виде «Форма таблицы» и «Форма шахматки». Значком «+» в списке отмечены параметры, имеющие сложную структуру. Их можно раскрыть, щелкнув по значку, и включить в показ параметры, составляющие их структуру. Если поля для показа не заданы, то при выполнении фильтра выдается сообщение об этом. Фильтр, тем не менее, выполняется, но окно результата будет пустым. Чтобы отредактировать фильтр, нажмите кнопку на панели инструментов формы таблицы. Будет открыто окно фильтра, в котором можно продолжить настройку. Список объектов, полученный в результате выполнения фильтра, можно сортировать. При этом не имеет значения, включен параметр в показ или нет. Сортировка может производиться одновременно по нескольким параметрам. Чтобы организовать сортировку, нужно заполнить список «Сортировка». Это делается с помощью кнопок, расположенных над списком сортировки. Щелчок по кнопке добавляет в список выбранный параметр. Кнопка убирает параметр из списка сортировки. Справа от списка «Сортировка» находятся кнопки, с помощью которых меняется порядок сортировки. Установите курсор на параметр сортировки и щелкните по кнопке со стрелкой вверх или вниз, чтобы изменить его положение в списке. Закладка «Группировка»На закладке «Группировка» показаны все параметры класса, по которым возможно произвести группировку значений (Рис. 11.4.3). В ячейке «Шаг» задается шаг группировки для параметров с типом «Целое» и «Вещественное». Если для параметра нельзя задать шаг группировки, его ячейка отмечена серым цветом. Чтобы задать шаг, нужно щелкнуть в ячейке и либо выбрать значение из выпадающего списка, либо ввести его вручную. Параметры, помеченные для группировки, автоматически включаются в показ. Заметьте, что включение группировки очищает список показа, и в нем остаются только параметры, для которых включена группировка. Закладка «Агрегаты»С помощью опций на закладке «Агрегаты» можно включить для показа агрегаты параметров класса (Рис. 11.4.4). Если для параметра нельзя включить данный агрегат, его ячейка выделяется серым цветом. Включенный агрегат параметра автоматически добавляется к показу в результате выполнения фильтра. Агрегаты «Количество», «Максимум», «Минимум» включаются для параметров всех типов. Агрегаты «Сумма» и «Среднее» включаются для параметров с типом «Целое» и «Вещественное». 1.5. Фильтр в виде «Форма справочника» В результате выполнения фильтра в виде «Формы справочника» пользователь получает список объектов системы одного класса, отобранных с учетом заданных условий фильтра. Список объектов показывается в стандартном окне справочника класса (Рис. 11.5.1). Подробнее об окне списка элементов см. п. 2.4.1 «Работа со списком элементов. Окно списка». Для фильтра в виде «Формы справочника» настройка производится только на закладке «Условия». Пример. Фильтр в виде «Форма справочника»Содержание фильтра: Вывести все процессы со статусом «В работе». Настройка фильтра. Создайте новый фильтр (значок на панели инструментов окна «Хранимые фильтры»). В окне «Выберите справочник» укажите класс «Процессы» (группа «Классы», подгруппа «Объекты системы» − «Справочники»). Введите название фильтра: «Процессы в работе». В отрывшемся окне фильтра настройте условия. Для этого на закладке «Условия» задайте фильтр для параметров «Тип процесса» и «Текущий статус»:
Параметр «Тип процесса» по умолчанию не показан, чтобы отобразить его нажмите кнопку «Показать все параметры». Сохраните фильтр. В окне свойств Хранимого фильтра выберите вид результата – «Форма справочника». Сохраните хранимый фильтр. В списке «Хранимые фильтры» выберите созданный фильтр «Процессы в работе» и щелкните по гиперссылке Выполнить фильтр. 1.6. Фильтр в виде «Форма таблицы»Результатом выполнения фильтра в виде «Форма таблицы» будет таблица. Колонки таблицы – это параметры объектов и агрегаты. В строках (ячейках) показываются значения параметров и агрегатов. Для фильтра в виде «Форма таблицы» можно использовать все закладки окна фильтра. Результат фильтра показывается в окне, заголовком которого служит название хранимого фильтра (Рис. 11.6.1). В окне действуют все контекстные меню окна списка. Таблица 11.6.1 Панель инструментов формы таблицы
Пример. Фильтр в виде «Форма таблицы»Содержание фильтра: Показать количество типов процессов в модели. Настройка фильтра. Создайте новый фильтр. В окне «Выбор класса» выберите справочник класса «Процессы» (группа «Классы», подгруппа «Объекты системы» − «Справочники»). Назовите фильтр «Типы процессов». В окне фильтра на закладках «Группировка» и «Агрегаты необходимо задать фильтр для параметра «Тип процесса». По умолчанию параметр не показан, чтобы отобразить его, нажмите кнопку «Показать все параметры». На закладке «Группировка» включите пометку для параметра «Тип процесса». На закладке «Показ» останется только этот параметр. На закладке «Агрегаты» включите агрегат «Количество» для параметра «Тип процесса». Этот агрегат будет добавлен к показу. Сохраните фильтр. В окне свойств укажите вид результата «Форма таблицы». На закладке «Порядок колонок» переименуйте заголовок колонки «Количество(Тип процесса)» в «Количество». С помощью кнопки «Вниз» переместите его на вторую строку. Сохраните хранимый фильтр и вызовите его на выполнение по гиперссылке Выполнить фильтр (Рис. 11.6.1). 1.7. Фильтр в виде «Форма шахматки»Таблица, полученная в результате выполнения фильтра в виде «Форма шахматки», представляет собой шахматку, в которой по горизонтали и вертикали показаны сгруппированные значения параметров объектов, а в ячейках на их пересечении – значение агрегата либо для одного из этих параметров, либо для любого другого параметра. Для фильтра в виде «Форма шахматки» используются все закладки окна фильтра. Список на закладке «Показ» заполняется автоматически при выборе параметров группировки и агрегатов. Чтобы настроить шахматку, нужно задать группировку по двум параметрам класса и включить какой-либо агрегат для одного из этих параметров. Параметры, показанные по вертикали и горизонтали, можно поменять местами, щелкнув по кнопке на панели инструментов Формы шахматки. Это разовая операция, чтобы вернуться к прежнему положению параметров, нужно заново выполнить фильтр (кнопка ). Пример. Фильтр в виде «Форма шахматки»Содержание фильтра: Показать список всех сотрудников, у которых отчество «Петрович», с количеством одинаковых имен по каждой фамилии. Настройка фильтра. Создайте фильтр. Выберите справочник «Физические лица». Введите название фильтра «Пример фильтра в виде «Формы шахматки». В окне фильтра на закладке «Условия» задайте фильтр для параметра «Отчество»:
На закладке «Группировка» включите группировку по параметрам «Фамилия» и «Имя». На закладке «Агрегаты» включите агрегат «Количество» для параметра «Имя». В окне свойств хранимого фильтра выберите вид результата «Форма шахматки». На Рис. 11.7.1 показан результат выполнения хранимого фильтра в виде «Формы шахматки». По вертикали перечислены фамилии, а по горизонтали – имена всех физических лиц, у которых отчество «Петрович». В ячейке показано, сколько человек имеют одинаковые имена и фамилии. З повагою ІЦ “KURSOVIKS”! |