Nós artigos anteriores vimos como criar tabelas, campos, índices, consultas padrões e gatilhos, agora chegou a hora de criar uma rotina de cadastro simples onde será possível aplicar o conhecimento adquirido.
Se não viu nossos artigos sobre os assuntos citados acima, clique nos links abaixo para visualizar o conteúdo.
Neste artigo veremos um exemplo de utilização da rotina AxCadastro. Esta rotina monta as telas para as operações básicas de manutenção de registros.
- Pesquisar
- Visualizar
- Alterar
- Incluir
- Excluir
Ela nos permite utilizar 4 parâmetros, um para especificar o alias da tabela que será utilizada, um para definir o título das telas, um para definir a função que será executada para confirmar a exclusão de um registro e um para definir uma função para confirmar a inclusão e/ou alteração de um registro. Apenas o parâmetro cAlias é obrigatório.
AxCadastro(cAlias, cTitulo, cFunExc, cFunAlt)
No nosso exemplo a chamada da função ficaria da seguinte forma.
#Include "Protheus.ch" #Include "RwMake.ch" /* ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±± ±±ºPrograma ³RERPA02 ºAutor ³ Vinícius Moreira º Data ³ 17/03/2014 º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºDesc. ³ Aprendendo a utilizar função AxCadastro. º±± ±±º ³ º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºUso ³ º±± ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß */ User Function RERPA02 Local cAlias := "SZN" Local cTitulo := "Testando AxCadastro" Local cFunExc := "U_RERPA02A()" Local cFunAlt := "U_RERPA02B()" AxCadastro(cAlias, cTitulo, cFunExc, cFunAlt) Return
Montei duas funções simples para que possam testar o uso das validações de exclusão e inclusão e/ou alteração.
Função para confirmação da exclusão.
/* ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±± ±±ºPrograma ³RERPA02A ºAutor ³ Vinícius Moreira º Data ³ 17/03/2014 º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºDesc. ³ Função excutada para validar se é permitida ou não a ex- º±± ±±º ³ clusão do registro selecionado. º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºUso ³ º±± ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß */ User Function RERPA02A Local lRet := MsgBox("Tem certeza que deseja excluir o registro selecionado?", "Confirmação", "YESNO") Return lRet
Função para confirmação da inclusão e/ou alteração.
/* ÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜÜ ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ±±ÉÍÍÍÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍËÍÍÍÍÍÍÑÍÍÍÍÍÍÍÍÍÍÍÍÍ»±± ±±ºPrograma ³RERPA02B ºAutor ³ Vinícius Moreira º Data ³ 17/03/2014 º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÊÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºDesc. ³ Função excutada ao clicar no botão CONFIRMAR na rotina de º±± ±±º ³ inclusão e alteração. º±± ±±ÌÍÍÍÍÍÍÍÍÍÍØÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ͹±± ±±ºUso ³ º±± ±±ÈÍÍÍÍÍÍÍÍÍÍÏÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ±± ±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±±± ßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßßß */ User Function RERPA02B Local lRet := .F. Local cMsg := "" If INCLUI cMsg := "Confirma a inclusão do registro?" Else cMsg := "Confirma a alteração do registro?" EndIf lRet := MsgBox(cMsg, "Confirmação", "YESNO") Return lRet
Observe que utilizamos uma variável com nome de INCLUI, esta variável é criada e carregada com .T. internamente pela função AxCadastro quando o botão Incluir é acionado, assim como ela existe também a variável ALTERA que é criada e carregada com .T. internamente pela função AxCadastro quando o botão Alterar é acionado.
Em resumo esta rotina AxCadastro é muito simples de utilizar, mas te da possibilidade de criar uma opção de cadastro de maneira rápida e fácil. Todos os campos e opções de pesquisa são exibidas de acordo com as configurações definidas na rotina Base de Dados no módulo CONFIGURADOR.
Faça um teste na sua base criando a tabela SZN e utilize a rotina de exemplo do artigo. Não se esqueça de definir os campos que devem ser exibidos no Browse e também o índice que será exibido como opção de pesquisa, porque sem isso o sistema exibirá uma mensagem de erro.
É isso ai galera, espero que tenham curtido o novo artigo. A melhor forma de aprender é colocar a mão na massa e utilizar o conhecimento adquirido.
Para fazer download do fonte de exemplo clique aqui.
Abraço
Muito Bom para quem esta iniciando em ADVPL.!!
[…] Criei a tabela como ZA0 aqui e a única particularidade da tabela é que ela tem um númerador automatico no campo ZA0_CODIGO. Dessa forma, criei uma função de AxCadastro simples pra tabela e inseri alguns registros nela. Se precisar de ajuda sobre como fazer uma função dessas, leia esse artigo: AxCadastro – Cadastro Simples. […]