想法是这样子的,例如:DBGridEh读取一张表,就认为是配件价格明细表,字段有[客户][配件名称][价格][所在地]等等。选择一行或者多行,下拉菜单单击[价格]或者[所在地]或者其它字段进行批量编辑,弹出编辑窗体,一个DBGridEh显示刚才选择的行的数据,一个编辑的Edit,对字段[价格]等也可以使用公式[+][-][*][/]等。编辑,确定之后,更新数据库数据,原窗体数据刷新。现在主要问题是:怎么把多行选择的数据放入编辑窗体的DBGridEh中去。其实有没有编辑窗体的DBGridEh应该无所谓,我编辑数据的时候,写入数据库的时候,怎么知道我多选的哪些行的数据呢?本题及格:60分。

解决方案 »

  1.   

    思路
    在原始grid中增加一列,报错记录的主键,多选后,点编辑,循环所选的记录,循环读取主键值,组成一个(1,2,3)格式的字符串,然后在form2上增加数据集,设置
    SQL.Text := 'select * from 表 where 主键 in '+前面组合的字符串,将另一个grid绑定改数据,然后update(也可以循环edit..post)这些数据的价格信息,返回后,第一个数据集重新打开即可当然,form2上的grid可以不用数据感知的,用一般grid即可,然后update,返回刷新