所以我的问题是我创建了一个按经销商编号分组的报告。在这个组中,我创建了运行总计来总结每个经销商的数量,然后只显示他们的总量。我在组头中将所有变量重置为0。当我在CR中查看报告时看起来很好。但是通过观众或导出到excel -data只会显示正在运行的总数。似乎它在组头中没有重置为0。任何想法将不胜感激。如果它在CR中正确显示,可能问题只与观众有关吗?
在报告标题中:
whileprintingrecords;
global numbervar volume := 0;
组详情部分: 公式字段
if Month({appl_trans.trans-dt}) = 1
and Year({appl_trans.trans-dt}) = Year(CurrentDate) then (
if previousisnull({contract1.contract-no}) then
global numbervar volume := {contract1.cost-base};
if {contract1.contract-no} <> previous({contract1.contract-no}) then
global numbervar volume := volume + {contract1.cost-base}
else
global numbervar volume := volume
);
在群组标题中:
whileprintingrecords;
global numbervar volume := 0;
在组页脚:公式字段
whileprintingrecords;
global numbervar volume := volume;
答案 0 :(得分:0)
您的变量使用过于复杂,CR可能会因此而做些奇怪的事情。完全摆脱报告标题中的公式 - 您已经在组头中重新初始化变量。接下来,将详细信息部分中的公式更改为以下内容:
whileprintingrecords;
global numbervar volume;
if (Month({appl_trans.trans-dt}) = 1
and Year({appl_trans.trans-dt}) = Year(CurrentDate)
and {contract1.contract-no} <> previous({contract1.contract-no}) then
volume := volume + {contract1.cost-base};
将公式保留在组标题中。然后使用此公式在页脚中显示音量:
whileprintingrecords;
global numbervar volume;
volume
您通常只想为每个公式声明一个变量,这意味着只有一个“global numbervar x”,并且对于使用该变量的每个公式都要这样做。您也永远不需要为自己设置变量,因为它实际上不会做任何事情。
实现此目的的另一种方法可能比使用公式更简单,您只需添加一个Running Total字段来汇总{contract1.cost-base},评估{contract1.contract-no}的变化并在每个变量后重置组。或者另一种方法是在{contract1.contract-no}上添加另一个内部分组,并在组页脚中插入一个Summary字段。无论哪种方式都可以完成工作。