Árvore de páginas

Versões comparadas

Chave

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


CONTEÚDO

Índice


01. VISÃO GERAL

Nesta página iremos documentar os exemplos de utilização do ExecAuto MVC para a rotina ATFA430 - Projeto de Imobilizado.

Aviso
titleImportante

Os exemplos utilizados nesta documentação são apenas um modelo modelos de utilização da rotina automática do fonte ATFA430, é de responsabilidade do cliente efetuar a customização conforme a sua necessidade.

O processo Os processos de utilização dos ExecAutos no MVC passa pela validação padrão do modelo utilizadopassam pelas validações padrão dos modelos utilizados, por isso, em caso de inconsistência será apresentado mensagem de erro para que seja ajustado.

02. EXEMPLO DE UTILIZAÇÃO NA INCLUSÃO

Informações
iconfalse
titleExemplo de Inclusão
Bloco de código
languagec#
themeMidnight
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC

User Function IncProjImob()
Local nOpcAuto :=0
Local nX
Local oFNB
Local oFNC
Local oFND
Local oFNE
Local aLog
Local cLog :=""
Local lRet := .T.

If __oModelAut == Nil //somente uma unica vez carrega o modelo ATFA430 
    __oModelAut := FWLoadModel('ATFA430')
EndIf

nOpcAuto := 3  //3 - Inclusão | 4 - Alteração | 5 - Exclusão

__oModelAut:SetOperation(nOpcAuto) 
__oModelAut:Activate() //ativa modelo

//---------------------------------------------------------
// Preencho os valores da FNB
//---------------------------------------------------------
oFNB := __oModelAut:GetModel('FNBMASTER')
oFNB:SETVALUE('FNB_FILIAL' ,FNB->(xFilial('FNB'))) 
oFNB:SETVALUE('FNB_CODPRJ','0000000000')
oFNB:SETVALUE('FNB_REVIS','0001')
oFNB:SETVALUE('FNB_DESC','PROJETO EXEAUTO')
oFNB:SETVALUE('FNB_TIPO','2')
oFNB:SETVALUE('FNB_SBTIPO','1')
oFNB:SETVALUE('FNB_MRGREC' ,'2')
oFNB:SETVALUE('FNB_CBASE' ,'ATFPRJEXEC')
oFNB:SETVALUE('FNB_DTINIC' ,CTOD('01/01/2025'))

//---------------------------------------------------------
// Preencho os valores da FNC
//---------------------------------------------------------
oFNC := __oModelAut:GetModel('FNCDETAIL')
oFNC:SETVALUE('FNC_FILIAL' ,FNC->(xFilial('FNC')))
oFNC:SETVALUE('FNC_CODPRJ','0000000000')
oFNC:SETVALUE('FNC_REVIS','0001')
oFNC:SETVALUE('FNC_ETAPA','001')
oFNC:SETVALUE('FNC_DSCETP','ETAPA 001')
oFNC:SETVALUE('FNC_TIPO','2')
oFNC:SETVALUE('FNC_SBTIPO','1')
oFNC:SETVALUE('FNC_TPAVP','1')

//---------------------------------------------------------
// Preencho os valores da FND
//---------------------------------------------------------
oFND := __oModelAut:GetModel('FNDDETAIL')
oFND:SETVALUE('FND_FILIAL' ,FND->(xFilial('FND')))
oFND:SETVALUE('FND_CODPRJ','0000000000')
oFND:SETVALUE('FND_REVIS','0001')
oFND:SETVALUE('FND_ITEM','001')
oFND:SETVALUE('FND_DSCITE','ITEM 001 ETAPA 001')
oFND:SETVALUE('FND_ETAPA','001')
oFND:SETVALUE('FND_TIPO','2')
oFND:SETVALUE('FND_CTRATF','1')
oFND:SETVALUE('FND_SBTIPO','1')
oFND:SETVALUE('FND_DTPROV' ,CTOD('01/01/2025'))
oFND:SETVALUE('FND_PERINI' ,CTOD('01/01/2025'))
oFND:SETVALUE('FND_PERFIM' ,CTOD('31/01/2025'))
oFND:SETVALUE('FND_PRVEXC' ,CTOD('31/01/2025'))
oFND:SETVALUE('FND_VLRPLN' ,10000)
oFND:SETVALUE('FND_TPAVP','1')

//---------------------------------------------------------
// Preencho os valores da FNE
//---------------------------------------------------------
oFNE := __oModelAut:GetModel('FNEDETAIL')
oFNE:SETVALUE('FNE_FILIAL' ,FNE->(xFilial('FNE')))
oFNE:SETVALUE('FNE_CODPRJ','0000000000')
oFNE:SETVALUE('FNE_REVIS','0001')
oFNE:SETVALUE('FNE_ETAPA','001')
oFNE:SETVALUE('FNE_ITEM','001')
oFNE:SETVALUE('FNE_LINHA','001')
oFNE:SETVALUE('FNE_TPCLAS','2')
oFNE:SETVALUE('FNE_TPATF','01')
oFNE:SETVALUE('FNE_TPSALD','1')
oFNE:SETVALUE('FNE_TPDEPR','1')
oFNE:SETVALUE('FNE_DINDEP' ,CTOD('01/01/2025'))
oFNE:SETVALUE('FNE_VORIG' ,10000)
oFNE:SETVALUE('FNE_ENT01B','000001              ') //CONTA DO BEM
oFNE:SETVALUE('FNE_ENT01D','000002              ') //CONTA DE DESPESA DEP
oFNE:SETVALUE('FNE_ENT01A','000003              ') //CONTA DE DEP ACUMULADA
oFNE:SETVALUE('FNE_MOEDRF','01')

If __oModelAut:VldData() //validacao dos dados pelo modelo
    __oModelAut:CommitData() //gravacao dos dados
Else
    aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData

    //laco para gravar em string cLog conteudo do array aLog
    For nX := 1 to Len(aLog)
        If !Empty(aLog[nX])
            cLog += Alltrim(aLog[nX]) + CRLF
        EndIf
    Next nX

    lMsErroAuto := .T. //seta variavel private como erro
    AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
    mostraerro()
    lRet := .F. //retorna false
EndIf

__oModelAut:DeActivate() //desativa modelo

Return( lRet )

03. EXEMPLO DE UTILIZAÇÃO NA ALTERAÇÃO

Informações
iconfalse
titleExemplo de Alteração
Bloco de código
languagec#
themeMidnight
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC  User Function AltProjImob()

User Function AltProjImob()
Local nOpcAuto :=0
Local nX
Local oFNB
Local oFNC
Local oFND
Local oFNE
Local aLog
Local cLog :=""
Local lRet := .T.
Local cCodPrj:='0000000000'
Local cCodRev:='0001'
Local cCodEtapa:='001'
Local cItemEtp:='001'
Local cLinhaItem:='001'


If __oModelAut == Nil //somente uma unica vez carrega o modelo ATFA430
__oModelAut := FWLoadModel('ATFA430')
EndIf

nOpcAuto := 4 //3 - Inclusão | 4 - Alteração | 5 - Exclusão

__oModelAut:SetOperation(nOpcAuto) // 3 - Inclusão | 4 - Alteração | 5 - Exclusão
__oModelAut:Activate() //ativa modelo

DBSelectArea("FNB")
FNB->(DBSetOrder(1)) 
If DbSeek( xFilial("FNB") + cCodPrj + cCodRev) 
    //---------------------------------------------------------
    // Preencho os valores da FNB
    //---------------------------------------------------------
    oFNB := __oModelAut:GetModel('FNBMASTER') 
    oFNB:SETVALUE('FNB_DESC','PROJETO EXEAUTO ALTERADO')
EndIf

DBSelectArea("FNC")
FNC->(DBSetOrder(1)) 
If DbSeek( xFilial("FNC") + cCodPrj + cCodRev + cCodEtapa) 
    //---------------------------------------------------------
    // Preencho os valores da FNC
    //---------------------------------------------------------
    oFNC := __oModelAut:GetModel('FNCDETAIL') 
    oFNC:SETVALUE('FNC_DSCETP','ETAPA 001 ALTERADA')
EndIf

DBSelectArea("FND")
FND->(DBSetOrder(1)) 
If DbSeek( xFilial("FND") + cCodPrj + cCodRev + cCodEtapa + cItemEtp) 
    //---------------------------------------------------------
    // Preencho os valores da FND
    //---------------------------------------------------------
    oFND := __oModelAut:GetModel('FNDDETAIL') 
    oFND:SETVALUE('FND_DSCITE','ITEM 001 ETAPA 001 ALTERADO')
EndIf

DBSelectArea("FNE")
FNE->(DBSetOrder(1)) 
If DbSeek( xFilial("FNE") + cCodPrj + cCodRev + cCodEtapa + cLinhaItem) 
    //---------------------------------------------------------
    // Preencho os valores da FNE
    //---------------------------------------------------------
    oFNE := __oModelAut:GetModel('FNEDETAIL') 
    oFNE:SETVALUE('FNE_ENT01B','00004               ')
EndIf

If __oModelAut:VldData() //validacao dos dados pelo modelo
    __oModelAut:CommitData() //gravacao dos dados
Else
    aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData

    //laco para gravar em string cLog conteudo do array aLog
    For nX := 1 to Len(aLog)
        If !Empty(aLog[nX])
            cLog += Alltrim(aLog[nX]) + CRLF
        EndIf
    Next nX

    lMsErroAuto := .T. //seta variavel private como erro
    AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
    mostraerro()
    lRet := .F. //retorna false
EndIf

__oModelAut:DeActivate() //desativa modelo

Return( lRet )

04. EXEMPLO DE UTILIZAÇÃO NA EXCLUSÃO

Informações
iconfalse
titleExemplo de Exclusão
Bloco de código
languagec#
themeMidnight
linenumberstrue
collapsetrue
#INCLUDE "PROTHEUS.CH"
#INCLUDE "FWMVCDEF.CH"

Static __oModelAut := NIL //variavel oModel para substituir msexecauto em MVC  User Function AltProjImob()  User Function ExcProjImob() User Function ExcProjImob()

Local nX
//User Function ExcProjImob()
Local oFNBnX
Local aLog
Local cLog :=""
Local lRet := .T.
Local cCodPrj:='0000000000'
Local cCodRev:='0001'
/* Local cCodEtapa:='001'
Local cItemEtp:='001'
Local cLinhaItem:='001' */


If __oModelAut == Nil //somente uma unica vez carrega o modelo ATFA430
__oModelAut := FWLoadModel('ATFA430')
EndIf

nOpcAuto := 5 //3 - Inclusão | 4 - Alteração | 5 - Exclusão

__oModelAut:SetOperation(nOpcAuto) // 3 - Inclusão | 4 - Alteração | 5 - Exclusão
__oModelAut:Activate() //ativa modelo

DBSelectArea("FNB")
FNB->(DBSetOrder(1)) 
DbSeek( xFilial("FNB") + cCodPrj + cCodRev)

If __oModelAut:VldData() //validacao dos dados pelo modelo
    __oModelAut:CommitData() //gravacao dos dados
Else
    aLog := __oModelAut:GetErrorMessage() //Recupera o erro do model quando nao passou no VldData

    //laco para gravar em string cLog conteudo do array aLog
    For nX := 1 to Len(aLog)
        If !Empty(aLog[nX])
            cLog += Alltrim(aLog[nX]) + CRLF
        EndIf
    Next nX

    lMsErroAuto := .T. //seta variavel private como erro
    AutoGRLog(cLog) //grava log para exibir com funcao mostraerro
    mostraerro()
    lRet := .F. //retorna false                                 
EndIf

__oModelAut:DeActivate() //desativa modelo
    

Return( lRet )

05. ASSUNTOS RELACIONADOS

...