2024年4月29日发(作者:)

• CxGrid如何自动导入字段信息

青云2007-02-02 09:58:09

以前用DbGrid(或者DbGridEh)时,

只要把它对应的DataSource的Dataset 打开;

那么所有字段就会自动导入。

这样做的好处是 ,如果 显示的字段需要改变,那么只要修改其对应的DataSet 的Sql

语句就行;

但是 CxGrid 好像要手工一个一个的把字段导入,很麻烦。

最关键的是如果 数据集的Sql语句发生变化 ,CxGrid 的Column要重新设置,很麻烦。

CxGrid按照查询结果自动创建字段 收藏

procedure terOpen(DataSet: TDataSet);

begin

inherited;

with gResultDBTv do

begin

(DataController as IcxCustomGridDataController).DeleteAllItems;

(DataController as IcxCustomGridDataController).CreateAllItems(False);

end;

end;

希望研究过CxGrid的朋友给出好的方法。

• 青云2007-01-31 16:17:06

发现可以通过

with cxGrid1DBTableView1 do

begin

(DataController as IcxCustomGridDataController).DeleteAllItems;

(DataController as IcxCustomGridDataController).CreateAllItems;

end;

实现,但是如何实现自动记忆功能呢。比如上次关闭时,cxGrid上某些字段隐藏了。

某些字段的宽度调整了,那么在下次打开时,如何导入上次关闭时的状态。

• cnhotel2007-01-31 16:28:01

关闭的时候保存:

oIniFile(ExtractFilePath(paramstr(0))+''); 打开窗

体的时候加载:

eFromIniFile(ExtractFilePath(paramstr(0))+'');

自己写个通用的过程就行了

• cyf42007-01-31 16:40:58

呵,你可以动态添加CxGrid 的Column,SQL查询结束之后,在窗体显示之前,自己写一

个过程,不会难,

• 青云2007-02-02 09:57:44

不错,谢谢楼上的两位朋友。

• 青云2007-02-02 09:58:09

多人接受答案了。