Delphi AdvStringGrid表格保存和TClientDataSet发生关系的构想。

在实际运用中,用到了TMS的TAdvSpreadGrid表格,这个表格和CDS没有关系。造成了在一些操作上的被动性(比如:移动,隐藏,增加字段)

我个人想对于程序,我进行如下处理:

1)把定义一个类,存储字段的信息,如下:

TDefDbField = class

FieldCode: string;

FieldName: string;

.....其他的一些控制信息,(是否显示等)

end

2)定一个TStringList,在其中把所定义的字段类,全部存储到这个TStringlist列表中。

3)循环StringList,通过表格的CellName属性,在Titile中如 Grid1.CellName[col, row] := FieldName; 这样做的目的是存储字段的Code;

4)然后把查询出来的数据填充到对应的表格中,这样,填充两份 例如 Grid1.Cells[col, row] := '内容'; Grid1.CellName[col, row] := '内容',

如果表格是正常状态这么填充,如果不是的话,看是哪种类型:

(1)复选框:Grid1.SetCheckState(col, row, true), Grid1.CellName[col, row] := '内容' .

(2)下来列表:Grid1.Combobox.... Grid1.CellName[col, row] := '内容' .

类似就是这种情况吧。

5)在进行别的操作保存前,先进行把表格的数据进行更新到CellName,这样在保存的时候关注这个表格的CellName单元就行了。

这样我认为就可以实现一般所说的功能了。