Ir para conteúdo
  • Cadastre-se

dev botao

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

Recommended Posts

Postado
Olá pessoal,
 
Estou adaptando o sistema com o método de venda frenética (ou venda do cupom usando uma fila), conforme mencionado em alguns tópicos do fórum, como:
   
 
 
Consegui efetuar a venda dos itens de forma rápida na maioria dos casos alterando essa propriedade abaixo:  
     ACBrECF1.Device.ProcessMessages := False ; 
  
Até aí tudo bem.   
A situação em que eu tive problema é ao abrir o cupom. 
  
Ao passar pelo item guardo numa lista o código do produto, limpo esse campo, inicio o timer, e deixo o campo disponível para edição do operador.
  
  No evento do timer executo o comando para salvar o item, e sistema verifica por meio de um flag se é necessário abrir o cupom.
  Só que quando for necessário abrir o cupom acabo tendo de ler algumas coisas no ECF, Como:
  • PoucoPapel 
  • GrandeTotal (valido o GT)
  • NumCupom (preciso para gravar no banco de dados)
  • NumCCF   (preciso para gravar no banco de dados)
  • DataHora (valido a hora)  
  • Então, Abro o Cupom e Gravo no banco de dados as informações.
 
Pelos meus testes aqui ao passar dois itens (de forma bem rápida, 1 seg. ou menos), seja via teclado ou código de barras, ele acaba muitas vezes lendo só o primeiro e o segundo ou não lê nada ou pega parte do que foi digitado por que está tentando abrir o cupom.
 
Tem alguma forma de deixar a tela do cupom disponível para edição mesmo ocorrendo a leitura das informações do ecf, ou seja, uma forma da tela "não travar" ao abrir e vender os itens?
 
Saudações,
Luiz Paulo Ferrari
 
  
  
  
  
  
 

Saudações,
Luiz Paulo Ferrari

  • Fundadores
Postado

Vc deve estar implementando errado...

 

A rotina de Venda, não acessa nada do ECF... apenas alimenta a "fila" de itens a vender, e liga o Timer...

 

O Timer, esse SIM, faz a venda dos Itens, um por vez e nesse processo de venda que vc acessaria o ECF e gravaria no BD...

 

dessa maneira não importa o quão rápido o usuário consiga efetuar a venda... Procurei demonstrar isso em:

http://www.forumweb.com.br/foruns/topic/74093-pequenos-problemas-com-acbr/

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.

  • Consultores
Postado
ACBrECF1.Device.ProcessMessages := False ;

Essa parte está errada. Se você está trabalhando em fila com venda frenética, não precisa desabilitar o ProcessMessages.

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
Postado (editado)

 

Vc deve estar implementando errado...

 

A rotina de Venda, não acessa nada do ECF... apenas alimenta a "fila" de itens a vender, e liga o Timer...

 

O Timer, esse SIM, faz a venda dos Itens, um por vez e nesse processo de venda que vc acessaria o ECF e gravaria no BD...

 

dessa maneira não importa o quão rápido o usuário consiga efetuar a venda... Procurei demonstrar isso em:

http://www.forumweb....lemas-com-acbr/

 

Olá Daniel,

 

acho que talvez eu não tenha me expressado bem,

 

na rotina de venda eu apenas alimento essa de "fila" de itens e ligo o timer como você mencionou. O que eu faço a mais é só validar se o produto está cadastrado. Sendo que essa parte funcionou bem.

 

No Timer é que realmente estou acessando o ECF e gravando no BD.

 

Mas mesmo fazendo dessa forma, quando o timer vai tentar efetuar a venda do 1º item da fila e tem de executar o procedimento de abrir o cupom, ele como que trava a rotina de venda por alguma razão. Assim que o timer vende o 2º item isso não acontece mais.

 

Devo estar fazendo alguma coisa errada então, por isso vou tentar alguma abordagem diferente, fazer outros testes e qualquer coisa menciono aqui no tópico.

 

Muito obrigado desde já.

Editado por Luiz Paulo

Saudações,
Luiz Paulo Ferrari

Postado

Quote

ACBrECF1.Device.ProcessMessages := False ;

Essa parte está errada. Se você está trabalhando em fila com venda frenética, não precisa desabilitar o ProcessMessages.

 

 

 

Olá EmBarbosa,

 

tive de fazer dessa forma por causa da Validação do Produto, onde se o usuário digitar um código de produto que não está cadastrado, faço aparecer uma mensagem de aviso na Tela (executo com showmodal), isso não no Timer, mas na Rotina de Venda mesmo.

 

Quando essa "mensagem" fica na tela, a fila do timer acabou ficando interrompida, não continuando o timer. E se o usuário demora para fechar essa tela, uns 10 segundos por exemplo, deu problema no ecf ao executar o comando de venda de item.

 

Depois que desabilitei o ProcessMessages não aconteceu mais esse problema sendo que o timer continua executando a fila sem problemas.

 

Até pensei em por essa mensagem de aviso no Timer, mas como pode acontecer de haver alguma outra mensagem (com showmodal) por algum erro que talvez não espero então preferi desabilitar o ProcessMessages mesmo.

 

Quais seriam os problemas ao desabilitar o ProcessMessages? Pode atrapalhar o método de venda frenética ou outra coisa?

Saudações,
Luiz Paulo Ferrari

  • Consultores
Postado

Quais seriam os problemas ao desabilitar o ProcessMessages? Pode atrapalhar o método de venda frenética ou outra coisa?

Os problemas? Exatamente o que você relatou no primeiro post:

 

Pelos meus testes aqui ao passar dois itens (de forma bem rápida, 1 seg. ou menos), seja via teclado ou código de barras, ele acaba muitas vezes lendo só o primeiro e o segundo ou não lê nada ou pega parte do que foi digitado por que está tentando abrir o cupom.

Que é o que o Daniel relatou acima ao dizer que a aplicação fica congelada...

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 2 semanas depois ...
  • Solution
Postado (editado)

Boa Tarde pessoal,

 

Finalmente consegui melhorar a abertura do cupom numa venda frenética, no meu caso.

Antes da abertura do cupom fiz o seguinte:

ACBrECF1.ExibeMensagem:= False

O Problema é que quando o "ExibeMensagem" é verdadeiro a tela "pisca" e "trava" quando o cupom está abrindo.

 

Sobre a propriedade ACBrECF1.Device.ProcessMessages ela acabou sendo indiferente para mim, por que funcionou mesmo estando habilitada ou não. Acabei deixando desabilitada mesmo enquanto estiver abrindo e vendendo itens.

 

Fiz um formulário de exemplo utilizando o ECFTeste que mostra o uso da venda frenética. Para este basicamente copiei o método utilizado pelo Daniel Simões em outros tópicos.

Quem sabe pode ajudar, por isso vou colocar o executável em anexo. (Testei em uma Daruma f600 e emulador da Epson)

 

Não sei se o melhor lugar a pôr é neste tópico. Se for, posso colocar os fontes aqui também.

ECFTeste.rar

Editado por Luiz Paulo

Saudações,
Luiz Paulo Ferrari

Postado

Outra propriedade que mudei foi:

ACBrECF1.BloqueiaMouseTeclado:= False

 

Hoje acabei encontrando um link no Fórum da Automação Total do Yahoo, onde o Daniel havia mencionado que tais propriedades, como o acima, deviam ser desabilitadas.

Que pena que não havia encontrado antes.  :cry:

 

Mas o bom é que no fim tudo deu certo.  :grin:

Saudações,
Luiz Paulo Ferrari

  • 1 ano depois...
  • Consultores
Postado

Não sei se o melhor lugar a pôr é neste tópico. Se for, posso colocar os fontes aqui também.

E hoje quando eu fui analisar o código pra ver se enviava ao SVN é que percebir que os fontes não estavam lá no anexo... fon fon fonnnnnn

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Consultores
Postado

Perdão, :oops:

vou verificar se encontro os fontes.

Beleza... na verdade foi falha minha.

Eu achei que os fontes estavam no anexo, mas está claro pelo que escreveu que era só o executável.

A minha ideia era colocar no programa exemplo pra facilitar para os novos.

Mas se não encontrar, ainda é possível de implementar olhando as mensagens do Daniel e minhas espalhadas pelo fórum. (:

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • 3 semanas depois ...
  • Consultores
Postado

Não foi fácil, mas encontrei os fontes.  :mrgreen:

Espero que ajude.

Muito obrigado. Fiz umas pequenas alterações e disponibilizei no SVN hoje.

  • Curtir 1

[]'s

Consultor SAC ACBr

Elton
Profissionalize o ACBr na sua empresa, conheça o ACBr Pro.

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

Um engenheiro de Controle de Qualidade(QA) entra num bar. Pede uma cerveja. Pede zero cervejas.
Pede 99999999 cervejas. Pede -1 cervejas. Pede um jacaré. Pede asdfdhklçkh.
  • Este tópico foi criado há 3612 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.
Visitante
Este tópico está agora fechado para novas respostas
×
×
  • 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.