因此,我的任务是更新客户创建的自定义报告,使其更通用,以供所有其他客户使用。该报告显示基于付款方式的总销售额,并将所有不同的信用卡(作为单独的付款方式存储在我们的软件内部)合并到一个“信用卡”组中。不幸的是,这些值在报告中是硬编码的。我在子报表中创建了以下公式,以生成从数据库中提取的有效信用卡名称数组,以便任何客户都可以使用它:
//Init
Shared StringVar Array CreditCards;
ReDim CreditCards[1];
//Calc (in the details section)
Shared StringVar Array CreditCards;
CreditCards[ubound(CreditCards)] := {CreditCard.crCard};
ReDim Preserve CreditCards[ubound(CreditCards)+1];
//Display (suppressed, used to check if I got all the cards)
Shared StringVar Array CreditCards;
Join(CreditCards, chr(10));
然后,我想我会在我的组公式中这样做,其中 Sales_ByPayMethod 是一个存储过程......
Shared StringVar Array CreditCards;
If {Sales_ByPayMethod;1.finPayMethod} In CreditCards Then 'Credit Card'
...只是发现这不起作用,因为您显然不能在分组公式中使用共享变量。有解决方法吗?或者(最好)正确的方法?我被迫使用 Crystal 8.5(我知道)所以我希望答案不是升级......