Problemão na validação para evitar duplicidade

Destinado ao auxílio e Troca de informações sobre a ferramenta Xmaker
[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
dsguedes
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

Problemão na validação para evitar duplicidade

Mensagempor dsguedes » Maio 13th, 2014, 5:43 pm

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!!

mrangel
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

Mensagempor mrangel » Maio 19th, 2014, 4:03 pm

"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 ??

mrangel
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

Mensagempor mrangel » Maio 19th, 2014, 4:04 pm

Olá, eu uso validação no onexit para verificar se o cpf digitado já estava cadastrado.


Qual campo precisa verificar se já estava cadastrado ??

dsguedes
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

Mensagempor dsguedes » Maio 20th, 2014, 5:45 pm

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!

mrangel
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

Mensagempor mrangel » Maio 21st, 2014, 8:10 am

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);

adassoft
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

Mensagempor adassoft » Agosto 10th, 2014, 4:08 pm

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.


[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
[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

Voltar para “Xmaker”

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 67 visitantes