Limpar um determinado campo no retorno do bGetKey do TGet.

Estou criando uma tela que o usuário irá digitar 13 ou 14 caracteres, dependendo do tipo de código de barras. Quando o usuário digita ("Bipa" com leitor) os 14 caracteres estou utilizando o oCodBar:bValid para realizar a validação e gravar as informações do código de barras X produto, na sequência eu já limpo o campo de entrada para receber um próximo código de barras.

Quando o usuário digita 13 caracteres eu estou utilizando oCodBar:bGetKey propriedade do Tget, conforme o link: https://tdn.engpro.totvs.com.br/pages/viewpage.action?pageId=344464907.

Então eu faço uma validação, se o campo já tem 13 posições e se o mesmo inicia com "789" por exemplo, se sim, eu valido se o código de barras existe e sigo com o processamento, no final eu quero limpar o campo que deu origem ao processamento, mas não está sendo possível. Gostaria de mais informações sobre o bGetKey com TGet.

oCodBar := TGet():New( 068, 048,{ |u| if(PCount()>0,cCodBar:=u,cCodBar) },oDlg2,100,013,"@!",,0,,,.F.,,.T.,,.F.,,.F.,.F.,,.F.,.F.,"","oCodBar",,,,,,,"Código de Barras",1,oFont ) oCodBar:SetCss(cCSSGet) oCodBar:lFocSel := .F. oCodBar:bValid := {|| iif( !Empty(cCodBar),Registrar(cCodBar,nQtde), ) } oCodBar:bGetKey := {|self,cText,nkey| texto(@self,@cText,@nkey,@oDlg2,@cCodBar,@nQtde)} oCodBar:SetFocus()

Quero limpar o campo cCodBar e atualiar a tela, interrompendo o bGetKey.

advpl TGet

compartilhar
  • Por favor, coloque o bloco de código utilizando as opções de formatações existentes, isso ajuda na leitura da pergunta. Acredito que você pode chegar no resultado esperado, primeiro, ajustando o parâmetro do TGet "oCodBar" para cCodBar (conforme docs TGET) e depois, no valid do campo validar o tamanho da váriavel cCodBar, processar o que for necessário e no final do processamento limpar o conteúdo da variável cCodBar.

    Lucas Briesemeister   18 de Jan de 2021
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do TOTVS DevForum!

0 resposta

Não é a resposta que estava procurando? Procure outras perguntas com as tags advpl ou faça a sua própria pergunta.