GetRevision(
Revision:
Integer;
[Options:
DictionaryGetDataOptions
= 0]
): IRubricatorRevision;
GetRevision(
Revision:
integer;
Options:
Prognoz.Platform.Interop.Rds.DictionaryGetDataOptions
): Prognoz.Platform.Interop.Cubes.IRubricatorRevision;
Revision. Ключ ревизии;
Options. Параметр получения данных. Необязательный параметр. Значение по умолчанию - DictionaryGetDataOptions.None - получение данных для чтения.
Метод GetRevision возвращает ревизию по ключу.
Если в качестве параметра Revision передать значение Integer.MaxValue, то для версионных баз данных временных рядов метод вернёт последнюю ревизию, а для неверсионных - ревизию, соответствующую актуальным данным.
Для выполнения примера в репозитории предполагается наличие базы данных временных рядов с идентификатором «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(Null) As 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.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(Null) As IRubricatorInstance;
// Получаем данные справочника временных рядов
DictIn := RubrIn.GetDictionary(RubricatorDictionary.rubdicFacts);
// Получаем данные первого временного ряда в справочнике
Record := DictIn.GetData(1, False).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;
См. также: