其中的字段值是:
pid 父极点字段
code 子极点字段 代号
name 姓名
我没有写代码,只是用ADOQuery来连接其中:
设置的字段为:
displayfield:=name
keyfield :=code
listfield :=name
parentfield :=pid
在dxDBTreeView 中显示的结果是:
---名称一
-------名称二
现在我是想把代号(code)和姓名(name)这两个字段的值在dxDBTreeView 的目录中显示出来,请大家帮帮忙
我现在想得到的结果是
---00100:名称一
------0010001:名称二
pid 父极点字段
code 子极点字段 代号
name 姓名
我没有写代码,只是用ADOQuery来连接其中:
设置的字段为:
displayfield:=name
keyfield :=code
listfield :=name
parentfield :=pid
在dxDBTreeView 中显示的结果是:
---名称一
-------名称二
现在我是想把代号(code)和姓名(name)这两个字段的值在dxDBTreeView 的目录中显示出来,请大家帮帮忙
我现在想得到的结果是
---00100:名称一
------0010001:名称二
解决方案 »
- delphi7与delphi2010中char()函数问题
- 请问如何用delphi 进行远程连接ACCESS数据库! 列如:...见内容
- 主程序与dll之间的消息处理问题!谢谢大家!!!,来者有分!!!
- 程序打包问题
- 怎样取得当前用户的目录名!急呀再线等待
- 十万火急!!delphi7开发的三层软件在winnt上可以使用,移植到win2000server后却不能用?
- 打开位图
- 是否能指定程序用WORD打开TXT文件?例如用OpenUseWord(TxtFileName),返回False表示打开错误。
- delphi char数组初始化
- 初学者向您请教?
- 怎么显示名字?
- DLL中的窗体,屏幕上应用程序切换后再回来时,会躺起来..什么让它出来呢.
unit MainFrm;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, ComCtrls, ImgList, StdCtrls;type
PNodedata=^TNodeData; //需要申明
TNodeData = record
id:integer;
nodetype: integer;
end;
TMainForm = class(TForm)
ADOQuery1: TADOQuery;
TreeView1: TTreeView;
ImageList1: TImageList;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure TreeView1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;
implementationuses Linkbank;{$R *.dfm}
//展开树形
procedure TMainForm.FormShow(Sender: TObject);
var
RootNode, FirstDeptNode,SecondDeptNode,ThreeDeptNode: TTreeNode;
PFirstDeptdata,PSecondDeptdata,ThreeDeptdata:PNodedata;
FirstDeptName,SecondDeptname,ThreeDeptname:string;
ado1,ado2,ado3:Tadoquery;
begin
treeview1.Items.Clear;
RootNode:=treeview1.Items.Add(nil,'我的树形结构');
RootNode.ImageIndex := 0;
RootNode.SelectedIndex := 0;
ado1:=Tadoquery.Create(self);
ado1.Connection:=dataform.conn;
ado1.Close;
ado1.SQL.Clear;
ado1.SQL.Add('select * from tt'); //表结构为tt1 int,tt2 varchar;
ado1.Open;
ado1.First;
while not ado1.Eof do
begin
PFirstDeptdata := new(PNodedata);
PFirstDeptdata.id := ado1.fieldByName('tt1').AsInteger;
PFirstDeptdata.nodetype := 0;
FirstDeptName := ado1.FieldByName('tt2').AsString;
FirstDeptNode := treeview1.Items.AddChildObject(RootNode, FirstDeptName,PFirstDeptdata);//注意展开时需要改成上一级的树的节点。
ado1.Next;
ado2:=Tadoquery.Create(self);
ado2.Connection:=dataform.conn;
ado2.Close;
ado2.SQL.Clear;
ado2.SQL.Add('select * from bb where bb1=:bb1');//表结构为:yy1 int,yy2 int,yy3 varchar;tt1与yy2关联。
ado2.Parameters.ParamByName('bb1').Value:=PFirstDeptdata.id ;
ado2.Open;
ado2.First;
while not ado2.Eof do
begin
if ado2.FieldByName('bb1').AsInteger=PFirstDeptdata.id then
begin
PSecondDeptdata := new(PNodedata);
PSecondDeptdata.id := ado2.fieldByName('bb2').AsInteger;
PSecondDeptdata.nodetype := 1;
SecondDeptName := ado2.FieldByName('bb3').AsString;
SecondDeptNode := treeview1.Items.AddChildObject(FirstDeptNode,SecondDeptName, PSecondDeptdata);
ado2.Next;
ado3:=Tadoquery.Create(self);
ado3.Connection:=dataform.conn;
ado3.Close;
ado3.SQL.Clear;
ado3.SQL.Add('select * from ss where ss0=:ss0 and ss1=:ss1');
ado3.Parameters.ParamByName('ss0').Value :=PFirstDeptdata.id ;
ado3.Parameters.ParamByName('ss1').Value :=PSecondDeptdata.id ;
ado3.Open;
ado3.First;
while not ado3.Eof do
begin
if (ado3.FieldByName('ss0').AsInteger=PFirstDeptdata.id) and (ado3.FieldByName('ss1').AsInteger=PSecondDeptdata.id) then
begin
ThreeDeptdata:= new(PNodedata) ;
ThreeDeptdata.id:=ado3.fieldByName('ss2').AsInteger;
ThreeDeptdata.nodetype := 2;
ThreeDeptName := ado3.FieldByName('ss3').AsString;
ThreeDeptNode := treeview1.Items.AddChildObject(SecondDeptNode,ThreeDeptName, ThreeDeptdata);
ado3.Next;
end;
end;
end ;
end ;
end ;
RootNode.Expanded := true; //设置根目录默认打开
end;
//根据节点查询相应数据。
procedure TMainForm.TreeView1Click(Sender: TObject);
var
cournode:Ttreenode;
begin
cournode:=treeview1.Selected;
case cournode.Level of
2:
begin
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.Add('select * from bb where bb3=:bb3');
adoquery1.Parameters.ParamByName('bb3').Value:=treeview1.Selected.Text;
adoquery1.Open;
end;end;end;end.