引用Crystal Report中的最后一行数据

时间:2010-03-31 16:56:55

标签: crystal-reports

我有一个报告,其中的字段来自从SQL服务器提取的数据。我有一个完整的字段,我已添加到报告中...但是我有一个有趣的难题 - 我希望有人有一个我可以使用的公式。

我的三个列不需要求和...但是我的项目要求告诉我只是从报告的最后一行拉出最后一个数字并将其放在总行中。为了更好地澄清:

1999   0.1%   0.2%   0.3%
2001   -2%    0.3%   3.4%

基本上,在总计字段中,我将从2001年开始提取值,因为它是最后一个报告行。在我的总行中,我希望显示-2%,0.3%和3.4%(因为这些是最后一行的值)。基本上,我只想拉最后一个报告行的数据(不是总数)。

任何人都有一个我可以使用的公式吗?

3 个答案:

答案 0 :(得分:5)

如果我读得正确,我通常会把字段本身放在页脚中,没有任何公式。报告应显示组中最后一条记录的值。

答案 1 :(得分:3)

好吧,我有两个你可以使用的公式...我认为唯一的方法是使用一个变量来捕获详细信息部分中的最终值,然后将其显示在组页脚中。因此,详细信息,请创建公式字段,如下所示:

shared CurrencyVar lastValue;
if (OnLastRecord) then
  lastValue := {my_table.field_name}

将此添加到您的详细信息部分并将其禁止(因此不会显示)。然后添加另一个公式:

shared CurrencyVar lastValue;
lastValue;

将此添加到您的小组部分,其中通常会有总数。

对于您需要以这种方式处理的每个字段,您将需要另一个公式集。请注意,如果您使用基本语法,则可以处理第一个公式中的所有字段(因此您可以在“if”下包含多个语句。)

答案 2 :(得分:0)

我想分享一下我的例子。

我应该在细节中保留最后修改的值并在组中表示。 我有详细说明:

shared NumberVar X1;
if {Q.SklID}={@InSkl8} AND ({Q.Poredak}=1 OR {Q.Poredak}=2) then X8:={Q.MCena};

并在群组中,我有以下公式:

shared NumberVar X8;
X8;

这样,我在组公式中逃避情况NULL,因为详细信息公式中没有else子句。