带有GUIScripting的Excel VBA-对于每个元素

2020-08-19 14:54发布

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

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


大家好,

我不确定我是否在正确的平台上问这个问题。

1)我想知道在语法的相应属性或函数上是否可以读取任何地方。

例如,session.findById(" wnd [0]")。maximize,我从脚本记录的输出中提取了此信息,我想知道,那里还有什么其他功能,或者findById是唯一的功能?

2)我还想检查一下是否可以使用VBA遍历SAPGUI中的所有元素并返回一个值。

例如

将X视作对象

对于会话中的每个X。

如果X.Text ="新条目",则

....

如果结束

....

我的目标是确定元素是否存在于屏幕上或仍在加载中。

致谢

大卫

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

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


大家好,

我不确定我是否在正确的平台上问这个问题。

1)我想知道在语法的相应属性或函数上是否可以读取任何地方。

例如,session.findById(" wnd [0]")。maximize,我从脚本记录的输出中提取了此信息,我想知道,那里还有什么其他功能,或者findById是唯一的功能?

2)我还想检查一下是否可以使用VBA遍历SAPGUI中的所有元素并返回一个值。

例如

将X视作对象

对于会话中的每个X。

如果X.Text ="新条目",则

....

如果结束

....

我的目标是确定元素是否存在于屏幕上或仍在加载中。

致谢

大卫

付费偷看设置
发送
3条回答
Aaron 3364
1楼-- · 2020-08-19 15:35

这是一个与GUI没有直接关系的块,而是在登录过程中用于检索登录面板中的系统列表的。

每个循环都有一些。

功能SAPUILandscape(系统)

     Dim fpath作为字符串
     昏暗的sapfiles作为字符串
     SAPUILandscapefile昏暗为字符串
     Dim ConnString作为字符串
     变体变暗
     Dim isValid为布尔型
     昏暗测试为布尔
     Dim AttribName作为字符串
     Dim AttribServer作为字符串
     昏暗的CurrentXpath作为字符串
     昏暗的xmlDoc为MSXML2.DOMDocument60
     昏暗的xmlSelection为MSXML2.IXMLDOMSelection
     昏暗的xmlAttributes为MSXML2.IXMLDOMNamedNodeMap
     昏暗的xmlItems作为MSXML2.IXMLDOMAttribute

     设置xmlDoc = New MSXML2.DOMDocument60
     测试=错误
    
     'xml结构
     AttribName ="名称"
     AttribServer ="服务器"
     'alt AttribTag =" systemid"
     CurrentXpath ="//Landscape/Services/Service [@"&AttribName&" ='"&system&"']"
    
     '找到SAPUILandscape.xml
     fpath = Environ $(" AppData")
     sapfiles =" SAP \ Common \"
     SAPUILandscapefile =" SAPUILandscape.xml"

     如果Right(fpath,1)<>" \"然后
         fpath = fpath&" \"
     万一
     fpath = fpath和sapfiles和SAPUILandscapefile

     xmlDoc.async = False
    
     如果xmlDoc.Load(fpath)然后
         '成功加载了xml
         设置xmlSelection = xmlDoc.SelectNodes(CurrentXpath)
         如果xmlSelection.Length = 0,则
             '找不到路径
             isValid = False
         其他:
             设置xmlAttributes = xmlSelection.Item(0).Attributes
             对于xmlAttributes中的每个xmlItem
                 如果xmlItems.BaseName = AttribServer然后
                     ConnString = xmlItems.NodeValue
                     isValid = True
                     退出
                 万一
             下一个xmlItems

         万一
    
     其他:
         如果测试= True,则
             '文档加载失败。
             昏暗的strErrText作为字符串
             昏暗的xPE作为IXMLDOMParseError
             '获取ParseError对象
             设置xPE = xmlDoc.parseError
             使用xPE
                 strErrText ="您的XML文档无法加载"&_
                   "由于以下错误。"  &vbCrLf&_
                   "错误#:"&.ErrorCode&":"&xPE.reason&_
                   "行号:"和.Line和vbCrLf和_
                   "行位置:"&.linepos&vbCrLf&_
                   "文件中的位置:"&.filepos&vbCrLf&_
                   "源文本:"&.srcText&vbCrLf&_
                   "文档URL:"和.Url
             结束于
            
             MsgBox strErrText,vbExclamation
             isValid = False
         其他:
             isValid = False
        
         万一
        
     万一

     如果isValid = True,则
         在景观中找到联系
         SAPUILandscape = formatConnString(ConnString)
        
     其他:
         '在景观中找不到连接
         SAPUILandscape =""
        
     万一

 结束功能

 

对于SAP gui,我没有一个快速提供帮助的示例,但是您可以将变量声明为特定类型,然后可以为每个子对象循环

 Dim tobj作为SAPFEWSELib.GuiTableControl
     昏暗的tObjChild为SAPFEWSELib.GuiComponentCollection 

然后为每个循环

对于tObj中的每个tObjChild
 '逻辑在这里
 下一个tObjChild
 
Nir深蓝
2楼-- · 2020-08-19 15:31
CJones
3楼-- · 2020-08-19 15:35

我设法找到了SAP GUI脚本帮助文件和sapfewse.ocx。

但是我真的很想学习如何在SAP中遍历元素/对象

一周热门 更多>