Boa Tarde galera!
Estou fazendo um DAV (Documento Auxiliar de Venda) e meu problema está na contagem do mesmo.
Toda vez que eu abrir um novo DAV tem um campo JText que precisa realizar sempre uma contagem.
É necessario de 10 a 13 numeros. Exemplo: contagem inicia em 0000000001 até 9999999999, após isso a contagem reinicia.
Fiz algo parecido com isso, mas não deu certo.
Entendi errado ou vc quis dizer que esse tal DAV tem um campo texto que precisa ter
um número entre 10 e 13 digitos originado num contador long, é isso?
Tá, se for isso você coloca um
atributo private static long numero = 0;
E na classe, no construtor você faz um
numero++
para que ele seja acrescido em 1 toda vez que a um novo DAV for instanciado e
E se você precisa ele com formato com zeros a esquerda, crie uma função
que transforme o long em String, veja o tamanho da String e concatene Zeros a esquerda
até o tamanho necessário, algo assim:
public String colocarZerosEsquerda(String texto, int qtd){
String ret = "";
if(texto.length()==qtd)
return texto;
for(int i=texto.length(); i<qtd; i++)
ret += "0";
ret += texto;
return ret;
}
Se esse número de ADV tiver de ser único, é bom persistir no banco e recuperar a
cada iniciação do sistema.
Por que o contador estático começa do zero a cada iniciação do sistema.
Então o melhor, toda vez que um novo DAV for criado, é fazer um select no banco
pedindo o MAX(numeroDAV), somar mais 1, formatar com os zeros e continuar
dalí.
Note que estamos falando do valor long, nao da String formatada. Ela pode
aparecer numa coluna do banco, mas não serve para controlar qual é o maior
valor até aquele momento.
[quote=Johanny]Boa Tarde galera!
Estou fazendo um DAV (Documento Auxiliar de Venda) e meu problema está na contagem do mesmo.
Toda vez que eu abrir um novo DAV tem um campo JText que precisa realizar sempre uma contagem.
É necessario de 10 a 13 numeros. Exemplo: contagem inicia em 0000000001 até 9999999999, após isso a contagem reinicia.
Fiz algo parecido com isso, mas não deu certo.