Árvore de páginas

Versões comparadas

Chave

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

...

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
        AaddaAdd(aCab, {"RA_FILIAL" , "D MG 01 ",NIL})
        AaddaAdd(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
        AaddaAdd(aItem,{"LINPOS"    , "RK_PD"   , '001'})
        AaddaAdd(aItem,{"RK_VALORTO", 15  		, nil})
		aAdd(aItens,aItem)
		aItem := {}
        // Para EXCLUSÃO: É necessário utilizar LINPOS e AUTDELETA
        AaddaAdd(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
		AaddaAdd(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

...