Gente, ocorreu o seguinte:
Usei o PTabela para verifica se o registro já existe, assim evitando a duplicidade.
Detalhe: usei essa função PTabela no evento onExit de cada campo a ser verificado. Formulário padrão do Xmaker: MDI, modelo1
Até ai blz.
Mas quando testei a aplicação funcionando tudo direitinho até quando cliquei em "modificar", ao salvar estava validando tudo novamente informando já existir "tudo", claro. Ainda não compreendi a lógica para que valide sem problemas.
Agradeço a atenção e a ajuda!!
Problemão na validação para evitar duplicidade
-
- Mensagens: 3
- Registrado em: Maio 19th, 2014, 3:57 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Problemão na validação para evitar duplicidade
"usei essa função PTabela no evento onExit de cada campo a ser verificado"
Eu faço essa verificação para verificar se o CPF digitado já se encontra no cadastro, mas é necessário saber se a tabela está em edição ou em inclusão.
Explica melhor, qual campo precisa saber se já foi cadastrado ??
Eu faço essa verificação para verificar se o CPF digitado já se encontra no cadastro, mas é necessário saber se a tabela está em edição ou em inclusão.
Explica melhor, qual campo precisa saber se já foi cadastrado ??
-
- Mensagens: 3
- Registrado em: Maio 19th, 2014, 3:57 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Problemão na validação para evitar duplicidade
Olá, eu uso validação no onexit para verificar se o cpf digitado já estava cadastrado.
Qual campo precisa verificar se já estava cadastrado ??
Qual campo precisa verificar se já estava cadastrado ??
-
- Mensagens: 8
- Registrado em: Abril 9th, 2014, 10:23 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Problemão na validação para evitar duplicidade
Olá mrangel, tenho que validar um cadastro que contem cpf, rg, pis, cnh, titulo de eleitor, ... e preciso verificar se os mesmo já foram cadastrados.
Como estou usando apenas o assistente do xmaker com seus formulários padrão, então no assistente de tabela na opção validação temos as funções de VCPF, VPIS, ... que verifica apenas se é válido e não tem função para verificar duplicidade.
Assim é necessário inserir a função PTabela manualmente no evento onExit, que irá pesquisar se o dado informado já foi inserido ou não.
Agora estou começando a entender a lógica.
Da forma que fiz apenas inserindo no onExit sem verificar o estado da tabela se está em edição ou inclusão, sempre que estiver no formulário será verificado onde ocorre o problema.
Para solucionar acredito que devo apenas verificar o estado da tabela e verificar a duplicidade se estiver apenas no modo de inclusão.
Irei pesquisar o código para verificar edição de tabela.
Em breve comento se ocorreu tudo bem, obrigado pela ajuda!
Como estou usando apenas o assistente do xmaker com seus formulários padrão, então no assistente de tabela na opção validação temos as funções de VCPF, VPIS, ... que verifica apenas se é válido e não tem função para verificar duplicidade.
Assim é necessário inserir a função PTabela manualmente no evento onExit, que irá pesquisar se o dado informado já foi inserido ou não.
Agora estou começando a entender a lógica.
Da forma que fiz apenas inserindo no onExit sem verificar o estado da tabela se está em edição ou inclusão, sempre que estiver no formulário será verificado onde ocorre o problema.
Para solucionar acredito que devo apenas verificar o estado da tabela e verificar a duplicidade se estiver apenas no modo de inclusão.
Irei pesquisar o código para verificar edição de tabela.
Em breve comento se ocorreu tudo bem, obrigado pela ajuda!
-
- Mensagens: 3
- Registrado em: Maio 19th, 2014, 3:57 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Problemão na validação para evitar duplicidade
Segue o código que eu uso no evento OnExit do campo CPF em uma inclusão de Cliente:
if AbandonandoEdicao then
Exit;
if not TabGlobal.DCLIENTE.CLI_ST_CPF.Valido(MsgErro) then
ErroValidacaoCampo(MsgErro, TabGlobal.DCLIENTE.CLI_ST_CPF)
{Valida o campo digitado}
else begin
if (TabelaPrincipal.Inclusao) and (TabGlobal.DCLIENTE.CLI_ST_CPF.Conteudo <> '') then // Verifica se tabela está em inclusão e CPF não é vazio
if Ptabela(TabGlobal.DCLIENTE,['CLI_ST_CPF'],[TabGlobal.DCLIENTE.CLI_ST_CPF.Conteudo]) then
ErroValidacaoCampo('CPF já cadastrado.', TabGlobal.DCLIENTE.CLI_ST_CPF);
end;
if not SalvarRegistro then
ExecutaPreValidacoes(TabelaPrincipal, Self, ListaCamposEd);
if AbandonandoEdicao then
Exit;
if not TabGlobal.DCLIENTE.CLI_ST_CPF.Valido(MsgErro) then
ErroValidacaoCampo(MsgErro, TabGlobal.DCLIENTE.CLI_ST_CPF)
{Valida o campo digitado}
else begin
if (TabelaPrincipal.Inclusao) and (TabGlobal.DCLIENTE.CLI_ST_CPF.Conteudo <> '') then // Verifica se tabela está em inclusão e CPF não é vazio
if Ptabela(TabGlobal.DCLIENTE,['CLI_ST_CPF'],[TabGlobal.DCLIENTE.CLI_ST_CPF.Conteudo]) then
ErroValidacaoCampo('CPF já cadastrado.', TabGlobal.DCLIENTE.CLI_ST_CPF);
end;
if not SalvarRegistro then
ExecutaPreValidacoes(TabelaPrincipal, Self, ListaCamposEd);
-
- Mensagens: 51
- Registrado em: Outubro 14th, 2011, 1:09 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Problemão na validação para evitar duplicidade
Eu faço o seguinte, verifico se o formulário está no modo de modificação ou no modo de inclusão, mas nesse caso o usuário pode alterar o dado do campo e informar um que já existe. Para evitar isso, fiz o seguinte, criei uma variável que armazena o valor do campo em questão no momento em que é clicado no botão modificar, se o formulário estiver no modo de modificação verifico se o valor da variável é diferente do valor do campo, caso seja afirmativo ele verifica se há duplicidade.
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 65 visitantes