DevExpress VCL 的 cxDBTreeList 的使用方法

时间:2023-03-09 20:24:44
DevExpress VCL 的 cxDBTreeList 的使用方法

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,排第一位。

DevExpress VCL 的 cxDBTreeList 的使用方法

2、要获取列 Column 在 Band 中位置,有一个参数  Position 与 VisibleIndexWBSTree.ColumnByName(‘WBSTreeId’). Position/VisibleIndex

Position  对象(类TcxTreeListColumnPosition)有几个属性:BandIndex,ColIndexandRowIndex,LineCount,可见性(VisibleBandIndex,VisibleColIndex,VisibleRowIndex).   及 相应的 (Band,Column, andRow).

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 获得下级节点。

4、节点 的 checked state  ,首先设置TcxTreeList  的 OptionsView.CheckGroups 为True ,再通过 WBSTree.AbsoluteCount  对所有节点 进行设置 Check 的类型:              WBSTree.AbsoluteItems[I].CheckGroupType := ncgCheckGroup;   也可以是 单选 Radio 型。

根节点需要单设 :WBSTree.Root.CheckGroupType := ncgCheckGroup;

节点有一属性代表 选择状态:CheckState  (类:TcxCheckBoxState)有三个枚举值:cbsUnchecked,cbsChecked,cbsGrayed;

节点还有一个 Boolean属性: Checked  ,只能有两个值。

节点的  Enabled 属性,决定用户能否改变选择状态。

节点还有一个属性  AllowGrayed ,决定其能否有三个状态,即能有 :cbsGrayed 的状态值。

5、是通过 树组件的 节点的 Selections[ Index: Integer ]  或者 通过 节点的 Checked   或者 CheckState  选择节点 ,以便 进行导入 或者输出 ?

Selections  方便;     Checked   /  CheckState  需要 迭代父子关系。    ===== 细节另行细述!