如何通过查询表查找和执行给定查询。 可见行出现问题。

2020-09-15 08:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中) 大家好! ...

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

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




大家好! 我最近开始使用SAP Easy Access,并且正在尝试开发一个类似于Excel VBA中的宏的代码以自动执行特定查询。 我的问题是在查询表中找到所需的查询。 我尝试了 getRow 方法, getAbsoluteRow 。 后者没有用,因为在搜索之前我必须知道所需的查询索引,并且在添加新查询时该索引始终会更改。 而且我还有一个问题,就是只使行的索引可见。 例如,如何浏览整个表以查询所需的查询并返回其名称或索引?下面是我使用 scritp记录创建的代码。 但是,它没有用,因为所需的查询索引始终会更改(以粗体显示)

这是我的第二篇文章,因为我相信上一篇文章并不清楚。 我尝试了各种方法来从已解决的问题中获取信息,但是我尝试的所有方法均无效。

感谢您的支持!

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

Session.findById(" wnd [0]/tbar [0]/okcd")。Text ="/img/npaah"

Session.findById(" wnd [0]")。sendVKey 0

Session.findById(" wnd [0]/tbar [1]/btn [6]")。按

Session.findById(" wnd [1]/usr/cmbDYNP4300-DD_WORKSPACE")。SetFocus

Session.findById(" wnd [1]/usr/cmbDYNP4300-DD_WORKSPACE")。Key =" 1"

Session.findById(" wnd [1]/usr/cmbDYNP4300-DD_USERGROUP")。SetFocus

Session.findById(" wnd [1]/usr/cmbDYNP4300-DD_USERGROUP")。Key =" 102"

Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES")。verticalScrollbar.Position = 2835

Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES")。getAbsoluteRow(2837).Selected = True

Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES/txtDYNP4300_TC_QUERIES-NAME [0,2]")。SetFocus

Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES/txtDYNP4300_TC_QUERIES-NAME [0,2]")。caretPosition = 0

Session.findById(" wnd [1]/tbar [0]/btn [0]")。按

Session.findById(" wnd [0]/shellcont [0]/shell")。pressToolbarButton" GET_DATA"

Session.findById(" wnd [0]/shellcont [0]/shell")。pressToolbarContextButton"&MB_EXPORT"

Session.findById(" wnd [0]/shellcont [0]/shell")。selectContextMenuItem"&XXL"

Session.findById(" wnd [1]/usr/ctxtDY_PATH")。Text =" P:\ Desktop \ Test"

Session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。Text =" test.XLSX"

Session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。caretPosition = 13

Session.findById(" wnd [1]/tbar [0]/btn [11]")。按

(63.9 kB)
4条回答
小灯塔
2020-09-15 08:47

你好让卡洛,

不幸的是,我不使用查询,但是您可以尝试以下操作。

例如:

。  。  。
 'Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES")。verticalScrollbar.Position = 2835
 'Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES")。getAbsoluteRow(2837).Selected = True
 'Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES/txtDYNP4300_TC_QUERIES-NAME [0,2]")。SetFocus
 'Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES/txtDYNP4300_TC_QUERIES-NAME [0,2]")。caretPosition = 0

 myQuery =" UDI-RT-FUNC01"
 myPosition = 2837
 j = 0

 做
   设置tTableID = Session.findById(" wnd [1]/usr/tblSAPLAQ_INT_FUNCTIONSTCH_OPEN_QUERIES")
   如果j = 0,则tTableID.VerticalScrollbar.Position = myPosition
   VisibleRows = tTableID.VisibleRowCount
   对于i = 0到VisibleRows-1
     关于错误继续
     myVariable = tTableID.GetCell(i,0).text
     如果Err.Number <> 0然后退出
     出错时转到0
     如果myVariable = myQuery,则退出
   下一个
   如果Err.Number <> 0或myVariable = myQuery,然后退出
   tTableID.VerticalScrollbar.Position = tTableID.VerticalScrollbar.Position + VisibleRows
   j = j + 1
 循环

 如果myVariable = myQuery,则
    Session.findById(" wnd [1]/tbar [0]/btn [0]")。press
    Session.findById(" wnd [0]/shellcont [0]/shell")。pressToolbarButton" GET_DATA"
    Session.findById(" wnd [0]/shellcont [0]/shell")。pressToolbarContextButton"&MB_EXPORT"
    Session.findById(" wnd [0]/shellcont [0]/shell")。selectContextMenuItem"&XXL"
    Session.findById(" wnd [1]/usr/ctxtDY_PATH")。Text =" P:\ Desktop \ Test"
    Session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。Text =" test.XLSX"
    Session.findById(" wnd [1]/usr/ctxtDY_FILENAME")。caretPosition = 13
    Session.findById(" wnd [1]/tbar [0]/btn [11]")。press
 其他
    msgbox"找不到查询。",vbInformation," Information"
 万一

  
 

仅当出现新查询时,此注意事项才有效。 如果还可以删除现有查询,则还必须向后进行搜索。 就像我说的,所有这些仅仅是纯理论。 不幸的是,我无法对其进行测试。

此致

ScriptMan

一周热门 更多>