脚本无法访问子菜单

2020-08-19 19:56发布

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

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


我无法通过脚本访问子菜单。 甚至我都使用精确记录的代码。

当我尝试访问子菜单时,出现"无法通过ID找到控件"错误。

使用VBA调试,对象确实没有子级(子菜单),但应该具有子级。

wnd [0]/mbar/menu [0]是" Lista"顶部菜单。

wnd [0]/mbar/menu [0]/menu [1]是"导出"二级菜单。

wnd [0]/mbar/menu [0]/menu [1]/menu [2]是" File local ..."目标菜单。

这是一些配置错误吗?

(17.4 kB)

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

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


我无法通过脚本访问子菜单。 甚至我都使用精确记录的代码。

当我尝试访问子菜单时,出现"无法通过ID找到控件"错误。

使用VBA调试,对象确实没有子级(子菜单),但应该具有子级。

wnd [0]/mbar/menu [0]是" Lista"顶部菜单。

wnd [0]/mbar/menu [0]/menu [1]是"导出"二级菜单。

wnd [0]/mbar/menu [0]/menu [1]/menu [2]是" File local ..."目标菜单。

这是一些配置错误吗?

(17.4 kB)
付费偷看设置
发送
5条回答
野沐沐
1楼-- · 2020-08-19 20:42

您好,Eduardo,

欢迎使用SAP社区。

您的代码...

设置teste = session.findById("/img/app/con  [0]/ses [0]/wnd [0]/mbar/menu [0]")
 

...必须抛出错误,因为session =/app/con [0]/ses [0],并且您想在会话中找到/app/con [0]/ses [0 ]。 从您的ID中删除/app/con [0]/ses [0],它应该可以使用。

设置teste = session.findById(" wnd [0]/mbar/menu [0]")

最诚挚的问候
Stefan

樱桃小丸子0093
2楼-- · 2020-08-19 20:40

"会话"对象应指向与" app/con [0]/ses [0]"相同的会话。

否则,将引发错误。

您可以验证吗?

如果未指向同一会话,则以下代码将成功(替换yourapp 与您的GuiApplication对象):

设置会话= yourapp.findById("/img/app/con [0]/ses [0]")
 session.findById(" wnd [0]/mbar/menu [0]/menu [1]/menu [2]")。选择
 
当学会了学习
3楼-- · 2020-08-19 20:41

我认为"会话"对象是正确的,因为我可以访问所有其他GUI组件。

问题仅与菜单栏的子项有关。

此代码效果很好,并从第一张图片开始显示顶部菜单(" Lista")。

 session.findById(" wnd [0]/mbar/menu [0]")

但是,当我尝试到达某个孩子时,它不起作用,例如:

 session.findById(" wnd [0]/mbar/menu [0]/menu [1]/menu [2]")。选择

此行应返回" File Local ..."项。

访问其他GUI组件效果很好,例如:

 session.findById(" wnd [0]/usr/ctxt [34]")。Text = CENTRO
 session.findById(" wnd [0]/usr/ctxt [36]")。Text = DEPOSITO
 session.findById(" wnd [0]/usr/ctxt [120]")。Text ="/img/MARQUEZ" 
CPLASF-自律
4楼-- · 2020-08-19 20:37

我真的看不到是什么问题。 它对我来说很好(使用VBS)。 我猜某个地方有个错误...

您能诊断出这种代码在做什么,以查看错误在哪里:

 MsgBox CStr(session.findById(  " wnd [0]/mbar")。Children.Count)
 MsgBox session.findById(" wnd [0]/mbar/menu [0]")。text
 MsgBox session.findById(" wnd [0]/mbar/menu [0]/menu [1]")。text
 MsgBox session.findById(" wnd [0]/mbar/menu [0]/menu [1]/menu [2]")。text 
槿木_熙
5楼-- · 2020-08-19 20:36

代码

设置teste = session.findById("/img/app/con [0]/ses [0]/wnd [0]/mbar/menu [0]")

在 我的系统(尽管使用绝对路径是不合逻辑的,因为使用相对路径" wnd [0]/..."更短且更易读)。

一周热门 更多>