1

我认为数组可以“按项目”解决汇总字段的问题......

源数据:

“事件一”

“事件 2”

“事件三”

这些实例的多个实例发生在不同的区域(Group1)和不同的日期(Group2),所以在任何一天我都会报告:

第 1 天

“事件 1” - 2 次出现

“事件 3” - 3 次出现

第 2 天

“事件 1” - 5 次出现

“事件 3” - 发生 7 次

很容易总计,按天跟踪,但现在我想在报告末尾包含每个特定事件类型的总计。想想如果我创建一个数组来计算每个事件的每次记录命中,就可以在报告结束时以累积的方式将它们吐出来。

EventArray 键为“Event 1”,每次记录增量为“Event 1” EventArray 键为“Event 2”,每次记录增量为“Event 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 之类的东西中,使用哈希很容易,但不确定在 Crystal 中如何/在哪里进行。

最后我猜这个数组看起来像:

ArrayName["Event 1"] = 17 或者很多次记录在字段 Customer.EventType 中有“Event 1”

ArrayName["Event 2"] = 18 或多次记录在字段 Customer.EventType 中有“事件 2”

我不知道...

4

1 回答 1

0

您可以通过为每个事件创建单独的公式来做一个非常简单的解决方案,例如if Customer.EventType = Event1 then 1 else 0. 将它们放在适当的部分并压制。然后在适当的部分添加一个摘要并汇总每个公式。如果您有数百个事件,这当然会是太多的工作。那么数组将是更好的选择。如果您需要做阵列,请告诉我,我很乐意为您提供帮助。

干杯,

克里斯

于 2013-10-28T15:21:51.773 回答