Python脚本:访问网格中特定列中的行

2020-08-23 12:44发布

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

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


嗨,

我正在尝试访问网格中特定列中的行值,并且不允许我选择相同的行并将其复制到新变量中。 下面是我的python脚本。

session.findById(" wnd [0]")。maximum session.findById(" wnd [0]/usr/txtRSYST-BNAME")。Text =用户名session.findById(" wnd [0]/usr/pwdRSYST -BCODE")。Text =密码session.findById(" wnd [0]")。sendVKey(0)session.findById(" wnd [0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont [0]/shell") .selectedNode =" 0000000077" session.findById(" wnd [0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont [0]/shell")。doubleClickNode(" 0000000077")session.findById(" wnd [0]") .sendVKey(2)session.findById(" wnd [0]/usr/txtP_BR")。Text = brs session.findById(" wnd [0]/usr/ctxtS_DISBDT-LOW")。text =" 07/01/2019 " session.findById(" wnd [0]/usr/ctxtS_DISBDT-HIGH")。text = to_day session.findById(" wnd [0]/usr/ctxtS_IMPDT-LOW")。text =" 07/01/2019" session .findById(" wnd [0]/usr/ctxtS_IMPDT-HIGH")。text =当天会话.findById(" wnd [0]")。sendVkey(8)grid = session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")

如果grid.rowCount> = 1:grid.SelectedRows = str(myRow)grid.setCurrentCell(myRow," ZCOMMENTS")grid.doubleClickCurrentCell

如果grid.SetCurrentCell(myRow," ZCOMMENTS)==" Impound"

打印(正确)

其他:

print(False)

我无法打印它,因为选择了该行。

这是SAP GUI中的记录。

如果不是IsObject(application),则

设置SapGuiAuto = GetObject(" SAPGUI")设置应用程序= SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= application.Children(0)

如果结束

如果不是IsObject(session),则

设置会话= connection.Children(0)

如果结束

如果IsObject(WScript)然后

WScript.ConnectObject会话,"开启"

WScript.ConnectObject应用程序,"打开"

如果结束

session.findById(" wnd [0]")。maximize

session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。currentCellColumn =" ZCOMMENTS" session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。clearSelection会话 .findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。doubleClickCurrentCell session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。contextMenu

如何检查值是否存在并将其复制,然后循环到下一行。

此致

人。

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

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


嗨,

我正在尝试访问网格中特定列中的行值,并且不允许我选择相同的行并将其复制到新变量中。 下面是我的python脚本。

session.findById(" wnd [0]")。maximum session.findById(" wnd [0]/usr/txtRSYST-BNAME")。Text =用户名session.findById(" wnd [0]/usr/pwdRSYST -BCODE")。Text =密码session.findById(" wnd [0]")。sendVKey(0)session.findById(" wnd [0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont [0]/shell") .selectedNode =" 0000000077" session.findById(" wnd [0]/usr/cntlIMAGE_CONTAINER/shellcont/shell/shellcont [0]/shell")。doubleClickNode(" 0000000077")session.findById(" wnd [0]") .sendVKey(2)session.findById(" wnd [0]/usr/txtP_BR")。Text = brs session.findById(" wnd [0]/usr/ctxtS_DISBDT-LOW")。text =" 07/01/2019 " session.findById(" wnd [0]/usr/ctxtS_DISBDT-HIGH")。text = to_day session.findById(" wnd [0]/usr/ctxtS_IMPDT-LOW")。text =" 07/01/2019" session .findById(" wnd [0]/usr/ctxtS_IMPDT-HIGH")。text =当天会话.findById(" wnd [0]")。sendVkey(8)grid = session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")

如果grid.rowCount> = 1:grid.SelectedRows = str(myRow)grid.setCurrentCell(myRow," ZCOMMENTS")grid.doubleClickCurrentCell

如果grid.SetCurrentCell(myRow," ZCOMMENTS)==" Impound"

打印(正确)

其他:

print(False)

我无法打印它,因为选择了该行。

这是SAP GUI中的记录。

如果不是IsObject(application),则

设置SapGuiAuto = GetObject(" SAPGUI")设置应用程序= SapGuiAuto.GetScriptingEngine

如果结束

如果不是IsObject(连接),则

设置连接= application.Children(0)

如果结束

如果不是IsObject(session),则

设置会话= connection.Children(0)

如果结束

如果IsObject(WScript)然后

WScript.ConnectObject会话,"开启"

WScript.ConnectObject应用程序,"打开"

如果结束

session.findById(" wnd [0]")。maximize

session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。currentCellColumn =" ZCOMMENTS" session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。clearSelection会话 .findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。doubleClickCurrentCell session.findById(" wnd [0]/usr/cntlGRID1/shellcont/shell")。contextMenu

如何检查值是否存在并将其复制,然后循环到下一行。

此致

人。

付费偷看设置
发送
3条回答
愤怒的猪头君
1楼 · 2020-08-23 13:10.采纳回答

Hello Renato,

欢迎使用SAP社区。

尝试使用此方法遍历网格并找到正确的条目:

 cntRows = session  .findById(" wnd [0]/usr/cntlBCALVC_EVENT1_CONT1/shellcont/shell")。RowCount
     我= 0
     而我 

我在ALV网格中的此SFLIGHT表上循环,如果货币为USD,则会打印行号。

最诚挚的问候
Stefan

小熊yu生菜
2楼-- · 2020-08-23 13:08

Hello Joel,

在SAP中欢迎您 社区。

尝试使用方法SetCurrentCell,它具有相同的参数。

最好的问候
Stefan

能不能别闹
3楼-- · 2020-08-23 13:11

您好,Stefan。
请问您可以建议在Java中执行相同的操作。 我尝试使用
Obj = new ActiveXComponent(Session.invoke(" findById"," Shellid");

Variant V = Obj.getProperty(" RowCount");
但是不起作用。
* Shellid只是实际对象ID的表示形式:)

谢谢

维萨尔

一周热门 更多>