Crystal Reports:全局变量运行总计不显示在标题中

时间:2009-11-02 16:35:07

标签: crystal-reports running-total

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

我试图通过将运行总计(RTversion)放入公式字段中来实现此目的:

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

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

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

{#CurrentVers}运行第一大号码。

这是不正确的?

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

6 个答案:

答案 0 :(得分: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;

答案 1 :(得分:4)

创建一个像这样的公式

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

并将其放在群组标题部分。

答案 2 :(得分:1)

我想出来了..

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

新版块(同一组 - 我在这里放置子报告;不要压制) 新部分(同一组 - 我在这里放置共享变量值;不要压制) 原始部分(具有标题的同一组我需要根据运行总计来抑制)

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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

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

答案 5 :(得分:0)

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