我需要做报告,那是在细节打印后有摘要,而不是在每个细节之后。
我只知道页脚,但它在页面底部,而不是在细节栏之后。
有没有QRBand可以追查详细信息乐队?或者,你能让PageFooter在每一页上调整高度吗?
QRBand
PageFooter
kmpatx3s1#
汇总带区仅打印在紧跟在最后一个‘Detail’之后的报告结尾处(除非AlignToBottom属性设置为true)。
AlignToBottom
true
您应该向报表添加TQRBand,并将BandType属性设置为rbSummary。
TQRBand
BandType
rbSummary
编辑
如果需要在每一页上显示中间结果,可以添加FooterBand和SummaryBand。
FooterBand
SummaryBand
摘要区段仅在报表末尾(最后一页)打印,您可以使用摘要的BeforePrint事件禁用页脚区段。
BeforePrint
EDIT2
您也可以尝试使用QRGroupBand和QRFooterBand。
QRGroupBand
QRFooterBand
在GroupBand中:
GroupBand
Expression
Type
rbTitle
rbGroupFooter
QRGroup
FooterBand是打印每个产品的汇总的地方。
gopyfrb32#
我能够在QuickReport事件和数据源事件的帮助下解决这个问题。在一个测试项目中,在页脚中放一个tqr标签就足够了,剩下的部分写在下面。
type TForm1 = class(TForm) ... private firstValue: Integer; public counter: Integer; end; var Form1: TForm1; PageSummery: Integer; procedure TForm1.Button2Click(Sender: TObject); begin Application.CreateForm(TForm2, Form2); adoquery.First; counter := 0; firstValue := adoquery.FieldByName('id').AsInteger; PageSummery := 0; Form2.QuickRep1.Preview; Form2.Free; end; procedure TForm1.adoqueryAfterScroll(DataSet: TDataSet); begin if counter <= 1 then PageSummery := firstValue + adoquery.FieldByName('id').AsInteger else begin PageSummery := PageSummery + adoquery.FieldByName('id').AsInteger; form2.QRLabel2.Caption := IntToStr(PageSummery - Form1.adoquery.FieldByName('id').AsInteger); end; counter := counter + 1; end;
注意第一种形式中变量的位置。第一个按钮用于填充查询数据。在每次增加之后,数据被放置在qrLabel中,以便在事件被触发时保存所有数据。最后一点是QuickReport事件,该事件在创建新页面时填充打印行之前发生。在这种情况下,必须将多个变量设置为零。
procedure TForm2.QuickRep1StartPage(Sender: TCustomQuickRep); begin if Form1.counter = 0 then PageSummery := 0 else PageSummery := Form1.adoquery.FieldByName('id').AsInteger; end;
2条答案
按热度按时间kmpatx3s1#
汇总带区仅打印在紧跟在最后一个‘Detail’之后的报告结尾处(除非
AlignToBottom
属性设置为true
)。您应该向报表添加
TQRBand
,并将BandType
属性设置为rbSummary
。编辑
如果需要在每一页上显示中间结果,可以添加
FooterBand
和SummaryBand
。摘要区段仅在报表末尾(最后一页)打印,您可以使用摘要的
BeforePrint
事件禁用页脚区段。EDIT2
您也可以尝试使用
QRGroupBand
和QRFooterBand
。在
GroupBand
中:Expression
属性将一组产品与另一组产品分开(波段也可以为空)FooterBand
属性。在这里,您可以将页眉带链接到正确的页脚带,并在其中封装您的组。通过删除QRBand
组件并立即将Type
从rbTitle
更改为rbGroupFooter
,首先放置页眉区段,然后返回并放置页脚区段。完成此操作后,您可以返回到QRGroup
页眉并选择要使用的正确页脚区域。FooterBand
是打印每个产品的汇总的地方。gopyfrb32#
我能够在QuickReport事件和数据源事件的帮助下解决这个问题。在一个测试项目中,在页脚中放一个tqr标签就足够了,剩下的部分写在下面。
注意第一种形式中变量的位置。第一个按钮用于填充查询数据。在每次增加之后,数据被放置在qrLabel中,以便在事件被触发时保存所有数据。最后一点是QuickReport事件,该事件在创建新页面时填充打印行之前发生。在这种情况下,必须将多个变量设置为零。