IRubricatorInstance.GetRevision

Синтаксис Fore

GetRevision(
            Revision: Integer;
            [Options: DictionaryGetDataOptions = 0]
           ): IRubricatorRevision;

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

GetRevision(
            Revision: integer;
            Options: Prognoz.Platform.Interop.Rds.DictionaryGetDataOptions
           ): Prognoz.Platform.Interop.Cubes.IRubricatorRevision;

Параметры

Revision. Ключ ревизии;

Options. Параметр получения данных. Необязательный параметр. Значение по умолчанию - DictionaryGetDataOptions.None - получение данных для чтения.

Описание

Метод GetRevision возвращает ревизию по ключу.

Комментарии

Если в качестве параметра Revision передать значение Integer.MaxValue, то для версионных баз данных временных рядов метод вернёт последнюю ревизию, а для неверсионных - ревизию, соответствующую актуальным данным.

Пример Fore

Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «TSDB».

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

Sub UserProc;
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    DictIn: IMetaDictionaryInstance;
    Record: IMetaDataMemberRecord;
    TSKey: Integer;
    RevDim: IDimInstance;
    DimAtt: IDimAttributesInstance;
    DimA: IDimAttributeInstance;
    RubrRev: IRubricatorRevision;
    i: integer;
Begin
    
// Получаем репозиторий
    MB := MetabaseClass.Active;
    
// Получаем базу данных временных рядов
    RubDesc := MB.ItemById("TSDB");
    
// Получаем открытый экземпляр базы данных временных рядов
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    
// Получаем данные справочника временных рядов
    DictIn := RubrIn.GetDictionary(RubricatorDictionary.Facts);
    
// Получаем данные первого временного ряда в справочнике
    Record := DictIn.GetData(1).Record;
    
// Получаем ключ первого временного ряда
    TSKey := Record.Members.FindById("KEY").Value;
    
// Получаем данные справочника ревизий для первого временного ряда на определенную дату
    RevDim := RubrIn.RevisionsDimensionPoint(TSKey, DateTime.Parse("01.01.2002 00:00:00"));
    
// Получаем атрибуты справочника ревизий
    DimAtt := RevDim.Attributes;
    
// Получаем атрибут «KEY»
    DimA := DimAtt.FindById("KEY");
    
// Получаем ключ ревизии
    i := DimA.Attribute.Key;
    
// Получаем данные ревизии с указанным ключом
    RubrRev := RubrIn.GetRevision(i, DictionaryGetDataOptions.EditExisting);
    
// Выводим наименование ревизии в окно консоли
    Debug.WriteLine(RubrRev.Name);
End Sub UserProc;

В результате выполнения примера на редактирование будет открыта ревизия, в которую вошли данные первого временного ряда на первое января 2002 года. В окно консоли будет выведено наименование ревизии.

Пример Fore

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

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    DictIn: IMetaDictionaryInstance;
    Record: IMetaDataMemberRecord;
    TSKey: Integer;
    RevDim: IDimInstance;
    DimAtt: IDimAttributesInstance;
    DimA: IDimAttributeInstance;
    RubrRev: IRubricatorRevision;
    i: uinteger;
Begin
    // Получаем репозиторий
    MB := Params.Metabase;
    // Получаем базу данных временных рядов
    RubDesc := MB.ItemById["TSDB"];
    // Получаем открытый экземпляр базы данных временных рядов
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    // Получаем данные справочника временных рядов
    DictIn := RubrIn.GetDictionary(RubricatorDictionary.rubdicFacts);
    // Получаем данные первого временного ряда в справочнике
    Record := DictIn.GetData(1False).Record;
    // Получаем ключ первого временного ряда
    TSKey := Record.Members.FindById("KEY").Value As integer;
    // Получаем данные справочника ревизий для первого временного ряда на определенную дату
    RevDim := RubrIn.RevisionsDimensionPoint[TSKey As uinteger, DateTime.Parse("01.01.2002 00:00:00")];
    // Получаем атрибуты справочника ревизий
    DimAtt := RevDim.Attributes;
    // Получаем атрибут «KEY»
    DimA := DimAtt.FindById("KEY");
    // Получаем ключ ревизии
    i := DimA.Attribute.Key;
    // Получаем данные ревизии с указанным ключом
    RubrRev := RubrIn.GetRevision(i, DictionaryGetDataOptions.dgdoEditExisting);
    // Выводим наименование ревизии в окно консоли
    System.Diagnostics.Debug.WriteLine(RubrRev.Name);
End Sub;

См. также:

IRubricatorInstance