如何计算SAP crystal报表中每个项目的记录数?

时间:2018-04-03 23:14:30

标签: crystal-reports report formula line-numbers

我在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公式是正确的吗? :(

我该怎么办?

1 个答案:

答案 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")