Rotina automática do cadastro de Fornecedores (em MVC)
Exemplo da Rotina:
oModel := FWLoadModel("MATA020M")
oModel:SetOperation(3)
oModel:Activate()
oSA2Mod:= oModel:getModel("SA2MASTER")
...
oModel:VldData()
oModel:CommitData()
Exemplo 1- Criando Fornecedor:
lDeuCerto := .F.
//Pegando o modelo de dados, setando a operação de inclusão
oModel := FWLoadModel("MATA020M")
oModel:SetOperation(3)
oModel:Activate()
//Pegando o model dos campos da SA2
oSA2Mod:= oModel:getModel("SA2MASTER")
oSA2Mod:setValue("A2_COD", cCod ) // Codigo
oSA2Mod:setValue("A2_LOJA", cLoja ) // Loja
oSA2Mod:setValue("A2_NOME", cNome ) // Nome
oSA2Mod:setValue("A2_NREDUZ", cNomeFant ) // Nome reduz.
oSA2Mod:setValue("A2_END", cEndereco ) // Endereco
oSA2Mod:setValue("A2_BAIRRO", cBairro ) // Bairro
oSA2Mod:setValue("A2_TIPO", cTp ) // Tipo
oSA2Mod:setValue("A2_EST", cEST ) // Estado
oSA2Mod:setValue("A2_COD_MUN", cCodMun ) // Codigo Municipio
oSA2Mod:setValue("A2_MUN", cDescMun ) // Municipio
oSA2Mod:setValue("A2_CEP", cCep ) // CEP
oSA2Mod:setValue("A2_INSCR", cIE ) // Inscricao Estadual
oSA2Mod:setValue("A2_CGC", cCNPJ ) // CNPJ/CPF
oSA2Mod:setValue("A2_PAIS", cCodPais ) // Pais
oSA2Mod:setValue("A2_EMAIL", cEMail ) // E-Mail
oSA2Mod:setValue("A2_DDD", cDDD ) // DDD
oSA2Mod:setValue("A2_TEL", cTelefone ) // Fone
oSA2Mod:setValue("A2_FAX", cFax ) // FAX
oSA2Mod:setValue("A2_TPESSOA", cTipPessoa ) // Tipo Pessoa
oSA2Mod:setValue("A2_CODPAIS", cPaisBac ) // Pais Bacen
oSA2Mod:setValue("A2_MSBLQL", cBlqSA ) // Bloqueado
//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