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
- 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 | ||||
---|---|---|---|---|
| ||||
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 | ||||
---|---|---|---|---|
| ||||
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 |
...
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas