TdxBarTreeViewCombo Example
- 2 minutes to read
This example populates a TdxBarTreeViewCombo‘s dropdown tree view with data from a self-referenced table. The self-referenced table represents a firm’s management structure. Large departments consist of small departments. The table has the following structure:
Field Name | Field Type | Field Length |
---|---|---|
DepId | Number | 2 |
DepParent | Number | 2 |
DepName | Character | 20 |
DepId is a department identification number, DepParent is the identification number of the parent department. The DepId field of the largest departments is equal to -1. You can use this example with smaller datasets.
procedure TForm1.FillTheTreeViewNode;
procedure AddProject(ACode: Integer; ANode: TTreeNode);
var
OldFilterTmp : String;
OldFilteredTmp : Boolean;
OldRecNo : Integer;
NewTreeNode : TTreeNode;
begin
dxBarTreeViewCombo1.Items.Clear;
with DataSource1.Dataset do
begin
OldRecNo := RecNo;
OldFilterTmp := Filter;
OldFilteredTmp := Filtered;
Filtered := False;
Filter := 'DepParent = '+IntToStr(ACode);
Filtered := True;
First;
while not Eof do
begin
NewTreeNode := dxBarTreeViewCombo1.Items.AddChild(ANode,FieldValues['DepName']);
AddProject(FieldValues['DepId'], NewTreeNode);
Next;
end;
Filter := OldFilterTmp;
Filtered := OldFilteredTmp;
RecNo := OldRecNo;
end;
end;
var
OldFilter : String;
OldFiltered : Boolean;
NewRootNode : TTreeNode;
begin
with DataSource1.Dataset do
begin
OldFilter := Filter;
OldFiltered := Filtered;
Filtered := False;
Filter := ' DepParent = -1';
Filtered := True;
First;
while not Eof do
begin
NewRootNode :=
dxBarTreeViewCombo1.Items.Add(nil,FieldValues['DepName']);
AddProject(FieldValues['DepId'], NewRootNode );
Next;
end;
Filtered := False;
Filter := OldFilter;
Filtered := OldFiltered;
end;
end;