请教各位大虾,小弟想从数据库表中取得数据,并生成树形列表,应该怎么实现?

sloven 2011-12-13 10:50:40
数据库表信息
科室 姓名 编码
人事科 张三 001
人事科 李四 002
人事科 王五 003
财务科 赵八 004
财务科 魏九 005
....

生成树形列表

人事科
张三
李四
王五
财务科
赵八
魏九
并可以单选中一个或几个人传到DBG里做查询。谢谢了!小弟新手!请教思路,控件,方法等。
...全文
137 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
都先生 2011-12-14
  • 打赏
  • 举报
回复
既然是自己关联在一起的,那就在SQL里面多做些工作,用SQL在虚拟表里把树形做出来,然后直接加载数据集成树显示出来就可以了。
funxu 2011-12-13
  • 打赏
  • 举报
回复
最简单的方法就是用两个adoquery查询,一个查询科室,另一个根据前一个查询到的科室查询其它内容,然后加到treeview里去,treeview简单操作问百度即可
http://www.cnblogs.com/piaoliuxia/archive/2008/09/06/1937317.html
sdytwfh 2011-12-13
  • 打赏
  • 举报
回复
要有科室表,人员表,人员表中设置所属的科室。 控件可以用自带的TreeView或者直接用CXDBTREE
22222bbb 2011-12-13
  • 打赏
  • 举报
回复
这样设计表不好,最好有个部门表,在选部门时查询该部门下的员工数据。。。
sloven 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 mrwangfei 的回复:]
这样设计表不好,最好有个部门表,在选部门时查询该部门下的员工数据。。。
[/Quote]

部门表和人员表是分开的!是我关联到一起的!
sloven 2011-12-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 kaikai_kk 的回复:]
如果是这样数据就简单,adoquery查询数据按科室排序,然后循环添加进去
下面是生成树:

var
fNode:TTreeNode;
s:string;
begin
s:='';
fNode:=nil;
with adoquery1 do
begin
first;
while not eof do
begin
if s<>fie……
[/Quote]

你好,用你的可以写到树里,但是不是层次结构,能详细说明下吗!可以加我QQ,详细像您请教下吗?
kaikai_kk 2011-12-13
  • 打赏
  • 举报
回复
如果是这样数据就简单,adoquery查询数据按科室排序,然后循环添加进去
下面是生成树:

var
fNode:TTreeNode;
s:string;
begin
s:='';
fNode:=nil;
with adoquery1 do
begin
first;
while not eof do
begin
if s<>fieldbyname('科室').AsString then
fNode:=TreeView1.Items.Add(nil,fieldbyname('科室').AsString);

TreeView1.Items.Add(fNode,fieldbyname('姓名').AsString);
s:=fieldbyname('科室').AsString;
next;
end;
end;

至于选择与取值,方法很多,可以在节点前面加个checkbox
这里提供一个方法:可以是2张图片,一张只是方框,一张方框里面打勾
选择的时候,就切换图片

动动手,不难实现的

2,497

社区成员

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

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