Histórico da Página
...
- Visão Geral
- Medição com Planilha Fixa com Cronograma
- Medição com Planilha Fixa sem Cronograma
- Estornando 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 | ||||
---|---|---|---|---|
| ||||
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 |
04. Estornando uma medição
Bloco de código | ||||
---|---|---|---|---|
| ||||
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 |
HTML |
---|
<!-- 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> |
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas