Home

Linha Microsiga Protheus

Páginas filhas
  • Exemplo de Rotina Automática - Lançamentos Mensais - GPEA090

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Esta rotina automática tem a finalidade de efetuar inclusãoincluir/alteraçãoalterar/exclusãoexcluir dedos Lançamentos Mensais.Basicamente, naAo chamadaexecutar daa rotina GPEA090, deverãodevem ser informados 2 arrays:1)  aCabec   -> Corresponde aos dados da tabela SRA - Funcionários.         Sintaxe: { {"RA_FILIAL", conteudo1, NIL},; {"RA_MAT", conteudo2, NIL} }    2)  aItens   -> Corresponde aos dados a serem incluidosincluídos/deletados da tabela SRC - Movimentos Mensais.    
A rotina GPEA090 possui parâmetros a serem informados, porém para o funcionamento em MsExecAuto. O primeiro parâmetro necessita ser preenchido como um array, pois as informaçoes utilizadas neste array são essenciais para a conclusão do processo.

User

Function

GP090INC()

Local

aCabec  

 :=

{}

Local

aItens  

 :=

{}

 
PRIVATE lMsErroAuto := .F.
aCabec   := {}
    aadd(aCabec,{"RA_FILIAL"  ,"01"  ,Nil  })
    aadd(aCabec,{"RA_MAT"     ,"000001" ,Nil  })
 
aItens := {}
    aadd(aItens,{"RC_FILIAL"    , "01"               , Nil })
    aadd(aItens,{"RC_MAT"       , "000001"           , Nil })
    aadd(aItens,{"RC_PD"         , "001"                , Nil })
    aadd(aItens,{"RC_TIPO1"       , "MARIA DA SILVA"     , Nil })
    aadd(aItens,{"RC_HORAS"     , "100,00"             , Nil })
    aadd(aItens,{"RC_VALOR"      , "3,252.27"        , Nil })
    aadd(aItens,{"RC_DATA"         , Ctod("31/01/12")     , Nil })
    aadd(aItens,{"RC_CC"          , "1011"            , Nil })
    aadd(aItens,{"RC_PARCELA"      , "01"                , Nil })
MsExecAuto( { |x,y| GPEA090(x,y)} ,NIL ,aCabec ,aItens ,3 )  // 3 - Inclusao, 4 - Alteração, 5 - Exclusão  
If lMsErroAuto     
    MostraErro()
Else     
    Alert("Registro(s) Incluído(s) !!!")      
EndIf
 
Return()
//-- Opcao 4 - Altera
USER FUNCTION GP090ALT()
Local aCabec    := {}
Local aItens    := {}
 
PRIVATE lMsErroAuto := .F.
 
aCabec   := {}
  

Local aItensFinal := {} //agrupador de itens

 

PRIVATE lMsErroAuto := .F.

aCabec   := {}

    aadd(aCabec,{"RA_FILIAL" 

,"01" 

,Nil 

})

  

 aadd(aCabec,{"RA_MAT"

  

     ,"000001"

,Nil 

})

 

aItens

:=

{}

  

 aadd(aItens,{{"RC_FILIAL"

    

,

"D MG 01" 

   

   

   

  ,

Nil

}

)

,;

    aadd(aItens,

{"RC_MAT" 

   

  ,

"000001" 

   

   

  ,

Nil

}

)    aadd(aItens,

,;

{"RC_PD"   

   

  ,

"001"  

   

   

     

   ,

Nil

}

)

,;

    aadd(aItens,

{"RC_TIPO1" 

   

 

,

"

MARIA DA SILVA"   

V"   ,

Nil

}

)

,;

    aadd(aItens,

 

{"RC_HORAS"

  

 

,

"100,00"             , Nil })    aadd(aItens,

100.00              , Nil },;

{"RC_VALOR"

   

 , "3,252.27"        , Nil })    aadd(aItens,

, 3252.27            , Nil },;

{"RC_DATA"

     

     

,

Ctod("31/

01/

12

")     , Nil })
    aadd(aItens,{"RC_CC"          , "1011"            , Nil })
    aadd(aItens,{"RC_PARCELA"      , "01"                , Nil })
MsExecAuto( { |x,y| GPEA090(x,y)} ,NIL ,aCabec ,aItens ,4 )  // 3 - Inclusao, 4 - Alteração, 5 - Exclusão
If lMsErroAuto
    MostraErro()
Else
    Alert("Alterada com sucesso!")
Endif
 
Return()
//-- Opcao 5 - Exclui      
USER FUNCTION GP090ALT()
Local aCabec    := {}
Local aItens    := {}
Local nX       := {}
 
PRIVATE lMsErroAuto := .F.
aCabec   := {}
    aadd(aCabec,{"RA_FILIAL"  ,"01"  ,Nil  })
    aadd(aCabec,{"RA_MAT"   ,"000001" ,Nil  })
 
aItens := {}
    aadd(aItens,{"RC_FILIAL"    , "01"               , Nil })
    aadd(aItens,{"RC_MAT"       , "000001"           , Nil })
    aadd(aItens,{"RC_PD"         , "001"                , Nil })
    aadd(aItens,{"RC_TIPO1"       , "MARIA DA SILVA"     , Nil })
    aadd(aItens,{"RC_HORAS"     , "100,00"             , Nil })
    aadd(aItens,{"RC_VALOR"      , "252.27"            , Nil })
    aadd(aItens,{"RC_DATA"         , Ctod("31/01/12")     , Nil })
    aadd(aItens,{"RC_CC"          , "1011"            , Nil })
    aadd(aItens,{"RC_PARCELA"      , "01"                , Nil })
 
 
MsExecAuto( { |x,y| GPEA090(x,y,)} ,NIL ,aCabec ,aItens ,5 )  // 3 - Inclusao, 4 - Alteração, 5 - Exclusão
For nX:=1 to Len(aItens)            
    aLinha:=aItens[nX]          
    lRet:= ("Deseja Excluir. Confirmar (S)im / (N)não ? ")     //-- Chama rotina para Excluir  (opcao 5)               
    MSExecAuto({|x,y| GPEA090(x,y)},NIL,aCabec,{aLinha},5)  
    
    //-- Opcao 5 - Elimina registro               
    If lMsErroAuto                    
        MostraErro()            
    Else                    
        Alert("Registro Eliminado !!!")               
    Endif
Next nX
 
EndIf
 
Return()

/13")  , Nil },;

{"RC_CC"         , "000000101"         , Nil },;

{"RC_PARCELA" , "01"               , Nil }})

 

MsExecAuto({|w,x,y,z| GPEA090(w,x,y,z)} ,4 ,aCabec, aItens,4 ) // 4 - Inclusão, 4 - Alteração, 5 - Exclusão

If lMsErroAuto     

    MostraErro()

Else     

    Alert("Registro(s) Alterado(s) !!!")      

EndIf

Return()