2010-09-06 78 views
5

我正在尝试使用fastreport和delphi完成以下操作。我有一个报告包含...FastReport - 如何将特定的组主脚值添加到新的页脚乐队

GroupHeader ------->客户推销员的关键 MasterData ------->客户名称,余额 GroupFooter -------> Sum(余额)销售员-1 MasterData ------->客户名称,余额 GroupFooter ------->销售员-2的总和(余额) MasterData ------->客户名称,余额 GroupFooter ------->销售员总和(余额)-3 。 。 。 MasterData ------->客户名称,余额 组页脚-------的>萨姆(余额)推销员-N

====>在这里希望有: 页脚-2 - ------> SUM(销售员-1的总和(余额),销售员-2的总和(余额),销售员-3的总和(余额))(仅!!!)

ReportFooter --- ----->全部客户余额。

有没有人有一个想法来解决fastreport脚本引擎的问题?

谢谢。

回答

2

我想创建一个报告全局变量“salessum”

var 
    salessum: extended; 

procedure MYReportOnStartReport(Sender: TfrxComponent); 
begin 
    salessum := 0.0; 
end; 

在详细信息区域的OnBeforePrint事件递增salessum如果所需的推销员之一。

procedure MYReportDetailBeforePrint(Sender: TfrxComponent); 
begin 
    if (mydata.salesmankey = "key 1") or (mydata.salesmankey = "key2") or (...) then 
    begin 
    salessum := salessum + mydata.amount; 
    end; 
end; 

如果你想在报告的末尾有额外的总和然后添加一个报告摘要波段和OnBeforePrint事件相应的文本字段的值设置为salessum的格式化字符串。

procedure MYReportSummaryBeforePrint(Sender: TfrxComponent); 
begin 
    txtMyBestSalesMenTotal.Text := FormatFloat('#,##0.00', salessum); 
end; 

另外,如果你想业务员3次全切除后,立即额外的总和然后加入业务员组页脚区域,并在OnBeforePrint事件的文本字段,这取决于业务员关键的Visible属性设置为真/假您目前正在处理并将其价值设定为salessum的价值。您还需要确保乐队自动伸展。

我已经开始使用脚本和报表变量进行几乎所有的总结,因为它变得非常容易控制何时何地应该增加或重置或打印等。使用内置总和函数(在任何报表系统中)仅用于非常简单的总计 - 由于某些原因,我的报告中很少。

希望这是有道理的(并且是你实际想要实现的!)。