Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.


CONTEÚDO

  1. Visão Geral
  2. Exemplo de utilização
  3. Tabelas utilizadas


01. VISÃO GERAL

Implementação da rotina automática (ExecAuto) na rotina de cadastro de valores futuros (GPEA110)

...

Para informações sobre a estrutura do array aItens consulte a página http://tdn.totvs.com/x/bv1n 


02. EXEMPLO DE UTILIZAÇÃO


Bloco de código
languagevb
themeDJangoEclipse
firstline1
titleFonte Exemplo de Exemploinclusão
#Include 'Protheus.ch'

User Function Teste_Exec()

    Local aCab	:= {} 
    Local aItem	:= {}	
    Local aItens:= {}
    Local aLog 	:= {}

    Private lMsErroAuto := .F.
    
    Aadd(aCab, {"RA_FILIAL"	, "D MG 01 ",NIL})
    Aadd(aCab, {"RA_MAT"	, "000001"	,NIL})
    
    
    Aadd(aItem,{ "RK_PD" 			, "963"		,nil})
    Aadd(aItem,{ "RK_DOCUMEN"		, "999999"	,nil})
    Aadd(aItem,{ "RK_VALORTO"		, 5555.55	,nil})
    Aadd(aItem,{ "RK_PARCELA"		, 4			,nil})

    aAdd(aItens,aItem)

    MSExecAuto({|a, b, c| GPEA110(a, b, c) }, 3, aCab, aItens)

    If !lMsErroAuto
        ConOut("**** Incluido com sucesso! ****")
    Else
        aLog := getAutoGrLog()
        MostraErro()
        ConOut("Erro na Alteracao!")
    EndIf

Return aLog



Bloco de código
languagevb
themeEclipse
firstline1
titleExemplo de Exclusão/Alteração
#INCLUDE 'Protheus.ch'
#INCLUDE 'TBICONN.CH'
#Include 'FWMVCDef.ch'
#DEFINE CRLF Chr(13)+Chr(10)
 
User Function GPEA110_Exec()
 
    Local aCab  		:= {}
    Local aItem 		:= {}  
    Local aItens		:= {}
    Local aLog  		:= {}
    Local lOk      		:= .T.
    Local cMat    		:= "000001"
    Local cPd     		:= "001"
    Local cCcusto 		:= "000000001"
    Local cProces 		:= "00001"

    Private lMsErroAuto := .F.

    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "GPE" TABLES "SRK"

    SRK->(DBSETORDER( 1 )) //RK_FILIAL+RK_MAT+RK_PD+RK_CC+RK_PROCES

    If !SRK->(DBSEEK( xFilial("SRK") + cMat + cPd + cCcusto + cProces )) // Verifica se a verba existe
        lOk := .F.
        Alert("Não foi encontrado registro")
    ENDIF

    If lOk
        aAdd(aCab, {"RA_FILIAL" , "D MG 01 ",NIL})
        aAdd(aCab, {"RA_MAT"    , "000001"  ,NIL})

		// Para INCLUSÃO de um linha NOVA em um registro que já possua Lançamentos: não utilizar o LINPOS
		// Para ALTERAÇÃO de uma linha EXISTENTE: somente LINPOS e os campos que sofrerão alteração
        aAdd(aItem,{"LINPOS"    , "RK_PD"   , '001'})
        aAdd(aItem,{"RK_VALORTO", 15  		, nil})
		aAdd(aItens,aItem)
		aItem := {}
        // Para EXCLUSÃO: É necessário utilizar LINPOS e AUTDELETA
        aAdd(aItem,{"LINPOS"    , "RK_PD+RK_DOCUMEN"   , '001','000003' }) // É possí­vel utilizar qualquer campo ou combinação de campos que identifique o registro que se deseja alterar/excluir
		aAdd(aItem,{"AUTDELETA" , "S"       			, Nil   }) //SOMENTE PARA EXCLUSÃO
        aAdd(aItens,aItem)
    
        MSExecAuto({|a, b, c| GPEA110(a, b, c) }, 5, aCab, aItens) //Utilize a opção 4 para Alterar e 5 para Excluir
    
        If !lMsErroAuto
            ConOut("**** Incluído com sucesso! ****")
        Else
            aLog := getAutoGrLog()
            MostraErro()
            ConOut("Erro na Alteracao!")
        EndIf
     ENDIF
 
Return aLog


03. TABELAS UTILIZADAS

  • SRK - Movimento de Valores Futuros  
  • SRA - Funcionários  

...