行上的SetCurrentLine()函数是使用行号还是Vis顺序?

2020-08-18 16:37发布

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

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


嗨,

我对DI API文档中某些行对象上可用的功能SetCurrentLine()感到有些困惑。 是使用LineNum值还是VisOrder值?

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

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


嗨,

我对DI API文档中某些行对象上可用的功能SetCurrentLine()感到有些困惑。 是使用LineNum值还是VisOrder值?

付费偷看设置
发送
4条回答
小灯塔
1楼 · 2020-08-18 17:24.采纳回答

经过研究,我发现VisOrder或LineNum都不适合SetCurrentLine()方法。

  • 在创建文档后删除任何行时,LineNum将失败。
  • VisOrder与文档匹配,但与其他任何对象都不匹配。 如果VisOrder不是基于零的,则无法使用。

最好的选择是遍历行并找到所需的行:

 for(int j = 0; j 
 

在我的情况下,我试图从交货单中获取基线,所以我必须匹配BaseLine和LineNum。

ZJXianG
2楼-- · 2020-08-18 17:25

是的,您是对的。 两者都不适合。 这是后来发现的。 抱歉,忘记更新此问题。

半个程序猿
3楼-- · 2020-08-18 17:10

嗨,

它使用的是LineNum值。

此visorder仅在前端使用。

Regarts

Ad

大道至简
4楼-- · 2020-08-18 17:05

您好Sinoj,

经验法则,SetCurrentLine(VisOrder)

对于 系统对象VisOrder由内部SAP控制,并且基于零。

使用VisOrder传入是安全的。

如果不是系统对象(例如UDO),则此 VisOrder有时不是基于零的。

在这种情况下,您需要查询记录并创建自己的基于零的索引,并按VisOrder进行排序。

选择CONVERT(INT,Row_Number()Over(ORDER BY VisOrder))ID,* FROM RDR1 WHERE DocEntry = 1

并将ID值传递到SetCurrentLine中。

注意
Edy

一周热门 更多>