【问题标题】:Crystal Reports Duplicating Field Value when summarizing 1 field汇总1个字段时Crystal Reports重复字段值
【发布时间】:2014-08-19 19:46:06
【问题描述】:

所以这是我的问题,我使用这个函数来计算每种账单的金额。

if {TB_Facturas.F_Condiciones}="Efectivo" then
Numbervar  X:=X+{@T_Total}
else
X:=X

if {TB_Facturas.F_Condiciones}="Deposito" then
Numbervar  D:=D+{@T_Total}
else
D:=D

当每个变量更改为其他组时,此函数会重置每个变量

WhilePrintingRecords;
Global numbervar X; 
X:=0;

WhilePrintingRecords;
Global numbervar D;
D:=0;

在组页脚中,为每个摘要添加具有此公式的另一个字段

{@TotalClone}

当有多个值时,它可以完美运行,但是当它只需要计算 1 个值时,它会复制结果,例如,如果值为 135000,则无缘无故获得的结果为 270000...

这是一张图片,您可以看到我得到的结果http://i.stack.imgur.com/VU1dY.png

【问题讨论】:

  • 为什么不按帐单类型进行分组,让 Crystal Reports 在每种帐单的组页脚中为您计算组总数?
  • 我本来打算那样做的,这样会容易得多,但我的“老板”无论如何都想要这样,所以我别无选择:s
  • 嗯,你的老板应该知道有时技术是有限制的,这就是一个。这是正确的方法。
  • 他不想理解xD的时候这是个大问题
  • 您能否发布一些示例数据和表格结构,以便我可以在本周某处的空闲时间构建示例报告?

标签: vb.net visual-studio summary


【解决方案1】:

你有两种可能:

  1. 为每种帐单使用两个不同的组,让 Crystal Reports 在每个组的页脚中为您汇总。
  2. 使用公式字段手动汇总。

要使用公式,您需要从右侧菜单(基于标准 UI 布局)创建一个公式字段,并且在您的公式中,您需要对一种或另一种求和。

shared numbervar sumOfEffectiveBills;
shared numbervar sumOfDepositBills;

if {TB_Facturas.F_Condiciones} = "Efectivo" then 
    sumOfEffectiveBills+= {@T_Total}
else if {TB_Facturas.F_Condiciones} = "Deposito" then 
    sumOfDepositBills+= {@T_Total}

stringvar groupFooterSummary = "EFECTIVO: " 
                             + totext(sumOfEffectiveBills, 2) 
                             + "    DEPOSITO: "
                             + totext(sumOfDepositBills, 2)
groupFooterSummary

此公式输出应如下:

EFECTIVO: 99.99    DEPOSITO: 99.99

我不清楚如何使用 Crystal 语法声明共享变量,我也不确定您将无需进行代码替换,因为我没有要测试的 Crystal Reports,也没有要检索的数据。

【讨论】:

  • 有时应该脚踏实地来表达自己的观点。我很高兴能帮上忙。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-27
  • 1970-01-01
  • 2023-03-11
  • 1970-01-01
  • 2011-03-04
相关资源
最近更新 更多