当DataSet中Filter:=‘c_id=0001‘;Filtered=true时
while not eof do
begin
if FieldByName(‘sel‘).AsBoolean then
begin
Edit;
FieldByName(‘sel‘).AsBoolean := False;
if FieldByName(‘oldclassid‘).AsString = ‘‘ then
// 如果多次转班,只记录起始的班级
begin
FieldByName(‘oldclassid‘).AsString := FieldByName(‘c_id‘).AsString;
FieldByName(‘oldclass‘).AsString := FieldByName(‘c_name‘).AsString;
end;
FieldByName(‘c_id‘).AsString := AcID;
FieldByName(‘c_name‘).AsString := AcName;
Post;
Continue; //Filtered :=true:连续勾选的情况
end;
Next;
end;
在循环中修改了Filter对应的条件,如果不使用continue那个两个相邻的勾选中后面的一个就不会被操作。