Bom dia. Tenho uma aplicação em coletor de dados. Preciso travar um determinado campo da tela, para que o usuário apenas possa ler o codigo de barras e não informar via teclado Alguém tem alguma solução para isto? Obrigado
Eu desconheco.... mas pode existir alguma forma... O que voce poderia fazer seria o seguinte, se for vc mesmo que gere o codigo de barras poderia colocar uma codificacao na etiqueta e só aceitar no campo esses codigos, se não for vc que gere essas etiquetas acho um pouco dificil, pois os coletores / leitores simulam a entrada da dados do teclado, sem nenhuma diferenciação... Acho que pode haver outras maneiras mas de imediato só consegui pensar nisso.
Re: Travar teclad o de coletor de dados Meu caro, dá pra fazer uma gambiarra, geralmente não é interessante usar destes recursos, mas as vezes é o jeito. Então o Raciocínio é no Entry Você vai Setar o Minuto e Segundo que o cara começou a digitar, o no Leave por ex você faz um cálculo Simples e ver se foi digitado ou Lido pelo coletor, uma vez que o Coletor ler de forma muito mais rápida que uma digitação. Obs: Como não sei Obter os Milésimos de Segundos, então se o Usuário digitar e finalizar no mesmo segundo não vai funcionar. Lá vai a Gambiarra: Código: DEF VAR vTempo AS CHAR. DEF VAR vOldTempo AS CHAR. No Evento Entry do campo: Código: ASSIGN vOldTempo = SUBSTRING(STRING(TIME,"HH:MM:SS"),5,1) + SUBSTRING(STRING(TIME,"HH:MM:SS:"),7,2). No evento Leave por ex: Código: ASSIGN vTempo = SUBSTRING(STRING(TIME,"HH:MM:SS"),5,1) + SUBSTRING(STRING(TIME,"HH:MM:SS:"),7,2). IF DEC(vTempo) - DEC(vOldTempo) > 1 THEN DO: DISABLE FILL-IN-1 WITH FRAME DEFAULT-FRAME. MESSAGE "Caro Usuário, este Campo é de Uso Obrigatório do Leitor de Código de Barras" VIEW-AS ALERT-BOX. /* Ai aqui você zera o campo, volta... ENABLE Campox. APPLY "ENTRY" TO Campox. */ END. ELSE DO: /* Prossegue com o Processo */ END. Outra coisa também é que o leitor tem que está configurado pra jogar o Table ou Enter após a leitura. Veja se isso dá pra lhe ajudar ai em alguma coisa. Abraços, Eriuton Charles
Muito obrigado pela dica. Estarei testando amanhã após o teste eu retorno. Realmente não tinha pensado nesta lógica. Obrigado.