关于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) --所属系部编号 作为外键引用系部表中的系部编号
)
...全文
214 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
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有太多这样的贴子呢,你搜一下如何建树就有了。。。

2,507

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 数据库相关
社区管理员
  • 数据库相关社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧