SaveToMetabase(Key: Integer; Object: IMetabaseObjectDescriptor);
SaveToMetabase(Key: uinteger; Object: Prognoz.Platform.Interop.Metabase.IMetabaseObjectDescriptor);
Key. Ключ альтернативной иерархии.
Object. Объект, в который сохраняется альтернативная иерархия.
Метод SaveToMetabase сохраняет указанную альтернативную иерархию.
Объект, в который сохраняется альтернативная иерархия, должен иметь тип «Конструируемый справочник».
Для выполнения примера в репозитории предполагается наличие экспресс-отчета с идентификатором «EXPRESS_ELEMENT». Данный отчет должен содержать измерение с пользовательской альтернативной иерархией. Также в репозитории должна присутствовать папка с идентификатором «DATAAREAHIERARCHIES».
Добавьте ссылки на системные сборки: Dimensions, Express, Metabase.
Sub UserProc;
Var
MB: IMetabase;
Express: IEaxAnalyzer;
DArea: IEaxDataArea;
Hiers: IEaxDataAreaHierarchies;
Hier: IEaxDataAreaHierarchy;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObjectDescriptor;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим экспресс-отчет
Express := MB.ItemById("EXPRESS_ELEMENT").Bind As IEaxAnalyzer;
// Получим срез источника данных
DArea := Express.DataArea;
// Получим коллекцию альтернативных иерархий
Hiers := DArea.Hierarchies;
// Сохраним первую альтернативную иерархию
If Hiers.Count > 0 Then
Hier := Hiers.Item(0);
CrInfo := MB.CreateCreateInfo;
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_CUSTOMDIM;
CrInfo.Name := "Альтернативная иерархия для справочника '" +
Hier.Selection.Dimension.Name + "'";
CrInfo.Parent := MB.ItemById("DATAAREAHIERARCHIES");
MObj := MB.CreateObject(CrInfo);
Hiers.SaveToMetabase(Hier.Key, MObj);
End If;
End Sub UserProc;
В результате выполнения примера в папке «DATAAREAHIERARCHIES» будет сохранён справочник, используемый для построения пользовательской альтернативной иерархии.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Express: IEaxAnalyzer;
DArea: IEaxDataArea;
Hiers: IEaxDataAreaHierarchies;
Hier: IEaxDataAreaHierarchy;
CrInfo: IMetabaseObjectCreateInfo;
MObj: IMetabaseObjectDescriptor;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим экспресс-отчет
Express := MB.ItemById["EXPRESS_ELEMENT"].Bind() As IEaxAnalyzer;
// Получим срез источника данных
DArea := Express.DataArea;
// Получим коллекцию альтернативных иерархий
Hiers := DArea.Hierarchies;
// Сохраним первую альтернативную иерархию
If Hiers.Count > 0 Then
Hier := Hiers.Item[0];
CrInfo := MB.CreateCreateInfo();
CrInfo.ClassID := MetabaseObjectClass.KE_CLASS_CUSTOMDIM As integer;
CrInfo.Name := "Альтернативная иерархия для справочника '" +
Hier.Selection.Dimension.Name + "'";
CrInfo.Parent := MB.ItemById["DATAAREAHIERARCHIES"];
MObj := MB.CreateObject(CrInfo);
Hiers.SaveToMetabase(Hier.Key, MObj);
End If;
End Sub;
См. также: