Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por asimoes »

Se é para ler o código de barras e é uma sequencia de 13 números é só usar a PICTURE, nada além de números irá passar, não precisa nem testar com lastkey()
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por asimoes »

Quintas,

Pelo debug não tem como testar, já fiz o teste aqui.
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
Jairo Maia
Moderador
Moderador
Mensagens: 2785
Registrado em: 16 Ago 2010 13:46
Localização: Campinas-SP

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por Jairo Maia »

Olá Pessoal,

Gostaria de fazer uma observação sobre a questão desse tópico:
ANDRIL escreveu:O problema é que o Harbour não esta tratando o Keyboard como o Clipper tratava
Andril, apesar de vários colegas terem proposto sugestões, posso garantir que o tratamento do buffer do teclado funciona EXATAMENTE igual ao Clipper.

Tenho vários sistemas de frente de caixa em varejo, e todos usam exaustivamente o leitor e nunca tive problemas em qualquer uma das versões com Harbour.

Sugiro testar seu aplicativo em outro micro. Se o problema cessar então tem algo em seu micro interferindo nesse processo de leitura do buffer. Se o problema persistir, você terá que entender o que em Harbour está interferindo em seu aplicativo, uma vez que como você disse em Clipper funciona.

NOTA: Penso que não tem nada a ver mas a única coisa que nunca usei foi Set TypeaHead To <nBuffer>.
Abraços, Jairo
Harbour / Clipper 5.2e - Blinker 7
(Não respondo dúvidas por MP ou E-mail. Por favor, não encaminhe via mensagem privada ou e-mail, dúvidas que podem ser compartilhadas com todos no fórum)
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por ANDRIL »

Pessoal não estava mais acompanhando o tópico e fiquei surpreso com todos esses comentários.
Jairo Maia escreveu:posso garantir que o tratamento do buffer do teclado funciona EXATAMENTE igual ao Clipper
Creio que seja verdade isso, porem no caso do DbEdit() acontece essa "diferença". Talvez por que no código dentro dele, haja algo com inkey() que interfira no resultado. Em outras funções funciona corretamente, até o momento.

Como postei o código, basta compilar o exemplo para Clipper e o mesmo para Harbour e verá que não funciona. Quando migramos achamos que tudo funcionará como já testamos em Clipper e deparamos com essas "pedras".

Na verdade o problema detectei no cliente, depois em outro... conforme ia atualizando, pois achava que era algum problema neles (PC, leitor etc) até que testei aqui no laboratório e detectei o problema.

A solução foi migrar para TBrowse() usando o tecl_p=INKEY(0) fez a leitura normalmente. Embora tenha causando um grande trabalho para mudar por que é a minha maior rotina, ao menos consegui fazer funcionar. Estava desesperado em não achar a solução, a maioria dos clientes usam leitor.

E olha que no meu Dbedit não tinha nenhum Inkey() e mesmo colocando-o o problema só piorava.
Ate+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
ANDRIL
Usuário Nível 5
Usuário Nível 5
Mensagens: 1298
Registrado em: 06 Jul 2004 00:44
Contato:

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por ANDRIL »

Novamente o inkey() causando problema no Harbour. Como disse passei para TBrowse e usando o inkey() consegui fazer o leitor ler corretamente. Agora estou ajustando minha função de background que fica verificando a existência de alguns arquivos, por coincidência tem um "tecl_a:=inkey(1)", já fez meu TBrowse não reconhecer corretamente os números capturados pelo leitor.

Gostaria de comparar o fonte da função inkey do Clipper e do Harbour, pena que não tenho aqui.
Até+
Clipper 5.2e / Blinker 5.1 / Harbour 3.2 / GTwvg
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por asimoes »

Harbour deriva do clipper, o código em clipper provavelmente seja dificil de ver, agora em harbour você pode ver em inkey.c na pasta src\rtl

A função inkey chama hb_inkey que está em inkeyapi.c

Olhando código da dbedit

nKeyStd := hb_keyStd( Inkey(, hb_bitOr( Set( _SET_EVENTMASK ), HB_INKEY_EXT ) ) )
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
Avatar do usuário
asimoes
Colaborador
Colaborador
Mensagens: 4919
Registrado em: 26 Abr 2007 16:48
Localização: RIO DE JANEIRO-RJ

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por asimoes »

Voltando ao assunto, tive esse problema com Hwgui objeto GET, o problema foi resolvido com SET TYPEAHEAD TO 0 (zero)
►Harbour 3.x | Minigui xx-x | HwGui◄
Pense nas possibilidades abstraia as dificuldades.
Não corrigir nossas falhas é o mesmo que cometer novos erros.
A imaginação é mais importante que o conhecimento. (Albert Einstein)
lucimauro
Usuário Nível 3
Usuário Nível 3
Mensagens: 465
Registrado em: 21 Set 2004 21:02
Localização: Sobral-CE

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por lucimauro »

EU também tive o mesmo problema com a hwgui que não lia o código de barras da NF-e nem a pau corretamente, sempre engolia alguns números, então resolvi com o comando acima citato pelo assimoes. então acho que esse comando acima seria a solução do problema.
Avatar do usuário
Itamar M. Lins Jr.
Administrador
Administrador
Mensagens: 7928
Registrado em: 30 Mai 2007 11:31
Localização: Ilheus Bahia
Curtiu: 1 vez

Harbour - Keyboard/HB_KeyPut registram codigo barras errado!

Mensagem por Itamar M. Lins Jr. »

Ola!
Uso a Hwgui 2.20 e funciona tudo ok. Ler tudo DANFE, EAN... Copiar colocar com GET @R etc...
Talvez, na versão 1.17 ainda estava em testes UTF8, Unicode.
Tem vários FIX´s neste sentido até a 2.20.

Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Responder