2012-03-14 54 views
1

我离完成Crystal 2008报告还有一步之遥。我在下面包含了一份报告的快照。出于某种原因,我无法正确计算黄色栏中的公式。我试图将每个主要数据源/年的净A值分成每年净总额A,以获得每个主数据源的数据百分比。网络A从访问中的字段拉出,网络A的总数是基于当前运行日期的运行总计,使用公式({HNT_End_To_End_Data.REPT_YYMM} = cStr(currentdate,'yyMM')在运行总计的评估部分中,并且该字段在年度的每次更改中都重置。水晶报表分部公式没有按照期望计算

在黄色列的公式是目前({HNT_End_To_End_Data.Net_A}/Sum ({HNT_End_To_End_Data.Net_A}))*100,为表示像它做NetA的分成总计净的所有3年(3727560/108666439)值,而不是分成个别年份(3727560/34981163)。我试图通过公式将每年的每个主数据源分成每年净总数。

我试过做很多不同的公式,并没有运气,所以会感谢任何人可能有任何建议。

enter image description here

回答

1

你对year({sometable.somedate})一组?您需要在组添加到您的汇总(SUM)功能:

(
{HNT_End_To_End_Data.Net_A} 
/
Sum({HNT_End_To_End_Data.Net_A}, year({sometable.somedate})) 
) * 100 

编辑:审查报告后,我可以为您正在使用的条件式{HNT_End_To_End_Data.REPT_YYMM} <> cStr(currentdate,'yyMM')打压细节部分看到。所以SUM({HNT_End_To_End_Data.Net_A},{HNT_End_To_End_Data.SERVICE_THRU_YEAR})实际上包括没有被显示的记录。你有很多方法来解决这个问题。最简单的是可能创造一个新的公式net_a:

if {HNT_End_To_End_Data.REPT_YYMM} <> cStr(currentdate,'yyMM') then 
{HNT_End_To_End_Data.Net_A} 
else 
0; 

你可以再做:

(
{HNT_End_To_End_Data.Net_A} 
/
Sum({@net_a}, year({sometable.somedate})) 
) * 100 
+0

我有一年分组的报告。我正在使用公式'({HNT_End_To_End_Data.Net_A} /(SUM({HNT_End_To_End_Data.Net_A},{HNT_End_To_End_Data.SERVICE_THRU_YEAR}))* 100)',但仍然无法得到正确的结果。我在表格中有几个运行日期,但报告只显示当前月份。该公式似乎将当前月份的净额A划分为表格中所有值的总和,即净A的总和,而不是每年的当前月份总额。我有一个记录选择公式,只显示报告中的当前运行日期,但公式不相同 – Trish 2012-03-16 18:48:34

+0

只用'Sum({HNT_End_To_End_Data.Net_A},{HNT_End_To_End_D ata.SERVICE_THRU_YEAR})添加一列到了解该专栏包含的内容,并希望为什么。 – 2012-03-16 19:33:35

+0

我按照你的建议做了,并且该列正在返回表中所有值的Net A的总数,而不是当前的“{HNT_End_To_End_Data.REPT_YYMM}”的总数。我尝试了不同的事情,似乎无法获得当前REPT_YYMM每年总和Net A的总和。这就是公式不正确的原因,所以如果我能以某种方式得到这个,我会很好。 ; o) – Trish 2012-03-17 00:36:01