Árvore de páginas

Versões comparadas

Chave

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

...

  1. Visão Geral
  2. Medição com Planilha Fixa com Cronograma
  3. Medição com Planilha Fixa sem Cronograma
  4. Estornando uma medição
  5. Encerrando uma medição

01. VISÃO GERAL

Objetivo desse documento é exemplificar a utilização do ExecAuto da rotina de Medições(CNTA120). 

...

Bloco de código
titleExemplo Medição com Planilha Fixa sem Cronogramade estorno de medição
linenumberstrue
User Function ExCNT120()
    Local nRet      :=  0
         
    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "GCT" TABLES "CNDT10"              
        ConOut("INICIO TESTE")     
        Exemplo3() //Estorno de uma medição
        ConOut("FIM TESTE")
    RESET ENVIRONMENT
Return nRet
 
Static Function Exemplo3()
    Local aCab     := {}//Cabecalho
    Local aItens    := {}//Itens
    Local cContra   := ""//<--Informar o numero do contrato
    Local cRevisa   := "   "//<--Informar a revisão do contrato
    Local cNumPla   := StrZero(1, Len(CND->CND_NUMERO))//<--Informar o número da planilha
    Local cNumMed   := ""//<--Informar o número da medição
    Local cChave    := ""
    Private lMsErroAuto     := .F.

    CND->(DbSetOrder(1)) //CND_FILIAL+CND_CONTRA+CND_REVISA+CND_NUMERO+CND_NUMMED
    cChave := xFilial("CND") + cContra + cRevisa + cNumPla + cNumMed
    if CND->(DbSeek(cChave))
        
        aCab := {}
        aAdd(aCab,{"CND_NUMMED",CND->CND_NUMMED,NIL})
        aAdd(aCab,{"CND_CONTRA",CND->CND_CONTRA,NIL})
        aAdd(aCab,{"CND_REVISA",CND->CND_REVISA,NIL})
        aAdd(aCab,{"CND_NUMERO",CND->CND_NUMERO,NIL})
        aAdd(aCab,{"CND_PARCEL",CND->CND_PARCEL,NIL})
        aAdd(aCab,{"CND_COMPET",CND->CND_COMPET,NIL})
    
        /*Não é necessario informar itens no array <aItens>, pois eles serão carregados automaticamente*/
        MSExecAuto({|x,y|CNTA120(x,y,7,.F.)},aCab, aItens)//Executa rotina automática para estornar a medição(nOpc=7)
    
        if lMsErroAuto
            if !IsBlind()
                MostraErro()
            else           
                aEval(GetAutoGrLog(),{|x|ConOut(x)})           
            endif
        endif
    endif
 
Return

05. Encerrando uma medição

Bloco de código
titleExemplo encerramento de medição
linenumberstrue
User Function ExCNT120()
    Local nRet      :=  0
         
    PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "GCT" TABLES "CNDT10"              
        ConOut("INICIO TESTE")     
        Exemplo5() //Encerramento de uma medição
        ConOut("FIM TESTE")
    RESET ENVIRONMENT
Return nRet

Static Function Exemplo5()
    Local aCab     := {}//Cabecalho
    Local aItens    := {}//Itens
    Local cContra   := ""//<--Informar o numero do contrato
    Local cRevisa   := ""//<--Informar a revisão do contrato
    Local cNumPla   := StrZero(1, Len(CND->CND_NUMERO))//<--Informar o número da planilha
    Local cNumMed   := ""//<--Informar o número da medição
    Local cChave    := ""
    Private lMsErroAuto     := .F.

    CND->(DbSetOrder(1)) //CND_FILIAL+CND_CONTRA+CND_REVISA+CND_NUMERO+CND_NUMMED
    cChave := xFilial("CND") + cContra + cRevisa + cNumPla + cNumMed
    if CND->(DbSeek(cChave))
        
        aCab := {}
        aAdd(aCab,{"CND_NUMMED",CND->CND_NUMMED,NIL})
        aAdd(aCab,{"CND_CONTRA",CND->CND_CONTRA,NIL})
        aAdd(aCab,{"CND_REVISA",CND->CND_REVISA,NIL})
        aAdd(aCab,{"CND_NUMERO",CND->CND_NUMERO,NIL})
        aAdd(aCab,{"CND_PARCEL",CND->CND_PARCEL,NIL})
        aAdd(aCab,{"CND_COMPET",CND->CND_COMPET,NIL})
    
        /*Não é necessario informar itens no array <aItens>, pois eles serão carregados automaticamente*/
        MSExecAuto({|x,y|CNTA120(x,y,6,.F.)},aCab, aItens)//Executa rotina automatica para encerrar a medição(nOpc=6)
    
        if lMsErroAuto
            if !IsBlind()
                MostraErro()
            else           
                aEval(GetAutoGrLog(),{|x|ConOut(x)})           
            endif
        endif
    endif
 
Return

...