使用Crystal XI
我有两个数组 - 一个捕获一个时间点列表,另一个捕获与它们相关的时间。
我需要关联这两个,以便输出看起来像
timepoint[1] - time [1] - timepoint[2] - timepoint[2]; timepoint[3] - time[3] - timepoint[4] - timepoint[4];
所以我冤枉了下面的代码 - 数组在标题中被初始化,然后在详细信息部分中加载数据,然后显示在组页脚中(三个公式技巧)。我可以单独显示两个数组中的数据
(as timepoint[1], timepoint[2], etc)
这个问题只有在试图将两者结合起来时才会产生。下面的代码只打印gorup数组中的最后两个记录而不是所有记录。 所以,如果有5个时间点,则显示以下代码的5倍
timepoint [4] -time [4] - timepoint [5] -time [5]
我最终必须在两个相关的日期时间之间执行计算,但现在只是试图让关联和显示工作。
Shared stringVar array Timepoints;
Shared DateTimeVar array Times;
local stringVar combineStr;
local numbervar i;
For i:=1 to UBound(Times)-2 do
(combineStr := Timepoints[i] + ','+ totext(Times[i]) + '-' +
Timepoints[i+1] + totext(Times[i+1]) + ',');
combineStr;
感谢您查看此内容
答案 0 :(得分:1)
您在每次迭代时都会覆盖combineStr变量的先前值。你需要这样做:
.
.
.
For i:=1 to UBound(Times)-2 do
(combineStr := combineStr + Timepoints[i] + ','+ totext(Times[i]) + '-' +
Timepoints[i+1] + totext(Times[i+1]) + ',');
combineStr;
其他一些事情:1。您需要连接换行符,chr(10),而不是迭代之间的逗号,以显示问题中的示例。 2.您需要在for-loop中添加“step 2”,否则您将打印两次时间点。