簡體   English   中英

如何使用 VBA 從 SAP GUI 窗口讀取所有數據

[英]How to read all data from SAP GUI window with VBA

我正在嘗試自動化 T-Code-VA03。 我在采購訂單編號文本框中輸入采購訂單編號,然后按F8

屏幕 1

這會提示一個包含多行標簽的窗口。

屏幕 2

我的要求是,我想選擇日期最晚的那個。 我試圖記錄它的腳本和代碼下方。

session.findById("wnd[0]/usr/txtRV45S-BSTNK").text = "123456789"
session.findById("wnd[0]/usr/txtRV45S-BSTNK").setFocus
session.findById("wnd[0]/usr/txtRV45S-BSTNK").caretPosition = 8
session.findById("wnd[0]").sendVKey 8
session.findById("wnd[1]/usr/lbl[49,6]").setFocus
session.findById("wnd[1]/usr/lbl[49,6]").caretPosition = 0

我可以看到有帶索引的標簽。 如何遍歷整個窗口並將焦點移到最新日期的行?

使用 VB 腳本,您可以嘗試以下操作:

. . .
session.findById("wnd[0]").sendVKey 8
for i = 6 to 99
 on error resume next
 session.findById("wnd[1]/usr/lbl[49," & cstr(i) & "]").setFocus
 if err.number <> 0 then Exit for
 on error goto 0
 session.findById("wnd[1]/usr/lbl[49," & cstr(i) & "]").caretPosition = 0
next 

問候, ScriptMan

如果您確實需要執行諸如遍歷窗口並將焦點移至最新日期的行之類的操作,請不要使用 VBA 來執行此操作,因為您可能會遇到很多問題。

說了上面的那個,嘗試使用 sendkeys https://msdn.microsoft.com/en-us/vba/excel-vba/articles/application-sendkeys-method-excel並發送TAB 然后在您的表單中創建一個搜索“項目”的代碼。 在此之后,發送標簽 8 次以轉到PO Date 在清單上寫下日期。 再次發送 TAB 11 次到下一個日期。 把它寫在清單上。 就這樣,直到沒有更多的日期。

無論如何,正如我所提到的,這不是一個很好的解決方案。 最好的方法是簡單地要求數據庫管理員對數據庫或自定義視圖進行只讀訪問。 有了它,您可以制作一個強大的解決方案,它讀取最新的日期。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM