Различия

Здесь показаны различия между выбранной ревизией и текущей версией данной страницы.

Ссылка на это сравнение

ru:technical_manual:work_via_ole:filter_param [2017/04/21 14:54]
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)}
Driven by DokuWiki