我的数据库结构如下:
UnitId UnitName
01 中国 (根节点)
0101 河北省(二级树)
010101 河北省沧州市(三级树)
01010101 河北省沧州市沧县(四级树)
0102 北京市(二级树)
010201 北京市海淀区(三级树)
01020101 北京市海淀区唐家岭村(四级树)
01020102 北京市海淀区小牛房村(四级树)
010202 北京市朝阳区(三级树)
01020201 北京市朝阳区奥运村(四级树)
0103 天津市(二级树)
010301 天津市大港区(三级树)
01030101 天津市大港区某地 (四级树)
需要这样进行判断
当Unitid的长度为4生成二级树
当Unitid的长度为6并且前4位与Unitid的长度为4数值相等生成三级树
当Unitid的长度为8并且前6位与Unitid的长度为6数值相等生成四级树
小弟是新手,不知道该如何循环实现。请大家帮忙。谢谢!!!
procedure CreateTree;
const
ID_DEPT = 2;
var
nLevel: Integer;
pNodes: array[0..1023] of TTreeNode;
lpID, lpName: string;
begin
ADODataSet1.Close;
ADODataSet1.CommandText := 'SELECT * FROM [国家] ORDER BY [编号]';
ADODataSet1.Open;
pNodes[0] := nil;
TreeView1.Items.Clear;
with ADODataSet1.Recordset do
while not Eof do
begin
lpID := Fields['编号'].Value;
lpName := Fields['名称'].Value;
nLevel := Length(lpID) div ID_DEPT;
pNodes[nLevel] := TreeView1.Items.AddChild(pNodes[nLevel - 1], lpName);
MoveNext;
end;
end;