Objetivo desse documento é exemplificar a utilização do ExecAuto da rotina de Medições(CNTA120).
#include 'protheus.ch'
#include 'parmtype.ch'
#INCLUDE "TBICONN.CH"
User Function ExCNT120()
Local nRet := 0
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "GCT" TABLES "CNDT10"
ConOut("INICIO TESTE")
Exemplo1() //Planilha Fixa com Cronograma
ConOut("FIM TESTE")
RESET ENVIRONMENT
Return nRet
Static Function Exemplo1()
Local aCab := {}//Cabecalho
Local aItens := {}//Itens
Local cContra := ""//<--Informar o numero do contrato
Local cRevisa := ""//<--Informar a revisão do contrato
Local cCompet := ""//<--Informar a competência(formato MM/AAAA)
Local cPlan := ""//<--Informar o numero do contrato
Local cParcel := ""//<--Informar o numero do contrato
Private lMsErroAuto := .F.
aCab := {}
aAdd(aCab,{"CND_CONTRA",cContra,NIL})
aAdd(aCab,{"CND_REVISA",cRevisa,NIL})
aAdd(aCab,{"CND_PARCEL",cParcel,NIL})
aAdd(aCab,{"CND_COMPET",cCompet,NIL})
aAdd(aCab,{"CND_NUMERO",cPlan,NIL})
/*Não é necessario informar itens no array <aItens>, pois eles serão carregados automaticamente*/
MSExecAuto({|x,y|CNTA120(x,y,3,.F.)},aCab, aItens)//Executa rotina automatica para gerar as medicoes
if lMsErroAuto
if !IsBlind()
MostraErro()
else
aEval(GetAutoGrLog(),{|x|ConOut(x)})
endif
endif
Return |
User Function ExCNT120()
Local nRet := 0
PREPARE ENVIRONMENT EMPRESA "T1" FILIAL "D MG 01 " MODULO "GCT" TABLES "CNDT10"
ConOut("INICIO TESTE")
Exemplo2() //Planilha Fixa sem Cronograma
ConOut("FIM TESTE")
RESET ENVIRONMENT
Return nRet
Static Function Exemplo2()
Local aCab := {}//Cabecalho
Local aItens := {}//Itens
Local aItem := {}//Itens
Local cContra := ""//<--Informar o numero do contrato
Local cRevisa := " "//<--Informar a revisao do contrato
Local cCompet := ""//<--Informar a competencia(formato MM/AAAA)
Local cPlan := ""//<--Informar o numero do contrato
Local cParcel := ""//<--Informar o numero do contrato
Private lMsErroAuto := .F.
aCab := {}
aAdd(aCab,{"CND_CONTRA",cContra,NIL})
aAdd(aCab,{"CND_REVISA",cRevisa,NIL})
aAdd(aCab,{"CND_COMPET",cCompet,NIL})
aAdd(aCab,{"CND_NUMERO",cPlan,NIL})
aAdd(aCab,{"CND_PARCEL",cParcel,NIL}) //<-- É preciso informar a parcela, mesmo não tendo cronograma.
aItens := {} //Quando não há cronograma, é necessario informar <aItens>, pois precisamos preencher a quantidade
aAdd(aItem,{"CNE_ITEM","001",NIL})
aAdd(aItem,{"CNE_PRODUT","GCT001 ",NIL})
aAdd(aItem,{"CNE_QUANT",1,NIL})
aAdd(aItens, aItem)
MSExecAuto({|x,y|CNTA120(x,y,3,.F.)},aCab, aItens)//Executa rotina automatica para gerar as medicoes
if lMsErroAuto
if !IsBlind()
MostraErro()
else
aEval(GetAutoGrLog(),{|x|ConOut(x)})
endif
endif
Return |
<!-- esconder o menu -->
<style>
div.theme-default .ia-splitter #main {
margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
display: none;
}
#main {
padding-left: 10px;
padding-right: 10px;
overflow-x: hidden;
}
.aui-header-primary .aui-nav, .aui-page-panel {
margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
margin-left: 0px !important;
}
</style>
|