[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 594: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 650: sizeof(): Parameter must be an array or an object that implements Countable
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/phpbb/session.php on line 1110: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
[phpBB Debug] PHP Warning: in file [ROOT]/includes/functions.php on line 5277: Cannot modify header information - headers already sent by (output started at [ROOT]/includes/functions.php:3903)
Fórum Xmaker • Problemão na validação para evitar duplicidade
Página 1 de 1

Problemão na validação para evitar duplicidade

Enviado: Maio 13th, 2014, 5:43 pm
por dsguedes
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!!

Re: Problemão na validação para evitar duplicidade

Enviado: Maio 19th, 2014, 4:03 pm
por mrangel
"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 ??

Re: Problemão na validação para evitar duplicidade

Enviado: Maio 19th, 2014, 4:04 pm
por mrangel
Olá, eu uso validação no onexit para verificar se o cpf digitado já estava cadastrado.


Qual campo precisa verificar se já estava cadastrado ??

Re: Problemão na validação para evitar duplicidade

Enviado: Maio 20th, 2014, 5:45 pm
por dsguedes
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!

Re: Problemão na validação para evitar duplicidade

Enviado: Maio 21st, 2014, 8:10 am
por mrangel
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);

Re: Problemão na validação para evitar duplicidade

Enviado: Agosto 10th, 2014, 4:08 pm
por adassoft
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.