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