Crystal reports 如何在Crystal Reports中的组公式中使用共享变量?

Crystal reports 如何在Crystal Reports中的组公式中使用共享变量?,crystal-reports,crystal-reports-8.5,Crystal Reports,Crystal Reports 8.5,因此,我的任务是更新客户创建的自定义报告,使其更通用,以供所有其他客户使用。该报告显示了基于付款方式的总销售额,并将所有不同的信用卡(作为单独的付款方式存储在我们的软件中)组合成一个“信用卡”组。不幸的是,这些值在报告中是硬编码的。我在子报表中创建了以下公式,以生成从数据库中提取的有效信用卡名称数组,以便任何客户都可以使用它: //Init Shared StringVar Array CreditCards; ReDim CreditCards[1]; //Calc (in the deta

因此,我的任务是更新客户创建的自定义报告,使其更通用,以供所有其他客户使用。该报告显示了基于付款方式的总销售额,并将所有不同的信用卡(作为单独的付款方式存储在我们的软件中)组合成一个“信用卡”组。不幸的是,这些值在报告中是硬编码的。我在子报表中创建了以下公式,以生成从数据库中提取的有效信用卡名称数组,以便任何客户都可以使用它:

//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(我知道),所以我希望答案不是升级…

是否可以在主报告中对CreditCard.crCard进行左外连接?然后,您可以创建一个公式,检查CreditCard表中的行中是否存在非空值<代码>如果不为空{CreditCard.crCard}则为“CreditCard”否则{Sales_ByPayMethod;1.finPayMethod}


如果您的数据模型或使用存储过程变得混乱,那么相同的逻辑可能会在SQL表达式中工作。

是否可以在主报表中对CreditCard.crCard执行左外部联接?然后,您可以创建一个公式,检查CreditCard表中的行中是否存在非空值<代码>如果不为空{CreditCard.crCard}则为“CreditCard”否则{Sales_ByPayMethod;1.finPayMethod}

如果数据模型或使用存储过程变得混乱,那么同样的逻辑可能会在SQL表达式中工作