实际上你可以使用一个简单的方法 在Detail中放9个QRLabel //每次打印详细列表(BandType=rbDetail),会触发这个事件 procedure TForm1.QuickRep1NeedData(Sender: TObject; var MoreData: Boolean); var I: integer; begin MoreData := True; for I:= 1 to 3 do begin if Table1.Eof then Break; case I of 1: begin QRLabel1.Caption :=Table1.FieldByName('Name').AsString; QRLabel2.Caption :=Table1.FieldByName('Salary').AsString; QRLabel3.Caption :=Table1.FieldByName('UnderWrite').AsString; end; 2: begin QRLabel4.Caption :=Table1.FieldByName('Name').AsString; QRLabel5.Caption :=Table1.FieldByName('Salary').AsString; QRLabel6.Caption :=Table1.FieldByName('UnderWrite').AsString; end; 3:begin QRLabel7.Caption :=Table1.FieldByName('Name').AsString; QRLabel8.Caption :=Table1.FieldByName('Salary').AsString; QRLabel9.Caption :=Table1.FieldByName('UnderWrite').AsString; end; end; Table1.Next; end; if Table1.Eof then MoreData := False; end; 另外要使从第一条打起 procedure TForm1.QuickRep1BeforePrint (Sender: TCustomQuickRep; var PrintReport: Boolean); begin Table1.First; end;
有 字段 (姓名 工资 签名 姓名 工资 签名 姓名 工资 签名 )
先清空物理表
再用Fetch语句将每三条记录插入一条中
最后从物理表中将数据选出
這種簡單的問題就不用問了
真要使用delphi的
只有用循環
这种问题在里面都很简单的。
在Detail中放9个QRLabel
//每次打印详细列表(BandType=rbDetail),会触发这个事件
procedure TForm1.QuickRep1NeedData(Sender:
TObject; var MoreData: Boolean);
var
I: integer;
begin
MoreData := True;
for I:= 1 to 3 do
begin
if Table1.Eof then Break;
case I of
1: begin
QRLabel1.Caption :=Table1.FieldByName('Name').AsString;
QRLabel2.Caption :=Table1.FieldByName('Salary').AsString;
QRLabel3.Caption :=Table1.FieldByName('UnderWrite').AsString;
end;
2: begin
QRLabel4.Caption :=Table1.FieldByName('Name').AsString;
QRLabel5.Caption :=Table1.FieldByName('Salary').AsString;
QRLabel6.Caption :=Table1.FieldByName('UnderWrite').AsString;
end;
3:begin
QRLabel7.Caption :=Table1.FieldByName('Name').AsString;
QRLabel8.Caption :=Table1.FieldByName('Salary').AsString;
QRLabel9.Caption :=Table1.FieldByName('UnderWrite').AsString;
end;
end;
Table1.Next;
end;
if Table1.Eof then MoreData := False;
end;
另外要使从第一条打起
procedure TForm1.QuickRep1BeforePrint
(Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
Table1.First;
end;