Crystal reports crystal formula循环仅返回最后一条记录

Crystal reports crystal formula循环仅返回最后一条记录,crystal-reports,concatenation,formula,Crystal Reports,Concatenation,Formula,使用Crystal XI 我有两个数组-一个捕获时间点列表,另一个捕获与它们相关的时间 我需要将两者关联起来,以便输出看起来像 因此,我编写了以下代码-数组在页眉中初始化,然后在细节部分加载数据,然后在组页脚中显示(三个公式技巧)。我可以在两个数组中分别显示数据,可以吗 (如时间点[1]、时间点[2]等) 只有在试图将两者结合起来时,问题才会出现。下面的代码只打印gorup数组中的最后两条记录,而不是所有记录。 因此,如果有5个时间点和5个时间点,则显示下面的代码 时点[4]-时间[4]-时点[

使用Crystal XI

我有两个数组-一个捕获时间点列表,另一个捕获与它们相关的时间

我需要将两者关联起来,以便输出看起来像

因此,我编写了以下代码-数组在页眉中初始化,然后在细节部分加载数据,然后在组页脚中显示(三个公式技巧)。我可以在两个数组中分别显示数据,可以吗

(如时间点[1]、时间点[2]等)

只有在试图将两者结合起来时,问题才会出现。下面的代码只打印gorup数组中的最后两条记录,而不是所有记录。 因此,如果有5个时间点和5个时间点,则显示下面的代码

时点[4]-时间[4]-时点[5]-时间[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;

感谢您查看此

您在每次迭代中都会覆盖combinest变量的上一个值。您需要这样做:

.
.
.
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.您需要将“步骤2”添加到for循环中,否则将打印出两次时间点

.
.
.
For i:=1 to UBound(Times)-2 do   
(combineStr := combineStr + Timepoints[i] + ','+ totext(Times[i]) + '-' + 
Timepoints[i+1] + totext(Times[i+1]) + ',');

combineStr;