满足条件时,在while循环中将行值设置为上一个值

时间:2019-10-22 12:45:48

标签: python-3.x sap-gui

如果条件满足,我试图将行值重新设置为上一行。满足条件后,将删除现有行。

for b in BR:
while i < cntRows:
    rowValue= session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").GetCellValue(i,"ZCOMMENTS")
    print(rowValue)
    if rowValue!="Orphan Impound":
        if debitAmt==disRcvAmt:
            impMatch="Dollar Amount Matched"
            session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").currentCellRow=i
            session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows=i
            session.findById("wnd[0]/tbar[1]/btn[13]").press()
            i-=1
        else:
            i+=1
continue

当我使用i- = 1时,当它返回上一行时,代码崩溃;当行计数器为0时,它需要转到b中的下一项。

在这两种情况下如何停止崩溃。

感谢Ren

1 个答案:

答案 0 :(得分:0)

找出解决方案并通过添加此部分来停止崩溃

cntRow=session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").RowCount
if cntRow <0:
    session.findById("wnd[0]").sendVKey(3)
    session.findById("wnd[0]").sendVKey(2)
    break
elif cntRow==i:
    break
elif cntRow>0:
    if k<0:
       i=-1
    else:
       i==k