DimHierarchy: IDimHierarchyInstance;
DimHierarchy: IDimHierarchyInstance;
Свойство DimHierarchy определяет иерархию атрибута.
Для определения, будет ли видимым указанный атрибут справочника НСИ в раскрывающемся списке значений атрибута базы данных временных рядов, используйте свойство IMetaAttributeSetting.ShowAttribute.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1» и компонент MetaAttributesBreadcrumb с наименованием «MetaAttributesBreadcrumb1». В репозитории должна присутствовать база данных временных рядов с идентификатором «DIM_HIERARCHY». В базе должен присутствовать пользовательский атрибут, ссылающийся на справочник с настроенной альтернативной иерархией. Для компонента «MetaAttributesBreadcrumb1» должен быть выбран хотя бы один элемент справочника. Пример является обработчиком события OnClick для компонента «Button1». Подключите системные сборки: Cubes, Dimensions, ExtCtrls, Forms, Rds.
Добавьте ссылки на системные сборки «Metabase», «Dimensions».
Sub SAMPLEFormOnCreate(Sender: Object; Args: IEventArgs);
Var
MB: IMetabase;
RubInst: IRubricatorInstance;
Begin
MB := MetabaseClass.Active;
RubInst := MB.ItemById("DIM_HIERARCHY").Open(Null) As IRubricatorInstance;
MetaAttributesBreadcrumb1.Rubricator := RubInst;
End Sub SAMPLEFormOnCreate;
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Items: IBreadcrumbItems;
Item: IMetaAttributeBreadcrumbItem;
Attr: IMetaAttribute;
AttrS: IMetaAttributeSettings;
AttrSett: IMetaAttributeSetting;
DimInst: IDimInstance;
Begin
Items := MetaAttributesBreadcrumb1.Items;
Item := Items.Item(0) As IMetaAttributeBreadcrumbItem;
Attr := Item.MetaAttribute;
DimInst := Attr.ValuesObject.Open(Null) As IDimInstance;
AttrS := MetaAttributesBreadcrumb1.MetaAttributeSettings;
AttrSett := AttrS.FindByAttribute(Attr);
AttrSett.DimHierarchy := DimInst.Hierarchies.Item(0);
End Sub Button1OnClick;
После выполнения примера для отображаемых элементов справочника будет применена альтернативная иерархия:
до применения альтернативной иерархии: ;
после применения альтернативной иерархии: .
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.ExtCtrls;
Imports Prognoz.Platform.Interop.Forms;
Imports Prognoz.Platform.Interop.Rds;
Private Sub SAMPLEForm_Load(sender: System.Object; e: System.EventArgs);
Var
MB: IMetabase;
RubInst: IRubricatorInstance;
Begin
MB := Self.Metabase;
RubInst := MB.ItemById["DIM_HIERARCHY"].Open(Null) As IRubricatorInstance;
metaAttributesBreadcrumbNet1.Rubricator := RubInst;
End Sub;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Items: IBreadcrumbItems;
Item: IMetaAttributeBreadcrumbItem;
Attr: IMetaAttribute;
AttrS: IMetaAttributeSettings;
AttrSett: IMetaAttributeSetting;
DimInst: IDimInstance;
Begin
Items := metaAttributesBreadcrumbNet1.CtrlBox.Items;
Item := Items.Item[0] As IMetaAttributeBreadcrumbItem;
Attr := Item.MetaAttribute;
DimInst := Attr.ValuesObject.Open(Null) As IDimInstance;
AttrS := metaAttributesBreadcrumbNet1.CtrlBox.MetaAttributeSettings;
AttrSett := AttrS.FindByAttribute(Attr);
AttrSett.DimHierarchy := DimInst.Hierarchies.Item[0];
End Sub;
См. также: