Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.
ru:technical_manual:work_via_ole:filter_param [2018/02/05 14:49] |
ru:technical_manual:work_via_ole:filter_param [2023/03/16 12:20] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | ====== Класс "Система.ПараметрФильтра" ====== | ||
+ | ===== Свойство Значение ===== | ||
+ | |||
+ | **Свойство**: Значение | ||
+ | |||
+ | **Тип параметра**: Соответствует типу параметра в объектной модели. | ||
+ | |||
+ | Свойство содержит значение параметра фильтра. | ||
+ | |||
+ | **Пример кода**. См. код в свойствах данного класса. | ||
+ | |||
+ | ===== Свойство ОтрицаниеУсловия ===== | ||
+ | |||
+ | **Свойство**: ОтрицаниеУсловия | ||
+ | |||
+ | **Тип** **параметра**: Bool (True, False). | ||
+ | |||
+ | Свойство задает отрицание заданного условия фильтра. | ||
+ | |||
+ | **Пример кода**. | ||
+ | |||
+ | __Задача__: показать количество оргединиц, у которых название не равно "директор". | ||
+ | |||
+ | <code> | ||
+ | Sub ПримерOLE_ФильтрСубъектовБезДиректора() | ||
+ | |||
+ | 'Получение объекта приложения | ||
+ | |||
+ | Set oleapp = CreateObject("ByteEnterprise.OleApplication") | ||
+ | |||
+ | 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. | ||
+ | |||
+ | 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. | ||
+ | |||
+ | Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") | ||
+ | |||
+ | 'В панели задач появится приложение | ||
+ | |||
+ | oleapp.ПоказатьКлиентскоеПриложение | ||
+ | |||
+ | |||
+ | |||
+ | 'Указываем, что дальнейшая работа будет с Оргединицами | ||
+ | |||
+ | Set ВсеСубъекты = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.Субъекты") | ||
+ | |||
+ | |||
+ | |||
+ | 'Создать фильтр, отбирающий только должности | ||
+ | |||
+ | Set ФильтрНеДиректор = ВсеСубъекты.СоздатьФильтр | ||
+ | |||
+ | ФильтрНеДиректор.Условия.Параметры.Название.Значение = "Директор" | ||
+ | |||
+ | ФильтрНеДиректор.Условия.Параметры.Название.ОтрицаниеУсловия = True | ||
+ | |||
+ | |||
+ | |||
+ | 'Выполняем фильтр и определяем количество записей | ||
+ | |||
+ | Set РезультатФильтрНеДиректор = ФильтрНеДиректор.Выполнить | ||
+ | |||
+ | КолвоСубъектов = РезультатФильтрНеДиректор.КоличествоЭлементов | ||
+ | |||
+ | |||
+ | |||
+ | 'Выводим сообщение | ||
+ | |||
+ | MsgBox "Количество субъектов без Директора: " + CStr(КолвоСубъектов) | ||
+ | |||
+ | |||
+ | |||
+ | End Sub | ||
+ | </code> | ||
+ | |||
+ | ===== Свойство ТипФильтрации ===== | ||
+ | |||
+ | **Свойство**: ТипФильтрации | ||
+ | |||
+ | **Результат**: Int (целое число от 0 до 4) | ||
+ | |||
+ | Свойство задает тип фильтрации. При задании условия по умолчанию устанавливается тип фильтрации "Значение". | ||
+ | |||
+ | Допустимые варианты: | ||
+ | |||
+ | 0 - Значение, | ||
+ | |||
+ | 1 - Диапазон, | ||
+ | |||
+ | 3 - Подфильтр, | ||
+ | |||
+ | 4 - Нет. | ||
+ | |||
+ | Задание типа фильтрации отличного от умолчания (Значение) может осуществляться по номеру. | ||
+ | |||
+ | **Пример кода**. | ||
+ | |||
+ | __Задача__: определить список показателей, к целевому значению которых будет стремиться компания в указанных год. | ||
+ | |||
+ | <code> | ||
+ | Sub ПримерOLE_РаботаСФильтромДиапазон() | ||
+ | |||
+ | ' Получение объекта приложения | ||
+ | |||
+ | Set oleapp = CreateObject("ByteEnterprise.OleApplication") | ||
+ | |||
+ | 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. | ||
+ | |||
+ | 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. | ||
+ | |||
+ | Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") | ||
+ | |||
+ | 'В панели задач появится приложение | ||
+ | |||
+ | oleapp.ПоказатьКлиентскоеПриложение | ||
+ | |||
+ | |||
+ | |||
+ | 'Указываем, что дальнейшая работа будет с Показателями | ||
+ | |||
+ | Set ПоказателиОПУ = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.ПоказателиBSC") | ||
+ | |||
+ | |||
+ | |||
+ | 'Создать фильтр, показывающий количество показателей, к достижению которых стремимся в 2014 г. | ||
+ | |||
+ | Set ФильтрПоказатели = ПоказателиОПУ.СоздатьФильтр | ||
+ | |||
+ | 'Задание условий | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЦелеваяДата.ТипФильтрации = 1 'Диапазон | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЦелеваяДата.Мин = CDate("01.01.2014") | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЦелеваяДата.ВключатьМин = True | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЦелеваяДата.Макс = CDate("31.12.2014") | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЦелеваяДата.ВключатьМакс = True | ||
+ | |||
+ | 'Выполняем фильтр | ||
+ | |||
+ | Set Результат = ФильтрПоказатели.Выполнить | ||
+ | |||
+ | |||
+ | |||
+ | КолвоПоказатель = Результат.КоличествоЭлементов | ||
+ | |||
+ | |||
+ | |||
+ | MsgBox "Количество показателей, к достижению которых стремимся в 2014: " + CStr(КолвоПоказатель) | ||
+ | |||
+ | |||
+ | |||
+ | End Sub | ||
+ | </code> | ||
+ | |||
+ | ===== Свойство ОператорСравнения ===== | ||
+ | |||
+ | **Свойство**: ОператорСравнения | ||
+ | |||
+ | **Результат**: Int (целое число от 0 до 5) | ||
+ | |||
+ | Оператор сравнения для типа фильтрации "Значение" (см. [[ru/technical_manual/work_via_ole/filter_param#свойство_типфильтрации|Cвойство ТипФильтрации]]). По умолчанию "Равно". | ||
+ | |||
+ | Возможные варианты: | ||
+ | |||
+ | 0 - Больше, | ||
+ | |||
+ | 1 - БольшеИлиРавно, | ||
+ | |||
+ | 2 - Меньше, | ||
+ | |||
+ | 3 - МеньшеИлиРавно, | ||
+ | |||
+ | 4 - Равно, | ||
+ | |||
+ | 5 - Подобный (только для строковых параметров). | ||
+ | |||
+ | Задание оператора сравнения отличного от умолчания (Равно) может осуществляться по номеру. | ||
+ | |||
+ | **Пример кода**. | ||
+ | |||
+ | __Задача__: показать количество оргединиц, у которых в названии есть слово "директор". | ||
+ | |||
+ | <code> | ||
+ | Sub ПримерOLE_СоздатьФильтрОператорСравнения() | ||
+ | |||
+ | 'Получение объекта приложения | ||
+ | |||
+ | Set oleapp = CreateObject("ByteEnterprise.OleApplication") | ||
+ | |||
+ | 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. | ||
+ | |||
+ | 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. | ||
+ | |||
+ | Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") | ||
+ | |||
+ | 'В панели задач появится приложение | ||
+ | |||
+ | oleapp.ПоказатьКлиентскоеПриложение | ||
+ | |||
+ | |||
+ | |||
+ | 'Указываем, что дальнейшая работа будет с Оргединицами | ||
+ | |||
+ | SetВсеСубъекты = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.Субъекты") | ||
+ | |||
+ | |||
+ | |||
+ | 'Создать фильтр, отбирающий только должности | ||
+ | |||
+ | SetФильтр = ВсеСубъекты.СоздатьФильтр | ||
+ | |||
+ | |||
+ | |||
+ | 'Условие - в названии субъекта содержится слово "директор" | ||
+ | |||
+ | Фильтр.Условия.Параметры.Название.ОператорСравнения = 5 'строковый параметр, соответствует "~" | ||
+ | |||
+ | Фильтр.Условия.Параметры.Название.Значение = "%директор%" | ||
+ | |||
+ | |||
+ | |||
+ | 'Выполняем фильтр и определяем количество записей | ||
+ | |||
+ | SetРезультатФильтр = Фильтр.Выполнить | ||
+ | |||
+ | КолвоДолжностей = РезультатФильтр.КоличествоЭлементов | ||
+ | |||
+ | |||
+ | |||
+ | 'Выводим сообщение | ||
+ | |||
+ | MsgBox"Количество субъектов, у которых в названии есть слово 'директор' : " + CStr(КолвоДолжностей) | ||
+ | |||
+ | |||
+ | |||
+ | End Sub | ||
+ | </code> | ||
+ | |||
+ | ===== Свойства Мин и Макс ===== | ||
+ | |||
+ | **Свойство**: Мин | ||
+ | |||
+ | **Свойство**: Макс | ||
+ | |||
+ | **Тип параметра**: Соответствует типу параметра в объектной модели. | ||
+ | |||
+ | Минимальное и максимальное значения параметра фильтра для типа фильтрации "Диапазон" (см. [[ru/technical_manual/work_via_ole/filter_param#свойство_типфильтрации|Cвойство ТипФильтрации]]). | ||
+ | |||
+ | **Пример кода**. См. код в свойстве "ТипФильтрации" ([[ru/technical_manual/work_via_ole/filter_param#свойство_типфильтрации|Cвойство ТипФильтрации]]). | ||
+ | |||
+ | ===== Свойства ВключатьМин и ВключатьМакс ===== | ||
+ | |||
+ | **Свойство**: ВключатьМин | ||
+ | |||
+ | **Свойство**: ВключатьМакс | ||
+ | |||
+ | **Тип** **параметра**: Bool (True, False) | ||
+ | |||
+ | Свойство логики, управляющей включением минимального и максимального значения в результат фильтрации при типе фильтрации "Диапазон" (см. [[ru/technical_manual/work_via_ole/filter_param#свойство_типфильтрации|Cвойство ТипФильтрации]]). Если логика включена, граничное значение войдет в результат фильтрации. По умолчанию логика включена. | ||
+ | |||
+ | **Пример кода**. См. код в свойстве "ТипФильтрации" ([[ru/technical_manual/work_via_ole/filter_param#свойство_типфильтрации|Cвойство ТипФильтрации]]). | ||
+ | |||
+ | ===== Свойство Подфильтр ===== | ||
+ | |||
+ | **Свойство**: Подфильтр | ||
+ | |||
+ | **Тип параметра**: Система.Фильтр (см. [[ru/technical_manual/work_via_ole/filter]]). | ||
+ | |||
+ | Свойство задает вложенный фильтр для данного параметра фильтра. Используется с типом фильтрации "Подфильтр" (см. [[ru/technical_manual/work_via_ole/filter_param#свойство_типфильтрации|Cвойство ТипФильтрации]]). Только для объектных и списковых параметров. Подфильтр строится по тому классу, которому принадлежит параметр. | ||
+ | |||
+ | **Пример кода**. | ||
+ | |||
+ | __Задача__: | ||
+ | |||
+ | <code> | ||
+ | Sub ПримерOLE_СоздатьФильтрСПодфильтром() | ||
+ | |||
+ | 'Получение объекта приложения | ||
+ | |||
+ | Set oleapp = CreateObject("ByteEnterprise.OleApplication") | ||
+ | |||
+ | 'Запустить Business Studio в указанной редакции с указанной базой и сервером баз данных. | ||
+ | |||
+ | 'В Диспетчере задач появится Business Studio. В панели задач приложения не будет видно. | ||
+ | |||
+ | Set client_app = oleapp.ЗапуститьКлиентскоеПриложение("ИмяСервера", "ИмяБазы", "РедакцияПрограммы") | ||
+ | |||
+ | 'В панели задач появится приложение | ||
+ | |||
+ | oleapp.ПоказатьКлиентскоеПриложение | ||
+ | |||
+ | |||
+ | |||
+ | 'Указываем, что дальнейшая работа будет с Показателями | ||
+ | |||
+ | SetПоказателиОПУ = oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.ПоказателиBSC") | ||
+ | |||
+ | |||
+ | |||
+ | 'Создаем фильтр по единицам деятельности | ||
+ | |||
+ | SetФильтрПоказатели = ПоказателиОПУ.СоздатьФильтр | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЕдиницаИзмерения.ТипФильтрации = 3 'Подфильтр | ||
+ | |||
+ | |||
+ | |||
+ | 'задаем условия подфильтра по единице измерения показателя | ||
+ | |||
+ | 'подфильтр будет по Единицам измерения | ||
+ | |||
+ | Set ЕдиницыОПУ = _ | ||
+ | |||
+ | oleapp.ПолучитьКорневуюГруппуКласса("БизнесМодель.ЕдиницыИзмеренияЗатрат") | ||
+ | |||
+ | |||
+ | |||
+ | 'подфильтр отбирает единицы с сокращением "руб." | ||
+ | |||
+ | Set ФильтрЕдиницы = ЕдиницыОПУ.СоздатьФильтр | ||
+ | |||
+ | ФильтрЕдиницы.Условия.Параметры.Сокращение.Значение = "руб." | ||
+ | |||
+ | |||
+ | |||
+ | 'непосредственное задание условия фильтра Показателя по подфильтру | ||
+ | |||
+ | ФильтрПоказатели.Условия.Параметры.ЕдиницаИзмерения.Подфильтр = ФильтрЕдиницы | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | 'Выполняем фильтр по Показателю и определяем количество записей | ||
+ | |||
+ | SetРезультатФильтрПоказатели = ФильтрПоказатели.Выполнить | ||
+ | |||
+ | КолвоПоказателей = РезультатФильтрПоказатели.КоличествоЭлементов | ||
+ | |||
+ | |||
+ | |||
+ | 'Выводим сообщение | ||
+ | |||
+ | MsgBox"Количество показателей, которые измеряются в рублях: " + CStr(КолвоПоказателей) | ||
+ | |||
+ | |||
+ | |||
+ | End Sub | ||
+ | </code> | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | [<contextnavigator>] | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | {(rater>id=ru_technical_manual_work_via_ole_filter_param|name=Класс "Система.ПараметрФильтра"|type=vote|trace=ip|headline=off)} |