LookupCompoundKeys: Array;
LookupCompoundKeys(): System.Array;
Свойство LookupCompoundKeys возвращает массив составных ключей для временных рядов.
Признак того, что БД временных рядов использует составные ключи, возвращает свойство IRubricator.CompoundFactorKey.
Для выполнения примера в репозитории предполагается наличие БД временных рядов с идентификатором «RUBRICATOR». Добавьте ссылки на системные сборки: Metabase, Cubes, Rds.
Sub UserProc;
Var
MB: IMetabase;
RubDesc: IMetabaseObjectDescriptor;
Rub: IRubricator;
RubrIn: IRubricatorInstance;
DictInst: IMetaDictionaryInstance;
MetaDLookup: IMetaDictionaryLookup;
Keys, cKey: Array Of Variant;
i, j: Integer;
s: String;
Begin
MB := MetabaseClass.Active;
RubDesc := MB.ItemById("RUBRICATOR");
Rub := RubDesc.Bind As IRubricator;
If Rub.CompoundFactorKey Then
RubrIn := RubDesc.Open(Null) As IRubricatorInstance;
DictInst := RubrIn.Facts;
MetaDLookup := DictInst.CreateLookup("");
Keys := MetaDLookup.LookupCompoundKeys;
For i := 0 To Keys.Length - 1 Do
cKey := Keys[i] As Array Of Variant;
s := "";
For j := 0 To cKey.Length - 1 Do
s := s + cKey[j] + "; ";
End For;
Debug.WriteLine(s);
End For;
End If;
End Sub UserProc;
Результат выполнения примера: если БД временных рядов использует составные ключи, то их значения будут выведены в окно консоли.
Для выполнения примера в репозитории предполагается наличие БД временных рядов с идентификатором «RUBRICATOR».
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Rds;
…
[STAThread]
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
RubDesc: IMetabaseObjectDescriptor;
Rub: IRubricator;
RubrIn: IRubricatorInstance;
DictInst: IMetaDictionaryInstance;
MetaDLookup: IMetaDictionaryLookup;
Keys, cKey: Array Of object;
i, j: Integer;
s: String;
Begin
MB := Params.Metabase;
RubDesc := MB.ItemById["RUBRICATOR"];
Rub := RubDesc.Bind() As IRubricator;
If Rub.CompoundFactorKey Then
RubrIn := RubDesc.Open(Null) As IRubricatorInstance;
DictInst := RubrIn.Facts;
MetaDLookup := DictInst.CreateLookup("");
Keys := MetaDLookup.LookupCompoundKeys() As Array Of object;
For i := 0 To Keys.Length - 1 Do
cKey := Keys[i] As Array Of object;
s := "";
For j := 0 To cKey.Length - 1 Do
s := s + cKey[j] + "; ";
End For;
System.Diagnostics.Debug.WriteLine(s);
End For;
End If;
Результат выполнения примера: если БД временных рядов использует составные ключи, то их значения будут выведены в окно консоли.
См. также: