procedure Header2OnBeforePrint(Sender: TfrxComponent);
begin
IF <Page#><>1 then
begin
Engine.ShowBand(Header1);
MasterData1.DataSet.first;
while not MasterData1.DataSet.eof do
begin
Engine.ShowBand(MasterData1);
MasterData1.DataSet.next;
end;
end;
end;
用了上面的方法,但MasterData1只打印第一行,后面的都空白?为什么?
用这个方法就不用主从表了。
我们称表1,表2了,表1在表2中对应多个记录。
如果要打印表1的多个记录,在delphi 中用循环改变表1表2的内容直接打印就可了。
while not adoquery1.eof do begin
adoquery2.close;
adoquery2.sql.clear;
adouqery2.sql.add('select * from 表2 where ....')
self.frxReport1.LoadFromFile('reports\统计明细表.fr3');
//这里也可以不用将表头数据关联至表1,用这个直接改变表头的值
//TfrxMemoView(frxReport1.FindObject('Memo13')).Memo.Text:=adoquery1.fieldbyname('姓名').asstring;
self.frxReport1.ShowReport;
adoquery1.next;
自己动手试一下就明白了。
end;
手写代码,大概这个意思了。