5

我正在尝试使用 fastreport 和 delphi 执行以下操作。我有一份报告,其中包含...

GroupHeader -------> Customer Salesman MasterData 的键 --------> CustomerName, Balance GroupFooter -------> Salesman-1 MasterData 的 Sum(Balance) ------- > CustomerName, Balance GroupFooter -------> Salesman-2 MasterData 的 Sum(Balance) -------> CustomerName, Balance GroupFooter -------> Salesman-3 的 Sum(Balance) . . . MasterData -------> CustomerName, Balance GroupFooter -------> Salesman-N 的 Sum(Balance)

====> 这里想要:Footer-2 -------> SUM(Sum(Balance) of Salesman-1, Sum(Balance) of Salesman-2, Sum(Balance) of Salesman-3) (只要 !!!)

ReportFooter --------> 客户总余额。

有没有人想用 fastreport 脚本引擎解决问题?

谢谢你。

4

1 回答 1

2

我会创建一个报表全局变量“salessum”

var
  salessum: extended;

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

在详细信息带的 OnBeforePrint 事件中,如果它是所需的推销员之一,则增加销售额。

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 事件中将其可见属性设置为真/假,具体取决于您当前正在处理的推销员键并设置其值与 salessum 的值。您还需要确保带子自动拉伸。

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

希望这是有道理的(并且是您真正想要实现的目标!)。

于 2010-09-07T06:59:28.493 回答