Verificar e validar campo vazio

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
Pedro Gomes
Mensagens: 38
Registrado em: Dezembro 28th, 2011, 11:30 am
Contato:

Verificar e validar campo vazio

Mensagempor Pedro Gomes » Fevereiro 9th, 2012, 11:25 am

Olá a todos.

Tenho uma tabela Produtos e nesta, um campo alfanumérico de tamanho 20. Preciso que quando de uma inclusão, o aplicativo me sugere automaticamente o próximo número de registro. Acontece que quando é a primeira inclusão e por estar usando o RetornaAutoIncremento, recebo uma mensagem de erro. Consegui resolver esta questão, usando "TabGlobal.DPRODUTO.PRO_CODIGO.Conteudo := StrZero(1, 6);"; porém quando se trata da segunda inclusão para frente, continuo recebendo a mesma sugestão, ou seja, "000001", quando na verdade deveria ser, "000002". Não estou conseguindo fazer o aplicativo pegar o último registro e a partir daí, continuar sequencialmente me sugerir os números.
Escrevi uma rotina, conforme segue abaixo e gostaria de que alguém pudesse me ajudar a resolver esta questão.
If TabelaPrincipal.Inclusao then
begin
if Vazio(TabGlobal.DPRODUTO.PRO_CODIGO.Conteudo) then
begin
TabGlobal.DPRODUTO.PRO_CODIGO.Conteudo := StrZero(1, 6);
end
else
begin
TabGlobal.DPRODUTO.PRO_CODIGO.Conteudo := LFill(RetornaAutoIncremento(TabGlobal.DPRODUTO, 'PRO_CODIGO', '', 1), '0', 6);
end;
end;
Desde já agradeço.

Pedro Gomes.

Ligeirinho
Mensagens: 22
Registrado em: Fevereiro 12th, 2011, 3:14 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: Verificar e validar campo vazio

Mensagempor Ligeirinho » Fevereiro 9th, 2012, 1:37 pm

Caro Pedro se estou entendendo sua dúvida, no autoincremento podemos usar apenas campos do tipo: Número inteiro, Fracionário e data, então mude o campo para número inteiro, marque 1 em autoincremento e funcionará direitinho.
espero ter ajudado, um abraço!

Pedro Gomes
Mensagens: 38
Registrado em: Dezembro 28th, 2011, 11:30 am
Contato:

Re: Verificar e validar campo vazio

Mensagempor Pedro Gomes » Fevereiro 10th, 2012, 7:31 am

Olá a todos.
Ligeirinho, obrigado pelo teu esforço em me ajudar, porém, preciso lhe informar que a função trabalha tb com string, pois já testei e funcionou normalmente. O meu problema está relacionado exatamente quando se trata da primeira inclusão, ou seja, não existe nenhum registro e aí sim a função retorna uma mensagem de erro pois não existe nenhum registro na tabela para que a função incremente + 1. Este problema, como citei acima eu consegui resolver, a minha dúvida agora está em como proceder para que na minha segunda inclusão em diante, o aplicativo busque o último registro, armazene este registro em uma variável e a partir deste registro nesta variável possa então fazer o incremento dos próximos registros, pois como está agora, sempre me retorna com o primeiro número, ou seja, 000001 ao invés de ser 000002.
Continuo então aguardando a ajuda de alguém para esta questão.

Pedro Gomes

Ligeirinho
Mensagens: 22
Registrado em: Fevereiro 12th, 2011, 3:14 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: Verificar e validar campo vazio

Mensagempor Ligeirinho » Fevereiro 10th, 2012, 8:10 am

Desculpe Pedro, eu retirei esta informação do manual do Xmaker, e também estou estudando apostilas do Delphi, e pude ver que os exemplos de autoincremento são em números inteiros, poderíamos usar um Select max ou min, achar o maior valor do campo na tabela e converter para números e fazer a soma, mas como estou engatinhando ainda em Delphi não sei se é possível e os resultados, peço desculpas mas eu pelo menos tentei te ajudar uma abraço!

Gustavo
Mensagens: 244
Registrado em: Dezembro 22nd, 2010, 1:05 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: Verificar e validar campo vazio

Mensagempor Gustavo » Fevereiro 10th, 2012, 8:57 am

Olá,

Não existe a necessidade de utilizar um campo alfanumérico nem usar a rotina mencionada, afinal o campo só recebe números e vai sendo incrementado.
O que o usuário Ligeirinho disse está correto e concerteza atende a sua necessidade.

Mas se você quiser usar o campo alfanumérico, poderia usar um select.

Coloque o seguinte código na procedure AtribuiValoresPadrao do seu form e mude conforme a sua necessidade.

procedure TFormProdutos.AtribuiValoresPadrao;
Var
Query: TTabela;
begin
ExecutaPreValidacoes(TabelaPrincipal, Self, ListaCamposEd, True);
TabelaPrincipal.AtribuiRelacionamentos;
begin
Query := TTabela.Create(Application);
with Query do
begin
DataBase := TabelaPrincipal.DataBase;
Transaction := TabelaPrincipal.Transaction;
SQL.Clear;
SQL.Add('Select MAX(cast(PRO_CODIGO as int))');
SQL.Add(' From '+TabelaPrincipal.NomeTabela);
Conexao;
Active := True;
First;
TabGlobal.DPRODUTO.PRO_CODIGO.Conteudo := StrZero(StrToIntDef(Fields[0].AsString,0)+1);
Active := False;
Free;
end;
end;
pro_codigo.SelectAll;
end;
Att,

Gustavo Barreto
;)

Pedro Gomes
Mensagens: 38
Registrado em: Dezembro 28th, 2011, 11:30 am
Contato:

Re: Verificar e validar campo vazio

Mensagempor Pedro Gomes » Fevereiro 10th, 2012, 9:59 am

Olá Ligeirinho e Gustavo.

Obrigado à ambos pelas in formações, porém, consegui o meu objetivo colocando o código na procedure antesdeincluir e no OnEnter do campo, continuei com o código, conforme citei no início e embora o meu campo ser alfanumérico e a variável criada tb ser string, eu consigo que a função RetornaAutoIncremento me atribua o sequencial correto.
De qualquer forma, mais uma vez obrigado.

Pedro Gomes.


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