dxDBTreeView 显示的有关问题
dxDBTreeView 显示的问题
其中的字段值是:
pid 父极点字段
code 子极点字段 代号
name 姓名
我没有写代码,只是用ADOQuery来连接其中:
设置的字段为:
displayfield:=name
keyfield :=code
listfield :=name
parentfield :=pid
在dxDBTreeView 中显示的结果是:
---名称一
-------名称二
现在我是想把代号(code)和姓名(name)这两个字段的值在dxDBTreeView 的目录中显示出来,请大家帮帮忙
我现在想得到的结果是
---00100:名称一
------0010001:名称二
------解决方案--------------------
在ADOQuery 的SQL中下功夫 字样相加
------解决方案--------------------
说实话,建议你用treeview自己写代码把你数据库中信息加载上来,那样你可以随便建立你的树
------解决方案--------------------
下面这段代码你先参考一下。
unit MainFrm;
interface
uses
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;
implementation
uses 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关联。
其中的字段值是:
pid 父极点字段
code 子极点字段 代号
name 姓名
我没有写代码,只是用ADOQuery来连接其中:
设置的字段为:
displayfield:=name
keyfield :=code
listfield :=name
parentfield :=pid
在dxDBTreeView 中显示的结果是:
---名称一
-------名称二
现在我是想把代号(code)和姓名(name)这两个字段的值在dxDBTreeView 的目录中显示出来,请大家帮帮忙
我现在想得到的结果是
---00100:名称一
------0010001:名称二
------解决方案--------------------
在ADOQuery 的SQL中下功夫 字样相加
------解决方案--------------------
说实话,建议你用treeview自己写代码把你数据库中信息加载上来,那样你可以随便建立你的树
------解决方案--------------------
下面这段代码你先参考一下。
unit MainFrm;
interface
uses
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;
implementation
uses 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关联。