SAP GUI画面で要素をリストに追加するスクリプトを作成しています。さて、実際に画面に表示されていない限り、SAP GUIを使用すると「存在しない」と思われるので、最初の手順ではリストの終わりを見つける必要があります。リストの終わりを検出するアルゴリズム(SAP GUI)
これは、各要素をスクロールして空白になっているかどうかを確認することで実現しました。
Do While Not blank
If session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010/ctxtMAPL-MATNR[2,0]").Text = "" Then blank = True
session.findById("wnd[1]/usr/tblSAPLCZDITCTRL_4010").verticalScrollbar.Position = i
i = i + 1
Loop
しかし、非常に大きな既存のリストの場合、これには長い時間がかかります。私はより早く終わりを見つける方法を見つけようとしています。私が知っているいくつかの真実/限界:
- 私はリストの長さを知らないと思います。
verticalScrollbar.position
の末尾をあまりにも超えてコマンドを実行することはできません
リストの末尾です。例えば、リストに62個の要素が含まれている場合、.verticalScrollbar.Position = 100
は機能しません。- 上記の例の場合、SAPはエラーをスローしません。まったく何も起こらず、次のコード行が実行されます。
- 要素に対するすべての参照は、画面上の位置に関するものです。私は5つの位置を下にスクロールする場合例は、全体的なリストの第六の要素は、実際に一方1.
- としてインデックスう、
verticalScrollbar.Position
は、私は、次の(非常にやってと思ってい
絶対的です擬似コード):
i = 0
do while scrolled = true
scrolled = false
a = GUIlist[0]
verticalScrollbar.Position = i + 1000
b = GUIlist[0]
'check to see the first element shown has changed
if a <> b then
scrolled = true
i = i + 1000
end if
loop
do while scrolled = true
scrolled = false
a = GUIlist[0]
verticalScrollbar.Position = i + 500
b = GUIlist[0]
if a <> b then
scrolled = true
i = i + 500
end if
loop
...というように、私は一つi
を反復していますまで。
この種の「検索」の一般的に受け入れられているより良い方法はありますか? すべての入力を感謝します。 おかげ