我作动态报表是这么做的 首先用qrshape动态的画线,然后动态的填写数据 不如给你我的实例吧! var frmqcarcoderep: Tfrmqcarcoderep; qrlabel:array of array of tqrlabel; qrshape:array of array of tqrshape; fieldlen:integer;implementation{$R *.dfm} uses dayrep,mainform, qcarcode; procedure Tfrmqcarcoderep.FormCreate(Sender: TObject); var i,j:integer; begin fieldlen:=frmqcarcode.Query2.FieldCount; setlength(qrlabel,fieldlen,9); setlength(qrshape,fieldlen,9); if (2*fieldlen*24+20 )<902 then frmqcarcoderep.DetailBand1.Height :=fieldlen*24+20; for i:=0 to fieldlen-1 do for j:=0 to 8 do begin qrshape[i,j]:=tqrshape.create(quickrep1); with qrshape[i,j] do begin parent:=detailband1; left:=j*79; top:=i*24; height:=25; width:=80; enabled:=true; visible:=true; end; qrlabel[i,j]:=tqrlabel.create(quickrep1); with qrlabel[i,j] do begin parent:=detailband1; left:=j*79+2; top:=i*24+6; height:=16; width:=76; alignment:=tacenter; autosize:=false; caption:=''; enabled:=true; visible:=true; end; end;end;procedure Tfrmqcarcoderep.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); var i,j:integer; begin with frmqcarcode.Query2 do begin if EOF then begin moredata:=false; exit; end; moredata:=true; for i:=0 to fieldlen-1 do for j:=0 to 8 do qrlabel[i,j].caption:=''; for i:=0 to fieldlen-1 do qrlabel[i,0].caption:=fields[i].fieldname; for j:=1 to 8 do begin if eof then break; for i:=0 to fieldlen-1 do begin qrlabel[i,j].caption:=fieldbyname(fields[i].fieldname).asstring; end; next; end; end; end;
可以一起探讨的. 欢迎访问我的主页 http://zhangxzh.diy.163.com
可以使用微软的msn (下载地址http://zhangxzh.diy.163.com\dowm\mmssetup.EXE )将[email protected] 加为好友一起讨论
首先用qrshape动态的画线,然后动态的填写数据
不如给你我的实例吧!
var
frmqcarcoderep: Tfrmqcarcoderep;
qrlabel:array of array of tqrlabel;
qrshape:array of array of tqrshape;
fieldlen:integer;implementation{$R *.dfm}
uses
dayrep,mainform, qcarcode;
procedure Tfrmqcarcoderep.FormCreate(Sender: TObject);
var i,j:integer;
begin
fieldlen:=frmqcarcode.Query2.FieldCount;
setlength(qrlabel,fieldlen,9);
setlength(qrshape,fieldlen,9);
if (2*fieldlen*24+20 )<902 then
frmqcarcoderep.DetailBand1.Height :=fieldlen*24+20;
for i:=0 to fieldlen-1 do
for j:=0 to 8 do
begin
qrshape[i,j]:=tqrshape.create(quickrep1);
with qrshape[i,j] do
begin
parent:=detailband1;
left:=j*79;
top:=i*24;
height:=25;
width:=80;
enabled:=true;
visible:=true;
end;
qrlabel[i,j]:=tqrlabel.create(quickrep1);
with qrlabel[i,j] do
begin
parent:=detailband1;
left:=j*79+2;
top:=i*24+6;
height:=16;
width:=76;
alignment:=tacenter;
autosize:=false;
caption:='';
enabled:=true;
visible:=true;
end;
end;end;procedure Tfrmqcarcoderep.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
var i,j:integer;
begin
with frmqcarcode.Query2 do
begin
if EOF then
begin
moredata:=false;
exit;
end;
moredata:=true;
for i:=0 to fieldlen-1 do
for j:=0 to 8 do
qrlabel[i,j].caption:='';
for i:=0 to fieldlen-1 do
qrlabel[i,0].caption:=fields[i].fieldname;
for j:=1 to 8 do
begin
if eof then break;
for i:=0 to fieldlen-1 do
begin
qrlabel[i,j].caption:=fieldbyname(fields[i].fieldname).asstring;
end;
next;
end;
end;
end;