IAccessElementsIterator.Current

Syntax

Current: IAccessElement;

Description

The Current property returns the current element.

Example

Executing the example requires the Button component named Button1 and the TreeList component named TreeList1 on the form. 5 columns have to be created for the TreeList component: Name, ReadAccess, WriteAccess, DeleteAccess, AccessAccess. An MDM repository with the MDM identifier and an MDM dictionary with the Dict_1 identifier should be in the scheme.

Class UserForm: Form

Button1: Button;

TreeList1: TreeList;

 

Sub FillViewer(Iterator : IAccessElementsIterator; currentlevel:integer; parentNode : ITreeListNode);

Var

level : integer;

node : ITreeListNode;

element : IAccessElement;

Begin

level := iterator.Next;

If level<>-1 Then

element := iterator.Current;

node := TreeList1.Nodes.AddChild(GetParent(parentNode,currentlevel,level),element.Name);

node.Data := element;

node.ColumnText(1) := element.AttributeAccess(AccessElementAttributes.Read).ToString;

node.ColumnText(2) := element.AttributeAccess(AccessElementAttributes.Write).ToString;

node.ColumnText(3) := element.AttributeAccess(AccessElementAttributes.Delete).ToString;

node.ColumnText(4) := element.AttributeAccess(AccessElementAttributes.Access).ToString;

FillViewer(iterator,level,node);

End If;

End Sub FillViewer;

 

Function GetParent(node : ITreeListNode; currentLevel : integer; level : integer):ITreeListNode;

Begin

If (level-currentLevel)=1 Then

Return node;

End If;

If currentLevel>= level Then

currentLevel := currentLevel-1;

Else

level := level-1;

End If;

Return GetParent(node.Parent,currentLevel,level);

End Function GetParent;

 

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);

Var

MB : IMetabase;

Object : IMetabaseObjectDescriptor;

SD : ISecurityDescriptor;

AOS : IAccessObjectSecurity;

Iterator : IAccessElementsIterator;

Begin

MB := MetabaseClass.Active;

Object := MB.ItemByIdNamespace("Dict_1", MB.ItemById("RDS").Key);

AOS := Object.GetSecurity;

Iterator := AOS.GetElements;

FillViewer(Iterator,-1,Null);

End Sub Button1OnClick;

 

End Class UserForm;

Clicking the button displays a tree of MDM dictionary elements in the TreeList component and the values, stored in access attributes, are displayed in respective columns for each element.

See also:

IAccessElementsIterator