IOrmCondition.ConditionJoin

Синтаксис Fore

ConditionJoin: OrmLogicalOperator;

Синтаксис Fore.NET

ConditionJoin: Prognoz.Platform.Interop.Orm.OrmLogicalOperator;

Описание

Свойство ConditionJoin определяет логический оператор, применяемый для объединения текущего условия с предыдущим.

Комментарии

По умолчанию используется логическое И, т.е. ConditionJoin = OrmLogicalOperator.And_.

Пример Fore

Для выполнения примера в репозитории предполагается наличие БД временных рядов с идентификатором «TSDB», содержащей целочисленный атрибут временных рядов с идентификаторами «COUNTRY». Для идентификации рядов в БД должны использоваться мнемоники.

Добавьте ссылки на системные сборки «Cubes», «Metabase», «Orm», «Rds».

Sub UserConditionJoin;
Var
    MB: IMetabase;
    RubrInst: IRubricatorInstance;
    FactsLookup: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    Conds: IOrmConditions;
    Cond_1, Cond_2: IOrmCondition;
    Factors: Array;
    i: Integer;
    Factor: IRubricatorFactor;
    FactData: IRubricatorFactData;
Begin
    MB := MetabaseClass.Active;
    // Получаем экземпляр БД временных рядов
    RubrInst := MB.ItemById("TSDB").Open(NullAs IRubricatorInstance;
    // Создаем объект для поиска показателей
    FactsLookup := RubrInst.CreateFactsLookup;
    MetaDLookup := FactsLookup.Lookup;
    Conds := MetaDLookup.Where;
    // Добавляем 1-е условие
    Cond_1 := Conds.Add;
    Cond_1.AttributeName := "COUNTRY";
    Cond_1.Value := 512;
    // Добавляем 2-е условие
    Cond_2 := Conds.Add;
    Cond_2.ConditionJoin := OrmLogicalOperator.Or_;
    Cond_2.AttributeName := "COUNTRY";
    Cond_2.Value := 914;
    // Выполняем поиск и выводим результаты в окно консоли
    FactsLookup.Open(DictionaryCursorOptions.None);
    Factors := FactsLookup.GetFactors;
    If Factors <> Null Then
        For i := 0 To Factors.Length - 1 Do
            Factor := Factors[i];
            FactData := Factor.FactData;
            Debug.WriteLine((i + 1).ToString + ". " + FactData.Mnemo);
        End For;
    End If;
    FactsLookup.Close;
End Sub UserConditionJoin;

После выполнения примера в окно консоли будут выведены мнемоники временных рядов, соответствующих условиям: значение атрибута «COUNTRY» равняется «512» или «914».

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Orm;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RubrInst: IRubricatorInstance;
    FactsLookup: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    Conds: IOrmConditions;
    Cond_1, Cond_2: IOrmCondition;
    Factors: Array;
    i: Integer;
    Factor: IRubricatorFactor;
    FactData: IRubricatorFactData;
Begin
    MB := Params.Metabase;
    // Получаем экземпляр БД временных рядов
    RubrInst := MB.ItemById["TSDB"].Open(NullAs IRubricatorInstance;
    // Создаем объект для поиска показателей
    FactsLookup := RubrInst.CreateFactsLookup();
    MetaDLookup := FactsLookup.Lookup;
    Conds := MetaDLookup.Where;
    // Добавляем 1-е условие
    Cond_1 := Conds.Add();
    Cond_1.AttributeName := "COUNTRY";
    Cond_1.Value := 512;
    // Добавляем 2-е условие
    Cond_2 := Conds.Add();
    Cond_2.ConditionJoin := OrmLogicalOperator.oloOr;
    Cond_2.AttributeName := "COUNTRY";
    Cond_2.Value := 914;
    // Выполняем поиск и выводим результаты в окно консоли
    FactsLookup.Open(DictionaryCursorOptions.dcuoNone);
    Factors := FactsLookup.GetFactors();
    If Factors <> Null Then
        For i := 0 To Factors.Length - 1 Do
            Factor := Factors.GetValue(i) As IRubricatorFactor;
            FactData := Factor.FactData;
            System.Diagnostics.Debug.WriteLine((i + 1).ToString() + ". " + FactData.Mnemo);
        End For;
    End If;
    FactsLookup.Close();
End Sub;

См. также:

IOrmCondition