5

使用Crystal Reports,我试图在所有标签所在的标题中显示数据库字段的运行总计。

我试图通过将运行总计(RTversion)放入具有以下内容的公式字段来做到这一点:

Shared stringvar CurrentVers; 
CurrentVers := {#CurrentVers}; 

然后在页眉部分我有以下内容:

Shared stringvar CurrentVers; 
EvaluateAFter({#currentVers}); 
CurrentVers; 

{#CurrentVers} 运行第一大数字。

这是不正确的吗?

更新:目标是在标签附近的标题中显示最新版本,以显示当前版本用于比较。

4

6 回答 6

4

根据我的经验,Running-Total Fields 仅适用于页脚部分。

您将需要创建手动运行总计。

将公式字段添加到详细信息部分,用您尝试捕获的任何内容填充全局变量。就像是:

//use WhileReadingRecords if the values can be gathered as the report pulls in values from the database.  Otherwise, use WhilePrintingRecords. 
WhileReadingRecords;
Global Stringvar CurrentVers;
//logic here to capture what you want
CurrentVers:=...

将另一个公式字段添加到标题部分。将这两行添加到其中:

WhilePrintingRecords;
Global Stringvar CurrentVers;
于 2009-11-03T22:49:42.603 回答
4

创建这样的公式

formula = Count ({Field to count},{GroupFieldName}) 

并将其放在组标题部分。

于 2010-07-28T10:17:56.573 回答
1

我想到了..

我不得不在主报告中添加一个子报告。我复制了主报告并将其重命名为子报告。在子报表中,我添加了一个共享变量,然后将其传递给主报表。诀窍是将子报表放在同一个组标题中,但在需要抑制的部分上方有一个单独的部分。我实际上添加了以下部分:

新部分(同一组 - 我在此处放置子报表;不要抑制) 新部分(同一组 - 我在此处放置共享变量值;不要抑制) 原始部分(具有我需要根据运行总计抑制的标题的同一组)

于 2010-05-23T19:15:34.727 回答
0

如果 {#CurrentVers} 是一个常规的运行总计字段,您应该能够将其直接放在页眉中,而不是求助于其他公式。我认为这里不需要任何一个公式字段,除非 {#CurrentVers} 的组成中有一些不寻常的东西,并且“最大数字”运行总数不应该需要任何不寻常的东西。

于 2009-11-03T08:02:59.070 回答
0

您只需一个公式字段即可解决此问题:

WhilePrintingRecords;
// Enter logic here e.g.
// maximum({mytable.myfield});

强制在WhilePrintingRecords;从数据库中读取所有记录之前不计算公式,因此即使放在标题中,公式字段也会显示正确的结果。

于 2012-08-30T09:12:27.170 回答
0

我发现的关键是被传递的公式字段需要放在子报表上。我把我的放在页脚然后压制它。

于 2013-04-22T15:29:32.947 回答