Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 4395 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

  • Membros Pro
Postado

Olá!

Boa tarde!

Ao serem executadas leituras consecutivas de códigos de barra para vendas, como é comum em supermercados;

A cada item que eu uso o método “VendeItem”, eu tenho de aguardar a impressora imprimir para que eu possa passar novamente este item pelo leitor de código de barras...

Isso torna o sistema muito lento para o usuário final...

Em outra aplicação que tenho, (a qual faz a comunicação diretamente com a DLL e a impressora Bematech), Não precisei fazer nenhum tratamento para o próprio Windows armazena o buffer de entrada (seja pelo teclado ou seja pelo leitor de código de barras) e envia o comando para a impressora;

Como vocês contornarão esta situação?

  • Moderadores
Postado

Você utiliza o ACBrLCB para ler os códigos? se sim habilitou a fila? ou o leitor não é via serial e sim usb ou junto ao teclado?

o ACBrECF trabalha diferente da DLL, ela trava o sistema

acho que você deveria pesquisar por fila aqui no fórum

Consultor SAC ACBr Juliomar Marchetti
 

Projeto ACBr

skype: juliomar
telegram: juliomar
e-mail: [email protected]
http://www.juliomarmarchetti.com.br
MVP_NewLogo_100x100_Transparent-02.png
 

 

  • Membros Pro
Postado

Estou fazendo a entrava via teclado (usb);

Mais valeu a dica da Fila vou dar uma olhada aqui no forum e ver o que eu encontro;

E quanto ao ACBRLCB não estou usando...

  • Membros Pro
Postado

So pra constar, estou fazendo este processo da seguinte forma:

Cadastrei um item no meu sistema com código "1";

Na tela de venda há um "edit", onde eu informo o código do item, ao ser pressionado "enter" é disparado o evento de venda do item;

Assim sendo eu "teclo" : 1 "enter" 1 "enter" 1 "enter" 1 "enter" 1 "enter" ....

Sei que a impressora demora a processar as vendas, porem apenas o primeiro 1 enter é processado, o restante das entradas de teclado são ignoradas;

Acredito que seja alguma rotina interna do ACBR que limpe este cash;

  • Fundadores
Postado

Não tem nada a haver com o ACBr... Com a DLL do fabricante o comportamento é ligeiramente diferente, pois qual ela está sendo executada, a sua Thread (Main) está suspensa e bloqueada...

Se você não implementar um mecanismo de filas isso nunca funcionará, pois a rotina de Venda de Item será disparada várias vezes de forma concorrente...

Experimente algo mais simples:

ACBrECF1.Device.ProcessMessages := False;

Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Membros Pro
Postado

Daniel

Deu certo!

Desculpa minha ignorância mais, da pra explicar o superficialmente o que eu desabilitei com este comando?

pq eu tenho receito do que isto pode acarretar...

  • Fundadores
Postado

O ACBrECF1.Device.ProcessMessages faz o ACBrECF chamar internamente Application.ProcessMessages enquanto ele fica esperando a resposta do ECF...

A vantagem deste método, é que a sua interface não fica "congelada", enquanto o ECF não responde...

A desvantagem, é que com a Interface livre para novos cliques e "enters", o usuário consegue disparar chamadas a eventos de forma concorrente...

Desativando o ProcessMessages o ACBrECF se comportará semelhante a uma DLL de fabricante de ECF, ou seja, só devolverá o controle para a sua aplicação, quando ele terminar de trabalhar...

  • Curtir 1
Consultor SAC ACBr

Daniel Simões de Almeida
O melhor TEF, é com o Projeto ACBr - Clique e Conheça
Ajude o Projeto ACBr crescer - Assine o SAC

Projeto ACBr     Telefone:(15) 2105-0750 WhatsApp(15)99790-2976.

  • Este tópico foi criado há 4395 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.