如何一行打印三条纪录!急呀,高分求救!(200分)

  • 主题发起人 主题发起人 laokui
  • 开始时间 开始时间
L

laokui

Unregistered / Unconfirmed
GUEST, unregistred user!
我想用quickreport 打印一个表中的记录,最终想要实现的结果是这样的:
record1 record2 record3
record4 record5 record6
record7...
我设置quickrep.page.column:=3 结果却是这样:
record1 record6 record11
record2 record7 ...
record3 record8
record4 record9
record5 record10
请各位高手帮帮忙!
 
你用三个数据集控件,一个连接一列,每个数据集里对数据进行如下过滤:
1:ID mod 3 = 1
2:ID mod 3 = 2
3: ID mod 3 = 0
 
不好意思写错了,应该是div
 
程序不在QuickRep1的DataSet属性选定任何表, QuickReport便不会控制表记录的提取,QuickReport特为其它类型数据打印提供了一个OnNeedData事件
const
Rol=4 一行所要打印的列数
procedure TForm1.QuickRep1NeedData(Sender: TObject;
var MoreData: Boolean);
var
I: integer;
begin
MoreData := True;
for I:= 1 to 4do
begin
case I of // 打印列取值
1:begin
if NOT(Query1.Eof) then
begin
QRLabel1.Caption :=所要打印的值
END
else
begin
QRLabel1.Caption :='';
end;
end;
2:begin
if NOT(Query.Eof) then
begin
QRLabel2.Caption :=所要打印的值
END
else
begin
QRLabel2.Caption :='';
end;
end;
3:begin
if NOT(Query1.Eof) then
begin
QRLabel3.Caption :
=所要打印的值
END
else
begin
QRLabel3.Caption :='';
end;
end;
4:begin
if NOT(Query1.Eof) then
begin
QRLabel4.Caption :=所要打印的值
END
else
begin
QRLabel4.Caption :='';
end;
end;
end;
Query1.Next;
P:=P+1;
end;

IF P>Query1.RecordCount+Rol then
MoreData := False;
end;

procedure TForm1.QuickRep1BeforePrint(
Sender: TCustomQuickRep;
var PrintReport: Boolean);
begin
P:=0;
Query1.First ;
end;
 
同意panjf
 
后退
顶部