Árvore de páginas

Versões comparadas

Chave

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

...

Bloco de código
titleExemplo de ExecAuto para Cadastro de Dependentes
linenumberstrue
#INCLUDE "'Protheus.CH"'
#iNCLUDE#INCLUDE 'TBICONN.CH'
#Include#INCLUDE 'FWMVCDefFWMVCDEF.chCH'

/*/{Protheus.doc} GP020MVC
Exemplo de ExecAuto do Cadastro de Dependentes GPEA020 utilizando estrutura MVC
/*/
User Function GP20INCMVCGP020MVC()

	    Local oModel
	    Local oMdlSRB
	    Local aLog		 := {}
	    Local cFili		nCod := "D MG 01 "
	Local cMat		:= "215470"
	Local nCod		:= 0

	RpcSetType(3)
	PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFili MODULO "GPE"
	0
    Local nTipo := 1 //Exemplo inclusão / 2-Alteração/Exclusão
    Local cMat := "xxxxxx" //Matrícula correspondente para posicionamento

    aEval({'SRA','SRB'},{|x|CHKFILE(x)})
	    SRA->(DbSetOrder(1))

	    If SRA->(DbSeek(cFili(xFilial("SRA") + cMat))
		        oModel := FWLoadModel("GPEA020")
		        oModel:SetOperation(MODEL_OPERATION_UPDATE)

		//Inclusão de novo registro
		        If (oModel:Activate())
			            oMdlSRB := oModel:GetModel("GPEA020_SRB")
			

            If nTipo == 1 //Exemplo Inclusão de novo registro
                if(oMdlSRB:Length() > 1)
				                    nCod := oMdlSRB:AddLine()
			else
				                else
                    if(oMdlSRB:IsInserted())
					                        nCod := 1
				else
					                    else
                        nCod := oMdlSRB:AddLine()
				endIf
			endIf

			                    endIf
                endIf

                oMdlSRB:SetValue("RB_COD"		 , StrZero(nCod,2))
			                oMdlSRB:SetValue("RB_NOME"		 , "INCLU PRIMEIRODEP")
			                oMdlSRB:SetValue("RB_TPDEP"		 , "03")
			                oMdlSRB:SetValue("RB_DTNASC"	 , Ctod("20/03/2010"))
			                oMdlSRB:SetValue("RB_SEXO"		 , "M")
			                oMdlSRB:SetValue("RB_GRAUPAR"	 , "F")
			                oMdlSRB:SetValue("RB_TIPIR"		 , "1")
			                oMdlSRB:SetValue("RB_TIPSF"		 , "1")
			                oMdlSRB:SetValue("RB_LOCNASC"	 , "SP")
			                oMdlSRB:SetValue("RB_CIC"		 , "80645187925")

			If(oModel:VldData())
				If (oModel:CommitData())
					ConOut("Dependente Incluido")
				Else
					aLog := oModel:GetErrorMessage()
				EndIf
			Else
				aLog := oModel:GetErrorMessage()
			EndIf
			If Len(aLog) > 0
				aEval(aLog, {|x|conOut(x)})
			EndIf
		EndIf
	Else
		ConOut("Funcionario nao encontrado")
	EndIf

	RESET ENVIRONMENT

Return(.T.)

//Alteracao existente
User Function GP20ALTMVC()

	Local oModel
	Local oMdlSRB
	Local aLog		:= {}
	Local cFili		:= "D MG 01 "
	Local cMat		:= "215470"

	RpcSetType(3)
	PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cFili MODULO "GPE"
	aEval({'SRA','SRB'},{|x|CHKFILE(x)})
	SRA->(DbSetOrder(1))

	If SRA->(DbSeek(cFili + cMat))
		oModel := FWLoadModel("GPEA020")
		oModel:SetOperation(MODEL_OPERATION_UPDATE)

		//Inclusão de novo registro
		If (oModel:Activate())
			oMdlSRB := oModel:GetModel("GPEA020_SRB")

			                //Demais campos informados na inclusão conforme exemplo
                //Possibilita inclusão de múltiplos registros utilizando o método AddLine()

            ElseIf nTipo == 2 //Exemplo alteração de registro existente
                if(oMdlSRB:Length() >= 3)
				                    oMdlSRB:GoLine(3) //RegistroPosicionamento na linha a ser alterado
			endIf
			alterada
                endIf                //Campos a serem alterados
			                oMdlSRB:SetValue("RB_NOME"		 , "ALTER EXECAUTO COMLGP")

			")
                //Possibilita uso do método DeleteLine() para exclusão do registro posicionado
            EndIf

            If(oModel:VldData())
				                If (oModel:CommitData()))
					
                    If nTipo == 1
                        ConOut("Dependente Incluido")
                    Else
                        ConOut("Alteracao concluida")
				Else
					                    EndIf
                Else
                    aLog := oModel:GetErrorMessage()
				EndIf
			Else
				                EndIf
            Else
                aLog := oModel:GetErrorMessage()
			EndIf
			            EndIf
            If Len(aLog) > 0
				                aEval(aLog, {|x|conOut(x)})
			EndIf
		EndIf
	Else
		ConOut("Funcionário            EndIf
        EndIf
    Else
        ConOut("Funcionario nao encontrado")
	EndIf

	RESET ENVIRONMENT    EndIf

Return(.T.)


05. ASSUNTOS RELACIONADOS

...