Versão atual:

MSExecAuto em loop

Ola!

Fiz um MsExecAuto da rotina fina100, no qual ela é alimentada com dados de uma tabela customizada. O Execauto funciona bem o problema é que ele não finaliza, entra em loop e fica incluindo vários registros sem parar. Debuguei e vi que ele passa pelo exec, vai pro return e volta pra função novamente, a que chama o exec. Quem puder ajudar agradeço muito.

segue o fonte:

include 'protheus.ch'

user function ESFINA03()

local aArea := GetArea()

Private cCadastro := "Movimentos Bancarios" Private aRotina := {} Private aCores := {}

AADD(aRotina,{"Visualizar" ,"AxVisual" ,0,2}) AADD(aRotina,{"Revisado" ,"U_REVISADO01",0,3}) AADD(aRotina,{"Legenda" ,"U_LEGENDA" ,0,6})

AADD(aCores, {"ZZB_STATUS = 'R'","BR_PRETO"}) AADD(aCores, {"ZZB_TIPOOP = 'P'","BR_AZUL"}) AADD(aCores, {"ZZB_TIPOOP = 'R'","BR_VERDE"})

DbSelectArea("ZZB") ZZB->(DbSetOrder(1))

mBrowse( 6,1,22,75,"ZZB",,,,,,aCores)

ZZB->(DbCloseArea()) RestArea(aArea)

return

User Function LEGENDA()

local aLegenda := {}

AADD(aLegenda, {"BR_VERDE" ,"A Receber"}) AADD(aLegenda, {"BR_AZUL" ,"A Pagar"}) AADD(aLegenda, {"BR_PRETO" ,"Revisado"})

BrwLegenda("Checagem","Legenda",aLegenda)

return

User Function REVISADO01() Local nRecno := ZZB->(RecNo()) Local aRotAuto := {} Local nOpc := 3 Local filial Local ddata Local moeda Local valor Local natur Local banc Local agen Local conta Local docm Local histo Local loja

Private lMsHelpAuto := .t. Private lMsErroAuto := .f.

ZZB->(DbGoTo(nRecNo))

filial := ZZB->ZZB_FILIAL ddata := ZZB->ZZB_DATA moeda := ZZB->ZZB_MOEDA valor := ZZB->ZZB_VALOR natur := ZZB->ZZB_NATUR banc := ZZB->ZZB_BANC agen := ZZB->ZZB_AGEN conta := ZZB->ZZB_CONTA docm := ZZB_DOCM histo := ZZB_HISTO loja := ZZB_LOJA

nOpc := iif(ZZB->ZZB_TIPOOP == "P", 3, 4 )

Begin Transaction aRotAuto:= {{'E5_FILIAL' ,filial ,Nil},; {'E5_DATA' ,ddata ,Nil},; {'E5_MOEDA' ,moeda ,Nil},; {'E5_VALOR' ,valor ,Nil},; {'E5_NATUREZ' ,natur ,Nil},; {'E5_VENCTO' ,ddata ,Nil},; {'E5_BANCO' ,banc ,Nil},; {'E5_AGENCIA' ,agen ,Nil},; {'E5_CONTA' ,conta ,Nil},; {'E5_DOCUMEN' ,docm ,Nil},; {'E5_HISTOR' ,histo ,Nil},; {'E5_LOJA' ,loja ,Nil} }

MSExecAuto({|x,y,z| FINA100(x,y,z)},0,aRotAuto,nOpc)

If lMsErroAuto DisarmTransaction() Mostraerro() else ZZB->(RecLock("ZZB", .F.) ) ZZB->ZZB_STATUS := "R" ZZB->ZZB_DTREV := dDataBase ZZB->(MsUnlock()) EndIf

End Transaction

Return

Versão (1):

Ver a versão formatada

MSExecAuto em loop

Comentário

new question