procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
with ClientDataSet1 do
begin
Close;
Fields.Clear;
FieldDefs.Clear;
CommandText := SQLStr1;
FieldDefs.Update;
with TFieldDef(FieldDefs.Insert(0)) do
begin
Name := 'FIELD_NAME';
DataType := ftBoolean;
DisplayName := 'FIELD_NAME';
end;
for i := 0 to FieldDefs.Count - 1 do
FieldDefs[i].CreateField(ClientDataSet1);
Fields[0].FieldKind := fkInternalCalc;
Open;
end;
end; procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
with ClientDataSet1 do
begin
if Fields[0].Value = Null then Fields[0].AsBoolean := False;
end;
end;
用上面的代码,创建了一个临时的选择列,但如何取出当前dbgrideh已选中的列的第二列的所有数据?以便提供给另一个adoquery做查询条件的值?
var
i: Integer;
begin
with ClientDataSet1 do
begin
Close;
Fields.Clear;
FieldDefs.Clear;
CommandText := SQLStr1;
FieldDefs.Update;
with TFieldDef(FieldDefs.Insert(0)) do
begin
Name := 'FIELD_NAME';
DataType := ftBoolean;
DisplayName := 'FIELD_NAME';
end;
for i := 0 to FieldDefs.Count - 1 do
FieldDefs[i].CreateField(ClientDataSet1);
Fields[0].FieldKind := fkInternalCalc;
Open;
end;
end; procedure TForm1.ClientDataSet1CalcFields(DataSet: TDataSet);
begin
with ClientDataSet1 do
begin
if Fields[0].Value = Null then Fields[0].AsBoolean := False;
end;
end;
用上面的代码,创建了一个临时的选择列,但如何取出当前dbgrideh已选中的列的第二列的所有数据?以便提供给另一个adoquery做查询条件的值?
for i := 0 to DBGrid1.SelectedRows.Count - 1 do
begin
adods.GotoBook(pointer(DBGrid1.SelectedRows[i])); // your code here...
end;
var
i,j:integer;
str: string;
Begin
str:='';
for i:=0 to DBgrid1.selectedrows.count-1 do
begin
Gotobook(pointer(DBgrid1.selectedrows.ites[i]));
for j:=0 to fieldcount-1 do
Begin
if j>0 then
str:=','+str;
str:=fields[i].Asstring;
End;
listbox1.items.add(str);
str:='';
End;
End;
---
对于你说的,因为你的数据都已经选择好了,利用Clientdataset判断check是否为True或FALSE再添加数据,这个应该不是问题吧!!!