SAP Crystal Report上每个订单项的计数

2020-09-20 23:56发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在Crystal报表中有一组数据,如下所示:您可以看到每个项目都有相应的数量。

但是,报表中没有隐藏的详细信息,则行号应等于RecordNumber。 所以我得到的以下公式是:

 WhilePrintingRecords;
 NumberVar ItemNumber;


 ToText(ItemNumber,0)&"/"&ToText(Count({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)
 

导致:

请注意,它会将1个SalesOrder中的所有记录相加。

但是我想要的输出是:

修道院应为1/1

夏洛特应该是1/1

sample.jpg (13.5 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


我在Crystal报表中有一组数据,如下所示:您可以看到每个项目都有相应的数量。

但是,报表中没有隐藏的详细信息,则行号应等于RecordNumber。 所以我得到的以下公式是:

 WhilePrintingRecords;
 NumberVar ItemNumber;


 ToText(ItemNumber,0)&"/"&ToText(Count({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)
 

导致:

请注意,它会将1个SalesOrder中的所有记录相加。

但是我想要的输出是:

修道院应为1/1

夏洛特应该是1/1

sample.jpg (13.5 kB)
付费偷看设置
发送
7条回答
天桥码农
1楼 · 2020-09-21 00:28.采纳回答

您永远不会为ItemNumber设置值。 尝试这样的事情:

 WhilePrintingRecords;
 ToText({rpt_PackingSlip.LineNo},0)&"/"&ToText(DistinctCount({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)

如果LineNo从1开始连续且您正在按该字段进行排序,则此方法有效。

如果您不在LineNo上排序,请尝试以下操作:

 WhilePrintingRecords;
 NumberVar ItemNumber;
 如果OnFirstRecord或{rpt_PackingSlip.WorkOrderNo} <>上一页({rpt_PackingSlip.WorkOrderNo}),则
     ItemNumber:= 1;
 其他
     ItemNumber:= ItemNumber +1;
 ToText(ItemNumber,0)&"/"&ToText(DistinctCount({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)

-戴尔

DafaDDDa
2楼-- · 2020-09-21 00:18

谢谢

更新:我已经更改了代码,并添加了DistinctCount而不是Count,但仍不能解决问题:(

现在我有2个销售订单:S018040553和S018040850

S018040553-有一项叫做Buzz Ottoman

S018040850-有2个项目叫Amelia和Charlotte

 WhilePrintingRecords; NumberVar ItemNumber; ToText(ItemNumber,0)&"/"&ToText(DistinctCount({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)
 我得到以下结果:所需的输出为"红色"字体。  S018040553。

 请帮助

 

S018040850-它有2个项目,分别称为修道院和夏洛特。

一只江湖小虾
3楼-- · 2020-09-21 00:15

请参考VBAP表以获取销售订单项目

4楼-- · 2020-09-21 00:09

谢谢戴尔,但是...

更新:我已经更改了代码,并添加了DistinctCount而不是Count,但仍不能解决问题:(

现在我有2个销售订单:S018040553和S018040850

S018040553-有一项叫做Buzz Ottoman

S018040850-有2个项目叫Amelia和Charlotte

 WhilePrintingRecords; NumberVar ItemNumber; ToText(ItemNumber,0)&"/"&ToText(DistinctCount({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)
 我得到以下结果:所需的输出为"红色"字体。  S018040553。

 请帮助

 

S018040850-它有2个项目,分别称为修道院和夏洛特。

My梦
5楼-- · 2020-09-21 00:23

嗨Trish,

如果一个工作订单有多行,那么这部分代码将显示> 1:

 ToText(Count({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo})

您能否发布示例数据,说明为什么应将其显示为1/1,在什么情况下应将其显示为1/n?

-Abhilash

callcenter油条
6楼-- · 2020-09-21 00:33

我也将使用DistinctCount而不是Count来获取字符串中的第二个数字。

-戴尔

半个程序猿
7楼-- · 2020-09-21 00:16

感谢戴尔,但...

更新:我已经更改了代码,并添加了DistinctCount而不是Count,但仍不能解决问题:(

现在我有2个销售订单:S018040553和S018040850

S018040553-有一项叫做Buzz Ottoman

S018040850-有2个项目叫Amelia和Charlotte

 WhilePrintingRecords; NumberVar ItemNumber; ToText(ItemNumber,0)&"/"&ToText(DistinctCount({rpt_PackingSlip.LineNo},{rpt_PackingSlip.WorkOrderNo}),0)
 我得到以下结果:所需的输出为"红色"字体。  S018040553。

 请帮助

 

S018040850-它有2个项目,分别称为修道院和夏洛特。

一周热门 更多>