ICtrlGroupConditions.InsertRow

Syntax

InsertRow(Index: Integer, Value: ConditionOperatorType): IListViewItem;

Parameters

Index. Index, by which element is added.

Value. The statement that will be used in the expression when the element to be added is grouped with another component element.

Description

The InsertRow method adds an element by the specified index.

Comments

The element is added with the specified expression by the specified index before the element contained before adding the new element.

NOTE. The element cannot be added after all the elements in the component.

To add an element after all the component elements, use the ICtrlGroupConditions.AddRow method.

To group the selected elements, use the ICtrlGroupConditions.Group method.

To group elements by index, use the ICtrlGroupConditions.GroupByIndexes method.

Example

To execute the example, create a form given in the example for the ICtrlGroupConditions.AddRow method. Add two Button components named Button1 and Button2 to the form. For the Button1 component, set the Text property to Add Element and Groups, for the Button2 component, set the property to Ungroup All Groups.

Add a link to the Forms system assembly.

The example is a handler of the OnClick events for the Button1 and Button2 components.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    AttrEditBox, AttrEditBox2: IEditBox;
    List: ITreeCombo;
    ValueEdit: IIntegerEdit;
    Items: IListViewItems;
    Arr: Array 
Of Integer;
Begin
    
// Add a new element to the second row
    CtrlGroupConditions1.InsertRow(1, ConditionOperatorType.Or_);
    
// Add a visual component for the Attribute column
    AttrEditBox := New EditBox.Create;
    AttrEditBox.Text := 
"VALUE";
    CtrlGroupConditions1.InsertControl(AttrEditBox, 
21);
    
// Add a visual component for the Condition column
    List := New TreeCombo.Create;
    List.Nodes.Add(
Null"Equal").Selected := True;
    List.Nodes.Add(
Null"Not equal");
    List.Nodes.Add(
Null"Less");
    List.Nodes.Add(
Null"Greater");
    List.Nodes.Add(
Null"Less or equal");
    List.Nodes.Add(
Null"Greater or equal");
    List.SelectionMode := SelectionModeType.SingleSelect;
    CtrlGroupConditions1.InsertControl(List, 
31);
    
// Add a visual component for the Value column
    ValueEdit := New IntegerEdit.Create;
    ValueEdit.Value := 
15;
    CtrlGroupConditions1.InsertControl(ValueEdit, 
41);

    
// Set array for the first group
    Arr := New Integer[2];
    Arr[
0] := 0;
    Arr[
1] := 1;
    
// Group elements
    CtrlGroupConditions1.GroupByIndexes(Arr);

    
// Get component elements
    Items := CtrlGroupConditions1.Items;
    
// Select elements for the second group
    Items.Item(2).Checked := True;
    Items.Item(
3).Checked := True;
    
// Group elements
    CtrlGroupConditions1.Group;
End Sub Button1OnClick;

Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Groups: IConditionGroups;
    Group: IConditionGroup;
    Elements: IConditionElements;
    Element: IConditionElement;
    GCount, ECount, i, j, s: Integer;
    Arr : Array 
Of Integer;     
Begin
    
// Get groups of elements
    Groups := CtrlGroupConditions1.Groups;
    
// Get number of groups
    GCount := Groups.Count;
    
For i := 0 To GCount - 1 Do
        
// Get group of elements
        Group := Groups.Item(i);
        
// Get group elements 
        Elements := Group.Elements;
        
// Get number of elements
        ECount := Elements.Count;
        
// Create array of elements
        If ECount >= 2 Then
            
For j := 0 To ECount - 1 Do
                Arr := 
New integer[ECount];
                
For s := 0 To ECount - 1 Do
                    Element := Elements.Item(s);
                    Arr[s] := Element.Row;
                
End For;    
            
End For;
            
// Ungroup all groups of elements
            CtrlGroupConditions1.UngroupByIndexes(Arr);
        
End If;
    
End For;
End Sub Button2OnClick;

After executing the example, the following buttons are added to the form: for adding a new element after the first row, for grouping elements and for ungrouping all groups of elements.

Clicking the Add Element and Groups button adds a new element after the first row and elements are grouped:

Clicking the Ungroup All Groups button ungroups all groups of elements:

See also:

ICtrlGroupConditions