Leitura de cod de barras no java

6 respostas
T

bom dia

criei um frame que através da leitura do cod de barras ele trás as informações do produto.
utilizo uma leitora de mesa(symbol) , só que quando capturo o cod de barras para mostrar a descrição do produto na primeira vez ele tras a informçao correta, mas quando passo o segundo produto ele tras a informação do primeiro produto que ele leu.
exemplo.
1º - cod de barras 7896637023115 produto -Meclin ( buscou a informação correta)
2º - cod de barras 7896180300183 produto - Lacribel ( ele mostrou a infomação do produto anterior - Meclin )

estou declarando o ean como String.
alguma dica?

segue codigo…

private void codigoTxtKeyReleased(java.awt.event.KeyEvent evt) {

// TODO add your handling code here:

if(evt.getKeyCode() == 10){

try {

codProduto(codigoTxt.getText());

codigoTxt.requestFocus(true);

}catch(Exception e) {

JOptionPane.showMessageDialog(null, “Produto não cadastrado ou inativo!”);

produtoTxt.setText("");

codigoTxt.setText("");

codigoTxt.requestFocus(true);

}

}

}
public void codProduto(String codigo) {

Produto produto = null;

List produtos = ProdutoJpaDAO.getInstance().findByCodigo(codigo);

produto = produtos.get(0);

if(produto != null) {

pfatTxt.setText(produto.getCod());

produtoTxt.setText(produto.getDescricao());

}

}
classe DAO

public List findByCodigo(String codigo) {

try {

Query query = entityManager.createQuery(“from Produto e where e.ean = :ean”);

query.setParameter(“ean”, codigo);

List produtos = query.getResultList();

return produtos;

}catch(Exception e) {

e.printStackTrace();

return null;

}

}

6 Respostas

Rodrigo_Void

Formata o texto como código. Botão < / >

Rodrigo_Void

Se em teoria o código de barras é único no banco, altera seu método findByCodigo pra retornar apenas um registro, n uma lista.
Ai começa os teste:

  1. Faz a consulta no banco pra vr qnts/qual registro vem.
  2. Debuga seu código pra ver se está passando o ean correto e se o resultado da query tá certo.

Deve ser algum erro na lógica.

T

fiz um teste…
quando eu digito o cod de barras ele lê corretamente, mas quando faço a leitura pela leitora o erro acontece.
comparei o código de barras e não a diferença no digitado com o da leitora.

alguma ideia?
obrigado.

Rodrigo_Void

Sim, finaliza os testes q eu sugeri.
Executou a consulta direto no banco?
Alterou a busca pra trazer 1 registro?
No DEBUG o método de consulta recebeu o código certo e retornou outro produto?

T

boa noite
fiz o a consulta no banco e retornou o produto certo!
alterei a busca, mas quando eu fiz a leitura do cod de barras pela leitora ele no primeiro produto retornou certo, mas na segunda leitura ele retornou a informação do primeiro produto.
mas se ao invés de ler o cod de barras pela leitora eu digitar o numero do cod de barras ele trás a informação correta todas as vezes.
o bug esta na leitura do cod com a leitora…

Rodrigo_Void

Tá, mas vc pode ver o código q aparece qnd a leitora captura, certo? Neste caso n ficaria claro q a leitora estaria lendo errado e q n há problema na programação já q no produto físico tm um código e na leitura na tela aparece outro?
Pode dar um print desta tela?

Criado 6 de junho de 2018
Ultima resposta 8 de jun. de 2018
Respostas 6
Participantes 2