Current: IRubricatorFactData;
Current: Prognoz.Platform.Interop.Cubes.IRubricatorFactData;
Свойство доступно только для чтения.
Свойство Current возвращает текущую запись в массиве найденных показателей.
Перед получением текущей записи необходимо вызвать метод IRubricatorFactsLookup.Open, т.е. открыть курсор, позволяющий перемещаться в массиве найденных данных.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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(Null) As 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». Данные первого найденного показателя будут выведены в окно консоли.
Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «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(Null) As 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». Данные первого найденного показателя будут выведены в окно консоли.
См. также: