procedure Trepform.Button1Click(Sender: TObject); var leftv,i:integer; //leftv为报表起始位置 cheader:Tqrlabel; detailtext:Tqrdbtext; begin repform.QuickRep1.Bands.HasPageHeader:=true; repform.QuickRep1.Bands.HasDetail:=true; leftv:=0; for i:=0 to dbgrid1.columns.Count-1 do begin cheader:=TQRLabel.Create(repform); with cheader do begin parent:=repform.QuickRep1.Bands.PageHeaderBand; caption:=dbgrid1.columns[i].fieldname; width:=dbgrid1.columns[i].width; height:=repform.QuickRep1.Bands.DetailBand.height; left:=leftv+2; top:=5; end; //在leftv 处画表格竖线 leftv:=dbgrid1.columns[i].width+leftv; end; //画表头栏边框。起始位为0,总宽度为leftv,也就是dbgrid1的各列宽度之和 leftv:=0; //显示记录内容 for i:=0 to dbgrid1.columns.Count-1 do begin detailtext:=TQrdbtext.create(repform); with detailtext do begin parent:=repform.QuickRep1.Bands.DetailBand; dataset:=table1; // query1; datafield:=dbgrid1.columns[i].fieldname; width:=dbgrid1.columns[i].width; height:=repform.QuickRep1.Bands.DetailBand.height; left:=leftv+2; top:=5; end; //在leftv 处画表格竖线 leftv:=dbgrid1.columns[i].width+leftv; end; // 画明晰栏边框。 repform.quickrep1.preview(); //报表预览 end;
unit rtest;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, DBTables, Grids, DBGrids,rep, QRCtrls, QuickRpt;type
TMainForm = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
Button1: TButton;
Button2: TButton;
Edit1: TEdit;
Table1: TTable;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
MainForm: TMainForm;implementation{$R *.dfm}procedure TMainForm.Button1Click(Sender: TObject);
//var s:string;
begin
// s:=edit1.text;
// with query1 do
// begin
// close;
// sql.clear;
// sql.add(s);
// open;
// end;
end;
procedure TMainForm.Button2Click(Sender: TObject);
var
leftv,i:integer; //leftv为报表起始位置
cheader:Tqrlabel;
detailtext:Tqrdbtext;
begin
repform.QuickRep1.Bands.HasPageHeader:=true;
leftv:=0;
for i:=0 to dbgrid1.columns.Count-1 do
begin
cheader:=TQRLabel.Create(repform);
with cheader do
begin
parent:=repform.QuickRep1.Bands.PageHeaderBand;
caption:=dbgrid1.columns[i].fieldname;
width:=dbgrid1.columns[i].width;
height:=repform.columnheaderband1.height;
left:=leftv+2;
top:=5;
end;
//在leftv 处画表格竖线
leftv:=dbgrid1.columns[i].width+leftv;
end;
//画表头栏边框。起始位为0,总宽度为leftv,也就是dbgrid1的各列宽度之和
leftv:=0;
//显示记录内容
for i:=0 to dbgrid1.columns.Count-1 do
begin
detailtext:=TQrdbtext.create(repform);
with detailtext do
begin
parent:=repform.DetailBand1;
dataset:=table1; // query1;
datafield:=dbgrid1.columns[i].fieldname;
width:=dbgrid1.columns[i].width;
height:=repform.detailband1.height;
left:=leftv+2;
top:=5;
end;
//在leftv 处画表格竖线
leftv:=dbgrid1.columns[i].width+leftv;
end;
// 画明晰栏边框。
repform.quickrep1.preview(); //报表预览
end;
end.
QuickRep1.DataSet := Table1;
oicq:45531143
var
leftv,i:integer; //leftv为报表起始位置
cheader:Tqrlabel;
detailtext:Tqrdbtext;
begin
repform.QuickRep1.Bands.HasPageHeader:=true;
repform.QuickRep1.Bands.HasDetail:=true;
leftv:=0;
for i:=0 to dbgrid1.columns.Count-1 do
begin
cheader:=TQRLabel.Create(repform);
with cheader do
begin
parent:=repform.QuickRep1.Bands.PageHeaderBand;
caption:=dbgrid1.columns[i].fieldname;
width:=dbgrid1.columns[i].width;
height:=repform.QuickRep1.Bands.DetailBand.height;
left:=leftv+2;
top:=5;
end;
//在leftv 处画表格竖线
leftv:=dbgrid1.columns[i].width+leftv;
end;
//画表头栏边框。起始位为0,总宽度为leftv,也就是dbgrid1的各列宽度之和
leftv:=0;
//显示记录内容
for i:=0 to dbgrid1.columns.Count-1 do
begin
detailtext:=TQrdbtext.create(repform);
with detailtext do
begin
parent:=repform.QuickRep1.Bands.DetailBand;
dataset:=table1; // query1;
datafield:=dbgrid1.columns[i].fieldname;
width:=dbgrid1.columns[i].width;
height:=repform.QuickRep1.Bands.DetailBand.height;
left:=leftv+2;
top:=5;
end;
//在leftv 处画表格竖线
leftv:=dbgrid1.columns[i].width+leftv;
end;
// 画明晰栏边框。
repform.quickrep1.preview(); //报表预览
end;
增加,修改等功能,你做过吗?
应放在DBGrid.DataSource.DataSet
//既是Table1,Query1,ADOTable1..............等数据集控件上