Recently, my IBM PCOMM had been upgraded at my job to version 12.0.0.1. Ever since, if I'm trying to detect blank space, and something was already there previously, that text will show up when I use autECLPS.GetText
even though all I see is black. I need a way to see if there is hidden text so I know I can go onto the next procedure. I've been using autECLPS.GetTextRect
to see if I can match entire blocks of text, but that's becoming tedious. Any suggestions?
UPDATED
Here's what I have so far:
ElseIf LineCount < 3 Then
' If we've gone through less than three lines, we need
' to determine if the next line is visible.
' ***************************************************************
' Due to IBM PCOMM changing their process from actually clearing
' screens when going from one to the next to changing the
' color of the previous data, there may be some ghost data
' present. This code checks to see if any previous data is
' hidden from view and determines whether or not to continue.
' ***************************************************************
If SMonth = EMonth Or SMonth <> EMonth And j > 1 And k > 1 Then
If ScreenName = "MHI" And EditWarnMsg = "E065NO MORE CLMS ON FILE," Then
Result = objUNET.autECLPS.GetTextRect(SvcLn1, 1, SvcLn3, 80)
If Left(Result, 2) = POS(j) And Trim(Mid(Result, 4, 6)) = Serv(j) And Trim(Mid(Result, 36, 2)) = RC(j) Then
Exit Do
ElseIf Left(Result, 2) = POS(j - 1) And Trim(Mid(Result, 4, 6)) = Serv(j - 1) And Trim(Mid(Result, 36, 2)) = RC(j - 1) Then
Exit Do
ElseIf Left(Result, 2) = POS(j - 2) And Trim(Mid(Result, 4, 6)) = Serv(j - 2) And Trim(Mid(Result, 36, 2)) = RC(j - 2) Then
Exit Do
ElseIf Left(Result, 2) = POS(j - 3) And Trim(Mid(Result, 4, 6)) = Serv(j - 3) And Trim(Mid(Result, 36, 2)) = RC(j - 3) Then
Exit Do
' If the initial If criteria renders ICN to not have been
' found, this will cause a range error. We want to resume
' on to the next process if such error occurs.
On Error Resume Next
ElseIf Trim(Mid(Result, 165, 10)) = ICN(k) And Trim(Mid(Result, 28, 10)) = Draft(k) Then
Exit Do
ElseIf Trim(Mid(Result, 165, 10)) = ICN(k - 1) And Trim(Mid(Result, 28, 10)) = Draft(k - 1) Then
Exit Do
On Error GoTo 0
Else
GoTo POSBlank
End If
End If
End If
End If
End If
After receiving advice from the talented people on SO, and doing a bit more research, I've changed my code to a solution that works. It's not much different from the original, but it's more reliable.