关于treeview的问题

dragonzll 2006-04-17 03:45:41
在如下三个表要在treview里显示一颗树....系/专业/班级 怎么写呀.....谢谢

/*系部表:包含学校所设系的相关资料*/
create table xbb
(
xbbh char(6) primary key, --系部编号
xbmc char(20) not null, --系部名称
xzr char(10) not null --系主任名字
)

/*专业表:包含学校所设专业*/
create table zyb
(
zybh char(6) primary key, --专业编号
zymc char(30) unique, --专业名称
ssxb char(6) foreign key references xbb(xbbh) --所属系别
)


/*班级表:包含学校所设班级以及该班级所属系部*/
create table bjb
(
bjbh char(6) primary key, --班级编号
bjmc char(20) not null, --班级名称
zybh char(6) foreign key references zyb(zybh),
szxbh char(6) foreign key references xbb(xbbh) --所属系部编号 作为外键引用系部表中的系部编号
)
...全文
144 5 点赞 打赏 收藏 举报
写回复
5 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
dragonzll 2006-04-18
那我的例子里面是不是要加个字段呀....

  • 打赏
  • 举报
回复
wqrz 2006-04-18
不知道对LZ有没帮助 反正我碰到树现在小CASE了

----------------------------------------
2张表:
客户表(Tbl_Client):
client_id(自增) client_name type_id
1 小江 3
2 小李 4

客户类型表(Tbl_Client_Type):
type_id(自增) type_name parent_id(父类型)
1 国内 -1
2 国外 -1
3 北京 1
4 上海 1



现在在DELPHI里放一个树形控件(treeview1) 要求把客户类型表里的数据加到treeview1中 象下面:
-- 客户资料
--国内
--北京
--上海
--国外
要求:写一个递归调用函数 把客户类型表里的数据加到treeview1中

procedure TForm1.Button1Click(Sender: TObject);
begin
ADOQuery1.Close;
ADOQuery1.SQL.Text := 'select type_id,type_name,parent_id from Tbl_Client_Type order by parent_id';
ADOQuery1.Open;
InitTreeView;
end;

procedure TForm1.InitTreeView;
procedure AddChildrenNode(pnode: TTreeNode);
var
i: Integer;
_node: TTreeNode;
begin
//Set the Filter Condition
ADOQuery1.Filtered := false;
ADOQuery1.Filter := 'parent_id=' + IntToStr(pnode.OverlayIndex);
ADOQuery1.Filtered := true;

ADOQuery1.First; //Restore the rs-index

//Add the Record to the ParentNode
for i := 0 to ADOQuery1.RecordCount - 1 do
begin
_node := TreeView1.Items.AddChild(pnode, ADOQuery1.FieldByName('type_name').AsString);
_node.OverlayIndex := ADOQuery1.FieldByName('type_id').AsInteger;
ADOQuery1.Next;
end;
//recursion
for i := 0 to pnode.Count - 1 do
AddChildrenNode(pnode.Item[i]);
end;
var
_topNode: TTreeNode;
begin
TreeView1.Items.BeginUpdate;
//---add the top parent node
_topNode := TreeView1.Items.AddChild(nil,'TopNodeAddByXinhs');
_topNode.OverlayIndex := -1; //The casual ward for ParentID
//end add
AddChildrenNode(_topNode);
TreeView1.Items.EndUpdate;
_topNode.Selected := True;
end;
  • 打赏
  • 举报
回复
dragonzll 2006-04-17
没搞定呀
  • 打赏
  • 举报
回复
dragonzll 2006-04-17
我载入了系跟专业就是班级加入树不对呀
  • 打赏
  • 举报
回复
GARNETT2183 2006-04-17
CSDN有太多这样的贴子呢,你搜一下如何建树就有了。。。
  • 打赏
  • 举报
回复
相关推荐
发帖
数据库相关
加入

2462

社区成员

Delphi 数据库相关
申请成为版主
帖子事件
创建了帖子
2006-04-17 03:45
社区公告
暂无公告