0

我想将值放入共享数组中,并将其打印到详细信息部分的另一个子报表中,以逐个打印数组的每个值。

我已经谷歌了,但我似乎没有得到正确的答案。

这是代码:

// 1st Sub Report
WhilePrintingRecords;
shared numberVar array Totdepot;

Redim preserve Totdepot[UBound(Totdepot)+1];//more space added to array.
Totdepot[UBound(Totdepot)+1]:={dtSumDe… + {dtSumDealer2.inv_depot2} + {dtSumDealer2.inv_depot3} + {dtSumDealer2.inv_depot4} + {dtSumDealer2.inv_depot5} + {dtSumDealer2.inv_depot7} + {dtSumDealer2.inv_depot6} + {dtSumDealer2.inv_depot8} + {dtSumDealer2.inv_depot9};

// 2nd Sub Report
WhilePrintingRecords;
shared numberVar array Totdepot;
Totdepot

我正在尝试打印数组的第二个值,但它仍然不起作用。错误显示:“运行总计不能引用打印时间公式”或“公式的结果不能是数组”

4

1 回答 1

0

问题一

你的两个公式的最后一行不能是数组;将其更改为类似于:

// 1st Sub Report
WhilePrintingRecords;
Shared NumberVar Array Totdepot;

Redim preserve Totdepot[UBound(Totdepot)+1];//more space added to array.
Totdepot[UBound(Totdepot)+1]:={dtSumDe… + {dtSumDealer2.inv_depot2} + {dtSumDealer2.inv_depot3} + {dtSumDealer2.inv_depot4} + {dtSumDealer2.inv_depot5} + {dtSumDealer2.inv_depot7} + {dtSumDealer2.inv_depot6} + {dtSumDealer2.inv_depot8} + {dtSumDealer2.inv_depot9};

// return a dummy value to eliminate array-error message
True;

// 2nd Sub Report
WhilePrintingRecords;
Shared NumberVar Array Totdepot;

// return a dummy value to eliminate array-error message
True;

问题二

您将无法以与显示数据库记录相同的方式显示数组;Crystal Reports 不会为数组中的每个元素生成详细信息部分记录。它不是为此而设计的。

你有两个选择:

  • 创建一个将循环遍历数组并创建逗号分隔(或其他字符)字符串的公式字段。
  • 将计算推送到数据库,以便它返回可用的数据集。
于 2012-07-17T15:18:23.177 回答