IRubricatorFactsLookup.Current

Синтаксис Fore

Current: IRubricatorFactData;

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

Current: Prognoz.Platform.Interop.Cubes.IRubricatorFactData;

Описание

Свойство доступно только для чтения.

Свойство Current возвращает текущую запись в массиве найденных показателей.

Комментарии

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

Пример Fore

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC_COMM». В данной базе должен присутствовать атрибут показателя с идентификатором «COUNTRY». Добавьте ссылки на системные сборки «Metabase», «Cubes», «Rds», «Orm».

Sub UserProc;
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    FactsLookup: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    cond: IOrmCondition;
    FactData: IRubricatorFactData;
    i: Integer;
    fdMembers: IMetaDataMembers;
    Value: Variant;
Begin
    MB := MetabaseClass.Active;
    RubDesc := MB.ItemById("FC_COMM");
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    FactsLookup := RubrIn.CreateFactsLookup;
    MetaDLookup := FactsLookup.Lookup;
    cond := MetaDLookup.Where.Add;
    cond.AttributeName := "COUNTRY";
    cond.Value := 512;
    FactsLookup.Open(DictionaryCursorOptions.None);
    FactData := FactsLookup.Current;
    If FactData <> Null Then
    fdMembers := FactData.Record.Members;
        For i := 0 To fdMembers.Count - 1 Do
            Debug.Write(fdMembers.Item(i).Attribute.Name + ": ");
            Value := fdMembers.Item(i).Value;
            Debug.WriteLine(value);
        End For;
    End If;
    FactsLookup.Close;
End Sub UserProc;

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

Пример Fore.NET

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

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    FactsLookup: IRubricatorFactsLookup;
    MetaDLookup: IMetaDictionaryLookup;
    cond: IOrmCondition;
    FactData: IRubricatorFactData;
    i: Integer;
    fdMembers: IMetaDataMembers;
    Value: object;
Begin
    MB := Params.Metabase;
    RubDesc := MB.ItemById["FC_COMM"];
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    FactsLookup := RubrIn.CreateFactsLookup();
    MetaDLookup := FactsLookup.Lookup;
    cond := MetaDLookup.Where.Add();
    cond.AttributeName := "COUNTRY";
    cond.Value := 512;
    FactsLookup.Open(DictionaryCursorOptions.dcuoNone);
    FactData := FactsLookup.Current;
    If FactData <> Null Then
    fdMembers := FactData.Record.Members;
        For i := 0 To fdMembers.Count - 1 Do
            System.Diagnostics.Debug.Write(fdMembers.Item[i].Attribute.Name + ": ");
            Value := fdMembers.Item[i].Value;
            System.Diagnostics.Debug.WriteLine(value);
        End For;
    End If;
    FactsLookup.Close();
End Sub;

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

См. также:

IRubricatorFactsLookup