Rotina automática do cadastro de Clientes (em MVC)
Exemplo da Rotina:
oModel := FWLoadModel("CRMA980") //"MATA030" na antiga MATA030
oModel:SetOperation(3)
oModel:Activate()
oSA1Mod:= oModel:getModel("SA1MASTER") //"MATA030_SA1" na antiga MATA030
...
oModel:VldData()
oModel:CommitData()
Exemplo 1- Criando Cliente:
lDeuCerto := .F.
//Pegando o modelo de dados, setando a operação de inclusão
oModel := FWLoadModel("CRMA980") //"MATA030" na antiga MATA030
oModel:SetOperation(3)
oModel:Activate()
//Pegando o model dos campos da SA1
oSA1Mod:= oModel:getModel("SA1MASTER") //"MATA030_SA1" na antiga MATA030
oSA1Mod:setValue("A1_COD", cCod ) // Codigo
oSA1Mod:setValue("A1_LOJA", cLoja ) // Loja
oSA1Mod:setValue("A1_NOME", cNome ) // Nome
oSA1Mod:setValue("A1_NREDUZ", cNomeFant ) // Nome reduz.
oSA1Mod:setValue("A1_END", cEndereco ) // Endereco
oSA1Mod:setValue("A1_BAIRRO", cBairro ) // Bairro
oSA1Mod:setValue("A1_TIPO", cTp ) // Tipo
oSA1Mod:setValue("A1_EST", cEST ) // Estado
oSA1Mod:setValue("A1_COD_MUN", cCodMun ) // Codigo Municipio
oSA1Mod:setValue("A1_MUN", cDescMun ) // Municipio
oSA1Mod:setValue("A1_CEP", cCep ) // CEP
oSA1Mod:setValue("A1_INSCR", cIE ) // Inscricao Estadual
oSA1Mod:setValue("A1_CGC", cCNPJ ) // CNPJ/CPF
oSA1Mod:setValue("A1_PAIS", cCodPais ) // Pais
oSA1Mod:setValue("A1_EMAIL", cEMail ) // E-Mail
oSA1Mod:setValue("A1_DDD", cDDD ) // DDD
oSA1Mod:setValue("A1_TEL", cTelefone ) // Fone
oSA1Mod:setValue("A1_PESSOA", cTipPessoa ) // Tipo Pessoa
//Se conseguir validar as informações
If oModel:VldData()
//Tenta realizar o Commit
If oModel:CommitData()
lDeuCerto := .T.
//Se não deu certo, altera a variável para false
Else
lDeuCerto := .F.
EndIf
//Se não conseguir validar as informações, altera a variável para false
Else
lDeuCerto := .F.
EndIf
//Se não deu certo a inclusão, mostra a mensagem de erro
If ! lDeuCerto
//Busca o Erro do Modelo de Dados
aErro := oModel:GetErrorMessage()
//Monta o Texto que será mostrado na tela
AutoGrLog("Id do formulário de origem:" + ' [' + AllToChar(aErro[01]) + ']')
AutoGrLog("Id do campo de origem: " + ' [' + AllToChar(aErro[02]) + ']')
AutoGrLog("Id do formulário de erro: " + ' [' + AllToChar(aErro[03]) + ']')
AutoGrLog("Id do campo de erro: " + ' [' + AllToChar(aErro[04]) + ']')
AutoGrLog("Id do erro: " + ' [' + AllToChar(aErro[05]) + ']')
AutoGrLog("Mensagem do erro: " + ' [' + AllToChar(aErro[06]) + ']')
AutoGrLog("Mensagem da solução: " + ' [' + AllToChar(aErro[07]) + ']')
AutoGrLog("Valor atribuído: " + ' [' + AllToChar(aErro[08]) + ']')
AutoGrLog("Valor anterior: " + ' [' + AllToChar(aErro[09]) + ']')
//Mostra a mensagem de Erro
MostraErro()
EndIf
//Desativa o modelo de dados
oModel: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;
– Exemplo criado conforme dica enviada por Sergio Passerini
– Esse exemplo foi atualizado, pois a MATA030 foi descontinuada, sendo substituída pela CRMA980