我在Crystal报表中有一组数据如下所示: 您可以看到每个项目,它们都有相应的数量。
ITEM NAME QTY SalesOrder
Pure Lounge 8 SO18030097
Spectrum 1 SO18030098
Cloud 2 SO18030099
但是,报告中没有抑制细节,那么行号应该等于RecordNumber。所以我得到的以下公式(感谢这个建议)是
CStr(RecordNumber, "0") & "/" & CStr(Count({rpt_PackingSlip.LabelQTY}), "0")
并有此输出
Pure Lounge
1/11
SO18030097
Spectrum
1/11
SO18030098
Cloud
1/11
SO18030099
请注意,它总计了总共11条的所有记录。
但当然,我想要的输出是
Pure Lounge
1/8 (up to 8/8)
SO18030097
Spectrum
1/1
SO18030098
Cloud
1/2 up to 2/2
SO18030099
我的配方有问题吗?使用RecordNumber公式是正确的吗? :(
我该怎么办?
答案 0 :(得分:0)
如果报告中没有抑制细节,则行号应等于RecordNumber
。因此,以下公式将显示所需的输出:
CStr(RecordNumber, "0") & "/" & CStr(Count({Table.Column}), "0")
将{Table.Column}
替换为计算案例中总行数所需的列。
-
如果报告已分组,则需要变量和分组的itemcount来获得所需的输出。 创建以下公式并将其放在group-header部分中:
WhilePrintingRecords;
NumberVar ItemCount := 0;
创建另一个公式并将其放入详细信息部分,这将增加数字:
WhilePrintingRecords;
NumberVar ItemCount := ItemCount + 1;
然后,要显示结果,请使用以下公式。将GroupedColumn
替换为用于对报告进行分组的列:
WhilePrintingRecords;
NumberVar ItemNumber;
CStr(ItemNumber, "0") & "/" & CStr(Count({rpt_PackingSlip.LabelQTY}, {rpt_PackingSlip.GroupedColumn}), "0")