尝试在水晶报表中构建数组

问题描述 投票:0回答:1

我很难理解数组,我正在尝试在水晶报表中为特定功能构建一个数组,我想知道是否有人可以帮忙。

我试图在一个子报表中实现一个数组来循环遍历表 Id,它将在 sybreport 中按 id 分组,然后其他数组实际存储结果。因此,如果索引 3 你有 tableid 34,那么在其他数组的索引 3 中,你将保存 tableid 34 的关联值。关联值将是另一个表列的计数,基于该表行的计数值。

我不知道从哪里开始写公式,因为这是我很难理解的。

我很感激这没什么好继续的,但是任何帮助或 sudo 代码都会很好地帮助我学习数组。

我开始尝试构建一个数组来循环遍历 id,但我认为我没有完全到位。我已经初始化数组以尝试阻止它自行重置并继续循环 1 的值,但我仍然不认为完全理解我所做的事情。

`shared NumberVar array aryGrpID;
local numberVar nCount := Count(aryGrpID);
local NumberVar i;
For i := 1 To nCount Do
(
   if aryGrpID[i] = {table.id} then
   nCount := i;
);
aryGrpId[nCount] = {table.id};`
arrays crystal-reports
1个回答
0
投票

我不确定我是否理解您的用例,但您可能需要添加 redim 逻辑。 下面是一个获取长文本并将其转换为字符串数组的示例。您应该能够根据您的用例调整逻辑。

使用字符串数组方法在单个调用中写入很长一行的示例:

StringVar MyText := {@LongTextLine};
local stringvar array MyStringArray;
IF Len(MyText) = 0 Then
(redim MyStringArray [1];
 MyStringArray[1] = "";)
Else
(   Local numbervar segments := RoundUp(Len(MyText)/254);
    redim MyStringArray [segments];
    Local numbervar index ;
    for index := 0 to segments - 1 step 1 do
        (MyStringArray[index + 1] := mid(MyText, 1 + (index * 254) , 254)) ;
);
FileAddText (TargetFile, MyStringArray, False, True);
© www.soinside.com 2019 - 2024. All rights reserved.