2012-04-27 59 views
0

这是我的。我有15个独特的公式,分别命名为Week1,Week2,... Week15。我希望能够获取参数名称MYCount,并使用它来遍历记录并对它们进行求和。因此,如果MyCount等于3,则循环将总计Week1 + Week2 + Week3。我知道如何创建一个循环,但我无法弄清楚如何动态构建公式名称。这里是我到目前为止:(我正在使用Crystal Xi)Crystal报告动态公式名称

Whileprintingrecords; 
local NumberVar i := {?MyCount} 
For i := 1 To (MyCount-1) Do (
    i = {@Week & "i"} + i 
); 
x 
+1

你可以发布其中一个星期公式的逻辑吗? – craig 2012-04-27 13:05:04

回答

1

我想你可能会过度复杂化。为什么不只是做:

Local numbervar x := 0; 
If param > 0 then 
X := x + week1; 
If param > 1 then 
X := x + week; 
And so on... 
X; 
+0

感谢您的快速回复。公式会变得非常大。我最终将有大约100周的时间。我希望避免把它们全部列出来,因为我会用几种不同的公式来做这些总和。 – Mike 2012-04-27 12:55:23

+1

谢谢你,我终于明白你的意思了。看不到森林之间的森林...谢谢 – Mike 2012-05-02 14:45:11

0

我不完全是你想要做的,但你可能想要考虑另一种方法。

创建一个公式,将部分基于日期字段的星期数的字段:

//{@amount} 
// adjust firstDayOfWeek and firstDayOfYear parameters to match your organization's 
// definition of a week 
If DatePart("ww", {table.dateField})<={?Week} Then 
    {table.amount} 

上插入公式域汇总字段。

0

如果您使用的是@Weekn公式字段,以便您可以在整个页面中按日期进行汇总,那么您是否考虑过使用Crystal的Crosstab功能呢?

+0

联合国遗憾我不能那样做。我只需要总结特定的几周。我真的希望我可以用一个变数来建立一个公式名称。 – Mike 2012-04-30 14:04:08

+0

@Mike:您可以通过选择仅相关周(如果您根本不需要其他周)或设置公式来保存相关周的价值(如果需要显示但不是总和)其他几周)。 – 2012-05-01 07:08:18