用 ClientDataSet1-> DataSource1-> DBGridEh 建立的数据库软件,在DBGridEh1的最前面增加一列CheckBox列(实际表中没有此列),CheckBox列的属性设置如下:DataType := ftBoolean;
FieldKind := fkInternalCalc;程序一开始在CalcFields事件中把此列设为False(CheckBox非选中),代码如下:
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
with ClientDataSet1 do
begin
if Fields[0].Value=Null then Fields[0].AsBoolean := False; //程序一运行就把所有的记录设为非选中状态
end;
end如果对CheckBox列单行进行打勾、取消打勾,一点问题都没有。可现在如果有“全选”、“全取消”、“反选”三个按钮,如何实现这三个按钮的批量处理功能(不直接用while遍历记录的方法)?特别是反选,很容易就在一条记录上执行两次,又回到最初的状态上。
FieldKind := fkInternalCalc;程序一开始在CalcFields事件中把此列设为False(CheckBox非选中),代码如下:
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
with ClientDataSet1 do
begin
if Fields[0].Value=Null then Fields[0].AsBoolean := False; //程序一运行就把所有的记录设为非选中状态
end;
end如果对CheckBox列单行进行打勾、取消打勾,一点问题都没有。可现在如果有“全选”、“全取消”、“反选”三个按钮,如何实现这三个按钮的批量处理功能(不直接用while遍历记录的方法)?特别是反选,很容易就在一条记录上执行两次,又回到最初的状态上。
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货