Tempo de leitura: 1 minuto
Olá, hoje iremos ver um exemplo de como utilizar o ponto de entrada OM200OK, esse ponto de entrada é executado antes da montagem da carga(rotina OMSA200), permitindo que o usuário para gerar a carga ou não, dependendo do retorno desse ponto de entrada.
O retorno dessa ponto de entrada é um valor lógico, caso retorne TRUE(.T.) o processo da montagem da carga será executado normalmente, caso retorne FALSE(.F.) não será montado a carga.
/*
www.protheusadvpl.com.br
Ponto de Entrada executado antes da montagem da carga
Autor:Adilio Costa
Data:03/05/2018
*/
#Include "Protheus.ch"
#Include "TopConn.ch"
#Define QUE_LIN Chr(13)+Chr(10)
User Function OM200OK()
Local aPedidos := PARAMIXB[01]
Local aSelPed := {}
Local cMens := "O(s) seguinte(s) pedido(s) vai(ão) ser(em) entregue(s) na fábrica:"+QUE_LIN
Local nNum := 0
Local nRet
Local lRet := .T.
Local lCont1 := .T.
Local lCont2 := .F.
For nNum := 1 To Len(aPedidos)
nRet := POSICIONE("SC5",1,xFilial("SC5")+aPedidos[nNum][5],"C5_YRETIRA")
If(nRet == "P")
lCont1 := .F.
aadd(aSelPed,aPedidos[nNum][5])
Else
lCont2 := .T.
EndIf
Next
If(!lCont1 .AND. lCont2)
if( len(aSelPed)>0 )
For nNum := 1 To Len(aSelPed)
if(nNum == 5)
cMens += QUE_LIN
EndIf
cMens += aSelPed[nNUM]
if((nNum+1) <= Len(aSelPed))
cMens += ","
EndIf
Next
cMens += QUE_LIN
cMens += "Deseja Continuar?"
lRet := MsgYesNo(cMens,"Atenção!")
EndIf
Endif
Return lRet
Bem, assim finalizamos mais um post aqui do blog/site ProtheusAdvpl, espero que tenha entendido e lhe ajudado. Qualquer dúvida deixe seu comentário ou nos envie um email para adiliocosta@protheusadvpl.com.br.
Grande abraço e fica com Deus.