如何动态产生一个DBGRID(50分)

  • 主题发起人 主题发起人 arborwang
  • 开始时间 开始时间
A

arborwang

Unregistered / Unconfirmed
GUEST, unregistred user!
请教各位大虾:在进行信息查询的时候,用户想在表里查询想要的字段,如果每次查询所选
的字段不同,在显示这些信息的时候,如何就是动态产生一个DBGRID,然后连接到DBSOURCE
中,然后再把DBSOURCE与SQL连接起来那?
请详细说明,谢谢!
 
ADBGrid := TDBImage.Create(Self);
ADBGrid.Parent := Self;
ADBGrid.Alient := alClient;
ADBGrid.DataSource := DataSource1;
DataSource.DataSet := Query1;
ADBGrid.Show;

-----
http://www.8421.org
 
试试下面的代码行不行。
TmpDBGrid := TDBGrid.Create(nil);
TmpDBGrid.Parent := self;
TmpDBGrid.Width := 100;
TmpDBGrid.Height :=100;
TmpDBGrid.Left :=0;
TmpDBGrid.Top := 0;
TmpDBGrid.Align := alClient;
TmpDBGrid.Visible := True;
TmpDBGrid.DataSource := ...
.....
 
我觉得arborwang的客户的要求是动态选择DBGRID显示的列,
那么先把所有的字段都在DBGRID中显示出来。
然后让用户设置DBGRID。Columns[0].Visible:=false;就可以了。
不知理解对否?
 
用TQuery,动态改变TQuery的SQL语句即可。
 
根本不用这么麻烦。有adoquery或query控件同dbgrid相连就行了。
select f1,f3,f5 from table //f1,f3,f5为要显示的字段。
columun可以动态添加,并可以设置其它属性,如标题头等。
 
用TQuery,动态改变TQuery的SQL语句即可。还要注意改变 DBGrid 的行列标题!

别的就没什么了吧? 想好了再说了 !
 
后退
顶部