procedure TForm1.Button10Click(Sender: TObject);
var
StrSQL:string;
begin
ClientDataSet1.Close;
StrSQL:='select * from Input';
ClientDataSet1.CommandText:=StrSQL;
ClientDataSet1.Open;
ClientDataSet1.First;
while not ClientDataSet1.Eof do
begin
if ClientDataSet1.Fields[9].Value <> Null then
begin
ClientDataSet1.Edit;
ClientDataSet1.Fields[9].AsBoolean := True;
ClientDataSet1.Post;
end;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('****').AsString:=loginForm.edit2.Text;
end;
ClientDataSet1.Post;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;
我用下面的代码实现Fields[9].AsBoolean的初始值为False
procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
with ClientDataSet1 do
begin
if Fields[9].Value = Null then Fields[9].AsBoolean := False;
end;
end;
使用循环while not ClientDataSet1.Eof do是为了选择所有记录中被标记的记录,现在的问题是只有我标记其中一个,其余的也是默认标记了,然后就执行 if ClientDataSet1.Fields[9].AsBoolean 后的语句了。就是 if ClientDataSet1.Fields[9].Value <> Null then怎么改是程序只操作相应的行。
...全文
30333打赏收藏
选择DbGrieh的CHeckBox的一行,多行被操作,跪求大神帮忙。
procedure TForm1.Button10Click(Sender: TObject); var StrSQL:string; begin ClientDataSet1.Close; StrSQL:='select * from Input'; ClientDataSet1.CommandText:=StrSQL; ClientDataSet1.Open; ClientDataSet1.First; while not ClientDataSet1.Eof do begin if Cli
if ClientDataSet1.Fields[9].Value <> Null then
begin
ClientDataSet1.Edit;
ClientDataSet1.Fields[9].AsBoolean := True;
ClientDataSet1.Post;
end;
你在循环中赋值为true了,当然就选中了啊
是这样吗?
while not ClientDataSet1.Eof do
begin
ClientDataSet1.Post;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('运维班核对人').AsString:=loginForm.edit2.Text;
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;[/quote]
这样运行会出现报错ClientDataSet1:dataset not in edit or insert mode的错误[/quote]
发个示例代码给你
[/quote]不胜感激[/quote]438361517@qq.com[/quote]谢谢您的发给的参考实例,可以正常的运行,我建立临时列是在窗口显示时建立的,能不能具体结合我的情况帮忙修改下。
是这样吗?
while not ClientDataSet1.Eof do
begin
ClientDataSet1.Post;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('运维班核对人').AsString:=loginForm.edit2.Text;
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;[/quote]
这样运行会出现报错ClientDataSet1:dataset not in edit or insert mode的错误[/quote]
发个示例代码给你
[/quote]不胜感激[/quote]438361517@qq.com
是这样吗?
while not ClientDataSet1.Eof do
begin
ClientDataSet1.Post;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('运维班核对人').AsString:=loginForm.edit2.Text;
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;[/quote]
这样运行会出现报错ClientDataSet1:dataset not in edit or insert mode的错误[/quote]
发个示例代码给你
[/quote]不胜感激
是这样吗?
while not ClientDataSet1.Eof do
begin
ClientDataSet1.Post;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('运维班核对人').AsString:=loginForm.edit2.Text;
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;[/quote]
这样运行会出现报错ClientDataSet1:dataset not in edit or insert mode的错误[/quote]
发个示例代码给你
是这样吗?
while not ClientDataSet1.Eof do
begin
ClientDataSet1.Post;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('运维班核对人').AsString:=loginForm.edit2.Text;
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;[/quote]
这样运行会出现报错ClientDataSet1:dataset not in edit or insert mode的错误
是这样吗?
while not ClientDataSet1.Eof do
begin
ClientDataSet1.Post;
if ClientDataSet1.Fields[9].AsBoolean then
begin
ClientDataSet1.Edit;
ClientDataSet1.FieldByName('运维班核对人').AsString:=loginForm.edit2.Text;
ClientDataSet1.Post;
end;
ClientDataSet1.Next;
end;
ClientDataSet1.ApplyUpdates (-1);
end;
我感觉添加的CheckBox列缺少CheckBox组件的Checked属性。[/quote]
所以在刚开始的时候判断
if ClientDataSet1.Fields[9].Value <> Null then
begin
ClientDataSet1.Edit;
ClientDataSet1.Fields[9].AsBoolean := True;
ClientDataSet1.Post;
end;[/quote]
正是这里出了问题
我感觉添加的CheckBox列缺少CheckBox组件的Checked属性。[/quote]
所以在刚开始的时候判断
if ClientDataSet1.Fields[9].Value <> Null then
begin
ClientDataSet1.Edit;
ClientDataSet1.Fields[9].AsBoolean := True;
ClientDataSet1.Post;
end;