MostraErro() nao mostra nada

Pessoal, estou usando o compando a seguir



    If lMsErroAuto
                _lErroArq := .T.
                //If (!IsBlind()) // com interface gráfica
                if !_lAuto
                    MostraErro()
                endif

porem ao importar varios arquivos aparece uma tela de erro com nenhum conteudo. Eu descobi o motivo, eram por exemplo um codigo de vendedor onde o mesmo estava bloqueado e um outro campo onde o F3 nao encontrava referencia. MAS minha duvida é, porque a tela do mostraerro nao mostrou nada ? por exemplo, venededor bloqueado, como mostrar essa mensagem nessa tela ?

Verifica o seu codigo, normalmente isso ocorre quando esquecemos de se setar a variavel lMSErroAuto para false antes do MSExecAuto().

Eu sempre faço desta forma, mesmo que seja um único execauto ou em um loop, para garantir.


lMSErroAuto := .F.
MSExecAuto(...)
If lMsErroAuto
   MostraErro()
EndIf

ola, ja esta com .f.

Dentro do IF em alguns caso eu uso: aErro := GetAutoGRLog()

Dai ele retorna o erro coletado. Você pode debugar e depois de entrar no IF do erro chamar essa função.

Não esqueça de declarar o lMsErroAuto como privado.

Bom dia, Já peguei o mesmo caso porém no módulo GPE e era problema no código fonte do produto, onde o desenvolvedor passou o erro para uma variável e devolveia outra(erro de digitação) Ocorreu na chamada de um Execauto, então vale a pena abertura de chamado no suporte.

Segue um exemplo do que eu costumo fazer, sempre funciona.


    Private lMsErroAuto := .F.
    Private lMsHelpAuto := .F.
    Private lAutoErrNoFile:= .T.

 // EXECAUTO etc ...

    If lMsErroAuto

        aLogAuto := GetAutoGrLog()

        For nAux:=1 To Len(aLogAuto)

            cRetorno += aLogAuto[nAux] + Chr(13)+Chr(10)

        Next
    EndIf

Return cRetorno