intaum, como jah postei uma duvida aki no forum e fui atendido, tenhu mais uma! auhauhauhauhua
por exemplo, eu fiz um programa de cadastro de moradores,
e fiz um esqueminha pra que na tela de cadastro, ele mostrasse qual seria o codigo daquele morador q eu ia cadastrar.
até ai tudo bem, o problema é q no meu banco de dados e campo codigo está com zerofill, ou seja, se o codigo é 1 ele vai automaticamente para 001
e na tela de cadastro tbm saía assim os dados, porem quando adicionei o comando para ele pegar o ultimo codigo de cadastro e adicionar +1, para q ele mostrasse qual seria o codigo daquele cadastro, ele retorna os codigos sem os zeros,
exemplo, 001 ele mostra 1, 014 ele mostra 14, 100 (obviamente) ele mostra 100, porem queria q até o cadastro 99 ele colocasse os zeros automaticos antes do numero, até atingir 3 casas decimais, ou seja caso seja do 1 ao 9 adicionasse dois zeros e de 10 a 99 apenas um zero, e apartir dai, não precisasse, pois o codigo jah teria 3 casas decimais.
como eu faço isso???
jah tentei inclusive com o jFormattedTextField, e também no camando tentei ao inves de adicionar 1, adicionar 001, mas não adianta…
não sei se é a melhor maneira, mas vc poderia usar o String.format
por exemplo:
int i = 1;
String.format("%03d",i);
vai retornar uma string no formato 001;
o tamanho do numero eh no minimo 3, e preenche com 0 a esquerda caso o numero tenha menos que 3 digitos.
Só uma critica que não tem a ver com sua pergunta, mas pode ser importante futuramente:
Cuidado com essa tecnica de gerar o código antes de gravar, pois se o seu sistema for funcionar em rede, um cliente pode gerar o código e um um outro gerar o mesmo código e na hora da gravação pode haver erro de chave primária duplicada.
Desculpe a intromissão, mas achei importante a dica.
[quote=pablouu]não sei se é a melhor maneira, mas vc poderia usar o String.format
por exemplo:
int i = 1;
String.format("%03d",i);
vai retornar uma string no formato 001;
o tamanho do numero eh no minimo 3, e preenche com 0 a esquerda caso o numero tenha menos que 3 digitos.[/quote]
Também acredito que essa forma seja a melhor e mais prática
[quote=thiago_spdvr]Só uma critica que não tem a ver com sua pergunta, mas pode ser importante futuramente:
Cuidado com essa tecnica de gerar o código antes de gravar, pois se o seu sistema for funcionar em rede, um cliente pode gerar o código e um um outro gerar o mesmo código e na hora da gravação pode haver erro de chave primária duplicada.
Desculpe a intromissão, mas achei importante a dica.[/quote]
Cara, vlw a dica!!
Só q não é o programa que define o codigo, ele apenas le o ultimo e adiciona +1, portanto ele “prevê”, caso alguem cadastre ao mesmo tempo, não haverá problema, pois um dos cadastros será 014 por exemplo e outro será 015, pois quem define não é o programa e sim o banco de dados, embora mostre 014, um deles será 015 caso haja cadastro ao mesmo tempo.