2013-10-24 91 views
1

运行总,我认为一个阵列可以解决“按项目”汇总字段的问题...水晶报表 - 在阵列

源数据:

“事件1”

“事件2 “

‘事件3’

这些多个实例出现不同的区域(第1小组),和不同的时间(第2组),所以在任何一天,我报出:

天1

“事件1” - 2个OCCURENCES

“事件3” - 3个OCCURENCES

第2天

“事件1” - 5个OCCURENCES

“事件3“ - 7次发生

总计足够简单,随时记录,但现在我想在报告结尾包含每个特定事件类型的总计。想一想,如果我创建一个数组来计算每次事件记录的点击次数,就可以在报告结束时以累计的方式将它们排出。

与关键EventArray“事件1”增量每一次记录是“事件1” EventArray与关键“事件2”增量每次记录是这样的“事件2”

等等...

只是不确定放在哪里;如何编写...必须的下面的一些变化,但只是不太确定:

//Build 
WhileReadingRecords; 
Local StringVar Key := "" & {Customer.EventType}; 
Local NumberVar Amt := "Count of Event Types"; 
StringVar array Keys; 
NumberVar Array Amts; 
if not(Key in Keys) then 
(redim preserve Keys [count(Keys)+1]; 
redim preserve Amts[count(Keys)+1]; 
Keys[count(Keys)]:= Key; 
Amts[count(Keys)]:= Amt); 
Amts [1] 

在类似的perl它很容易做的一个哈希,但不知道如何/在哪里做在水晶。

最后,我猜数组看起来像:

arrayName中的[“事件1”] = 17或然而,许多次记录在该领域Customer.EventType有“事件1”

arrayName中的[“事件2”] = 18或然而,许多次记录在该领域Customer.EventType

我不知道有“事件2” ...

+0

哪个Crystel的版本?对于VS或实际的Crystal Reports,它是水晶吗? –

+0

实际的Crystal Reports套件。 – user2917111

回答

0

您可以通过只是做一个非常简单的解决方案为每个事件创建单独的公式,例如if Customer.EventType = Event1 then 1 else 0。把它们放在适当的部分并压制。然后在相应部分中添加摘要并对每个公式进行总计。如果你有数百个事件,这当然会是太多的工作。那么阵列将是更好的方法。让我知道如果你需要做阵列,我会很乐意帮助你。

干杯,

克里斯