DevExpress VCL 的 cxDBTreeList 的使用方法:(假设控件名为: WBSTree)
1、控件WBSTree 通过绑定 DataSet 获取数据记录(Nodes),通过 Columns 绑定到 DataSet 的域(Field);
1)通过For循环:0 to WBSTree.ColumnCount -1,WBSTree.Columns[integer] (TcxTreeListColumn) 获取的列记录顺序,参考下图。 下列图中有三个 Band(0,1,2),且各列(Column)分别交叉属于不同Band。
2)也可以通过 :WBSTree.ColumnByName(‘NameString’) ,提供列名称字符获取列(TcxTreeListColumn);
3)TcxTreeListColumn 的 ItemIndex 属性(Integer)返回的整数值,即是下图中列的顺序值。因此要取某列(名称标识)在 Columns 中 顺序码 Index,通过下列方法: WBSTree.ColumnByName(‘WBSTreeId’).ItemIndex . 获取 ‘WBSTreeId’列的顺序码,值绝对是 0,排第一位。
2、要获取列 Column 在 Band 中位置,有一个参数 Position 与 VisibleIndex 。WBSTree.ColumnByName(‘WBSTreeId’). Position/VisibleIndex
Position 对象(类TcxTreeListColumnPosition)有几个属性:BandIndex, ColIndex and RowIndex,LineCount,可见性(VisibleBandIndex, VisibleColIndex, VisibleRowIndex). 及 相应的 (Band, Column, and Row).
WBSTree.ColumnByName(‘WBSTreeId’). Position.Band 获取所在Band (TcxTreeListBand);
3、通过 Tree控件的 WBSTree.FocusedNode 或者 Selections[ Index: Integer ] (SelectionCount 是选中的数量) 获得某行节点(TcxDBTreeListNode ) ;
Node记录 ,它 data cells 通过 Values[ Integer ] 来获取相应列 Columns 的值,两者 Index 一致 ;节点的字符串值 通过 Texts 或者 DisplayTexts。
树的”根Root节点“ 通过 WBSTree.Items 获得; 每个节点(并不限于根节点) 通过 HasChildren 判断是否有下级节点,并通过 Items 获得下级节点。