将StringGrid的内容写到临时表 procedure TForm1.Button1Click(Sender: TObject); var i,j:integer; begin for i:=0 to 5 do for j:=0 to 5 do StringGrid1.Cells[i,j]:=IntToStr((i+1)*(j+1)); end;procedure TForm1.Button2Click(Sender: TObject); var i,j:integer; ADataSet:TClientDataSet; begin ADataSet:=TClientDataSet.Create(Self); with ADataSet.FieldDefs do begin for i:=0 to StringGrid1.ColCount-1 do begin Add('field'+IntToStr(i),ftString,5,False); end; end; ADataSet.CreateDataSet; DataSource1.DataSet:=ADAtaSet; ADataSet.Open; for i:=1 to StringGrid1.RowCount-1 do begin ADataSet.Insert; for j:=0 to StringGrid1.ColCount-1 do begin ADataSet.FieldByName('field'+IntToStr(j)).AsString:=StringGrid1.Cells[i,j]; end; ADataSet.Post; end; Application.MessageBox('haha','ha',Mb_OK);////////////////////此处把ADataSet连接到表reportbuilder ,预览及打印. ADataSet.Close; ADataSet.Free; end;
1、把stringgrid的数据转换成一个临时的表。
2、用reportbuilder打印临时表。
procedure TForm1.Button1Click(Sender: TObject);
var
i,j:integer;
begin
for i:=0 to 5 do
for j:=0 to 5 do
StringGrid1.Cells[i,j]:=IntToStr((i+1)*(j+1));
end;procedure TForm1.Button2Click(Sender: TObject);
var
i,j:integer;
ADataSet:TClientDataSet;
begin
ADataSet:=TClientDataSet.Create(Self);
with ADataSet.FieldDefs do
begin
for i:=0 to StringGrid1.ColCount-1 do
begin
Add('field'+IntToStr(i),ftString,5,False);
end;
end;
ADataSet.CreateDataSet;
DataSource1.DataSet:=ADAtaSet;
ADataSet.Open;
for i:=1 to StringGrid1.RowCount-1 do
begin
ADataSet.Insert;
for j:=0 to StringGrid1.ColCount-1 do
begin
ADataSet.FieldByName('field'+IntToStr(j)).AsString:=StringGrid1.Cells[i,j];
end;
ADataSet.Post;
end;
Application.MessageBox('haha','ha',Mb_OK);////////////////////此处把ADataSet连接到表reportbuilder ,预览及打印.
ADataSet.Close;
ADataSet.Free;
end;