Fórum Leitor Symbol LS 7708 para busca de produtos... #365311
21/10/2008
0
Sempre utilizei leitores manuais e deu certo, agora colocamos um leitor de alta definicial Symbol LS 7708, aqueles para caixa de supercados, e meu código não funciona mais. Eu coloco no OnChange do DBGrid o código abaixo, mas qdo utilizo esse leito Symbol de alta definição ele nem chega a ativar o onchange, mas com os outros leitores comuns funciona certinho, alguém tem alguma idéia de como resolver esse problema?
/// procedimento do campo OnChange
procedure TFrmFrenteCaixa.TbItensCodprodChange(Sender: TField);
var WCodigo : String;
begin
WCodigo:=´´;
if tbItensCodProd.value <> ´´ then
begin
TbProdutos.IndexFieldNames := ´CodProduto´;
if not TbProdutos.FindKey([TbItensCodProd.value]) then
begin
messagedlg(´Código Inexistente´+#1310+´Digite um código válido´,mterror,[mbok],0);
Exit;
end
else
begin
TbItensCodProduto.Value := TbProdutosCodigo.Value;
TbItens2.IndexFieldNames := ´Nroped;CodProduto´;
if TbItens2.FindKey([TbItensNroPed.Value,TbItensCodProduto.value]) then
begin
WCodigo:=TbItensCodProd.Value;
TbItens.Cancel;
TbItens.First;
While not TbItens.Eof do
begin
if TbItensCodProd.Value = WCodigo then
begin
TbItens.Edit;
TbItensQuantidade.Value:=TbItensQuantidade.Value+1;
TbItens.Post;
end;
TbItens.Next;
end;
end
else
begin
TbProdutos.IndexFieldNames := ´´;
if TbProdutos.FindKey([TbItensCodProduto.Value]) then
begin
TbItensPreco.Value:=TbProdutosPrecoVenda.Value;
TbItensAliq_ICMS.Value:=TbProdutosICMS.Value;
TbItensDataPed.Value:=TbPedidosDataPed.Value;
TbItensProduto.Value:=TbItensProduto2.Value;
end;
end;
end;
end;
TbItens.Append;
DbGrid1.SelectedIndex:=0;
end
else
begin
messagedlg(´Código Obrigatório! ´+#1310+´Digite um código válido. ´,mterror,[mbok],0);
Exit;
end;
end;
/// procedimento do campo OnChange
procedure TFrmFrenteCaixa.TbItensCodprodChange(Sender: TField);
var WCodigo : String;
begin
WCodigo:=´´;
if tbItensCodProd.value <> ´´ then
begin
TbProdutos.IndexFieldNames := ´CodProduto´;
if not TbProdutos.FindKey([TbItensCodProd.value]) then
begin
messagedlg(´Código Inexistente´+#1310+´Digite um código válido´,mterror,[mbok],0);
Exit;
end
else
begin
TbItensCodProduto.Value := TbProdutosCodigo.Value;
TbItens2.IndexFieldNames := ´Nroped;CodProduto´;
if TbItens2.FindKey([TbItensNroPed.Value,TbItensCodProduto.value]) then
begin
WCodigo:=TbItensCodProd.Value;
TbItens.Cancel;
TbItens.First;
While not TbItens.Eof do
begin
if TbItensCodProd.Value = WCodigo then
begin
TbItens.Edit;
TbItensQuantidade.Value:=TbItensQuantidade.Value+1;
TbItens.Post;
end;
TbItens.Next;
end;
end
else
begin
TbProdutos.IndexFieldNames := ´´;
if TbProdutos.FindKey([TbItensCodProduto.Value]) then
begin
TbItensPreco.Value:=TbProdutosPrecoVenda.Value;
TbItensAliq_ICMS.Value:=TbProdutosICMS.Value;
TbItensDataPed.Value:=TbPedidosDataPed.Value;
TbItensProduto.Value:=TbItensProduto2.Value;
end;
end;
end;
end;
TbItens.Append;
DbGrid1.SelectedIndex:=0;
end
else
begin
messagedlg(´Código Obrigatório! ´+#1310+´Digite um código válido. ´,mterror,[mbok],0);
Exit;
end;
end;
Janete
Curtir tópico
+ 0
Responder
Posts
22/10/2008
Janete
Sempre utilizei leitores manuais e deu certo, agora colocamos um leitor de alta definicial Symbol LS 7708, aqueles para caixa de supercados, e meu código não funciona mais. Eu coloco no OnChange do DBGrid o código abaixo, mas qdo utilizo esse leito Symbol de alta definição ele nem chega a ativar o onchange, mas com os outros leitores comuns funciona certinho, alguém tem alguma idéia de como resolver esse problema?
/// procedimento do campo OnChange
procedure TFrmFrenteCaixa.TbItensCodprodChange(Sender: TField);
var WCodigo : String;
begin
WCodigo:=´´;
if tbItensCodProd.value <> ´´ then
begin
TbProdutos.IndexFieldNames := ´CodProduto´;
if not TbProdutos.FindKey([TbItensCodProd.value]) then
begin
messagedlg(´Código Inexistente´+#1310+´Digite um código válido´,mterror,[mbok],0);
Exit;
end
else
begin
TbItensCodProduto.Value := TbProdutosCodigo.Value;
TbItens2.IndexFieldNames := ´Nroped;CodProduto´;
if TbItens2.FindKey([TbItensNroPed.Value,TbItensCodProduto.value]) then
begin
WCodigo:=TbItensCodProd.Value;
TbItens.Cancel;
TbItens.First;
While not TbItens.Eof do
begin
if TbItensCodProd.Value = WCodigo then
begin
TbItens.Edit;
TbItensQuantidade.Value:=TbItensQuantidade.Value+1;
TbItens.Post;
end;
TbItens.Next;
end;
end
else
begin
TbProdutos.IndexFieldNames := ´´;
if TbProdutos.FindKey([TbItensCodProduto.Value]) then
begin
TbItensPreco.Value:=TbProdutosPrecoVenda.Value;
TbItensAliq_ICMS.Value:=TbProdutosICMS.Value;
TbItensDataPed.Value:=TbPedidosDataPed.Value;
TbItensProduto.Value:=TbItensProduto2.Value;
end;
end;
end;
end;
TbItens.Append;
DbGrid1.SelectedIndex:=0;
end
else
begin
messagedlg(´Código Obrigatório! ´+#1310+´Digite um código válido. ´,mterror,[mbok],0);
Exit;
end;
end;
Pelo que pude perceber, esse leitor Symbol LS 7708 não dá o enten automáticamente igual aos outros mais comuns... alguém pode me ajudar, preciso muito achar uma solução para esse problema.
Responder
Gostei + 0
24/10/2008
Vitor Alcantara
O leitor está lendo o código de barras e não está dando o ENTER no final?
Se for isso talvez você precise configurar o próprio leitor, geralmente vem um livrinho para que se faça a configuração do leitor. É um livrinho cheio de código de barras, onde você vai configurando de acordo com suas necessidades.
Se for isso talvez você precise configurar o próprio leitor, geralmente vem um livrinho para que se faça a configuração do leitor. É um livrinho cheio de código de barras, onde você vai configurando de acordo com suas necessidades.
Responder
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)