ExecAuto – CTBA020 (MVC)

Rotina Automática para criação de dados nas Contas Contábeis

Exemplo da Rotina:

oModelCtb := FWLoadModel('CTBA020')
EndIf

oModelCtb:SetOperation(4)
oModelCtb:Activate()

oCVD := oModelCtb:GetModel('CVDDETAIL')
oCVD:SetValue('CVD_FILIAL', FWxFilial('CVD'))
...

If oModelCtb:VldData()
	oModelCtb:CommitData()
EndIf

Exemplo 1- Alterando e incluindo dados na CVD:

cPasta := "C:\TOTVS\log_CVD\"

//Se for nulo, carrega o modelo de dados
If oModelCtb == Nil
	oModelCtb := FWLoadModel('CTBA020')
EndIf

//Posiciona no Plano de Contas
DBSelectArea("CT1")
CT1->(DbGoTo(QRY_CONTA->CT1REC))

//Seta a operação de Alteração no modelo, e ativa ele 
oModelCtb:SetOperation(nOpcAuto)
oModelCtb:Activate()

//Pega o modelo (grid) da CVD, e define os campos
oCVD := oModelCtb:GetModel('CVDDETAIL')
oCVD:SetValue('CVD_FILIAL', FWxFilial('CVD'))
oCVD:SetValue('CVD_ENTREF', cEntidade )
oCVD:SetValue('CVD_CODPLA', cPlanoRef )
oCVD:SetValue('CVD_VERSAO', cVersao   )
oCVD:SetValue('CVD_CTAREF', cContaRef )
oCVD:SetValue('CVD_CUSTO' , cCenCusto )
oCVD:SetValue('CVD_CLASSE', cClaConta )
oCVD:SetValue('CVD_TPUTIL', cTpUtil   )
oCVD:SetValue('CVD_NATCTA', cNatConta )
oCVD:SetValue('CVD_CTASUP', cEntSuper )

//Valida os dados preenchidos, se deu certo
If oModelCtb:VldData()
	
	//Grava a informação no banco
	oModelCtb:CommitData()
	cIncluido += "- " + QRY_CONTA->CT1_CONTA + " (Cta.Ref.: " + cContaRef + ");" + CRLF
	
Else
	
	//Recupera o erro e joga no array de log
	aLog := oModelCtb:GetErrorMessage()
	cLog := ""
	
	//Percorre as linhas do log
	For nX := 1 to Len(aLog)
		
		//Se tiver conteúdo na linha do log, adiciona na variável de log
		If ! Empty(aLog[nX])
			cLog += Alltrim(aLog[nX]) + CRLF
		EndIf
	Next
	
	//Monta o nome do arquivo, e grava o log nele
	cArquivo := QRY_CONTA->CT1_CONTA + " - log - " + dToS(Date()) + " - " + StrTran(Time(), ':', '-')+".txt"
	MemoWrite(cPasta + cArquivo, cLog)
	
	cErros += "- " + QRY_CONTA->CT1_CONTA + " (Log em '" + cPasta + cArquivo + "');" + CRLF
EndIf

//Desativa o modelo de dados
oModelCtb:DeActivate()

Observações:

– Caso tenha dúvidas ou problemas com os exemplos, entre em contato;

– Se tiver sugestões de rotinas, pode entrar em contato;