USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  dificuldade para codificar..
gracymary
PARA DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 09/01/2007 13:59 hs            

Boa tarde..

Pessoal... o "tema" é o mesmo... estou postando novamente... tentando ser "mais transparente" quanto as minha "ignorância"...

Tenho um campo txtCodigoBarras.. que recebe a leitura do "leitor óptico"... acontece que não estou sabendo formatar esse campo.. na verdade.. nem sei se é uma questão de "formatação"...

Se eu não tivesse "produtos por peso" ... não teria problemas... mas também não teria a oportunidade de aprender..

Não estou sabendo "lidar" com o campo txtCodigoBarras para que ele receba a "leitura do leitor óptico" quando o produto é por peso...

Não sei em qual evento do meu campo txtCodigoBarras inserir alguma função ou código... para que o leitor consiga pesquisar apenas o código do produto no banco de dados sem o "valor a ser pago" que vem no restante do códigodebarras da etiqueta emitida pela balança..

Estrutura do banco dados tblVENDA:

campo txtCodigoBarras = tipo Texto - 13

campo txtQtde = tipo Numero - Duplo Padrão - 2

campo txtPrecoUnitario = tipo Numero - Duplo - 2

 

Quanto as etiquetas emitidas pela balança:

Sei que o 2 = produto pesado (a balança informa)

0012 = código que o produto foi cadastrado na balança

00000250 = vr a ser pago

 

Então... pra' mim, que não tenho grandes conhecimentos de programação, tá complicado.. (vou usar a palavra formatar).. "formatar" esse campo...

Penso que.. deveria utilizar como ponteiro o "2" (da balança)... então.. quando "o início do txtcodigobarras" fosse "=2".. o leitor leria apenas "até a quinta posição" consultando na tblProdutos (assim o valor da compra não afetaria a pesquisa do código do produto no banco de dados).. então.. ou.. completaria "à direita da quinta posição com zeros" e o valor da compra iria pro subtotal... ou após a "quinta posição (no campo txtCodigoBarras) sairia mesmo o valor da compra  (mas sem afetar a pesquisa na tblProdutos) e que seria repetida no subtotal - e como temos o preço por "kg" e o valor a ser pago... teremos a quantidade.. "se" a "primeira posição do txtcodigoBarras = 2"...

Acho que devo mudar o "tipo de dados" do campo "Qtde" e do "PrecoUnitario" ..

Pessoal... não estou sabendo é "codificar" esse raciocínio.. até nem sei bem se "ele" está correto... não sei se é assim que "funciona"... já li sobre as funções len-left-right- ... apenas não sei "como e aonde... inserí-las" pra' que surtam efeito..

 conto com a ajuda de vocês.. e conseguindo concluir... disponibilizo pra' estudos..

abraços

gracy

   
kerplunk
Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
ENUNCIADA !
Postada em 10/01/2007 09:30 hs         
Bom, como diria Jack, o estripador, vamos por partes...
Primeiro: Poderia postar um exemplo do número retornado pela leitura do código?
Segundo: Com certeza isso seria no evento KeyPress do TxtCodigoBarras. Já que o leitor retorna SEMPRE o número do código de barras em si, seguido de um CHR(13)
Mas pra te mostrar um exemplo de como seria o código, preciso do número retornado pela leitor, e você me explicando o que foi lido, tipo peso, código e preço.
   
Gelson Porto
Pontos: 2843 Pontos: 2843 Pontos: 2843
RIO DE JANEIRO
RJ - BRASIL
ENUNCIADA !
Postada em 12/01/2007 08:20 hs            

gracymary, bom dia..

      Pegando carona no Kerplunk, post o retorno da leitura (o que aparece no txtCodigoBarras) e depois lhe informaremos como format o objeto.

     Será algo do tipo:

           txtCodigoBarras = mid(txtCodigoBarras,2,5)

     Explicando: Do valor retornado pegue apenas 5 digitos apartir da 5 posição..

 

 

 


 

 
   
gracymary
PARA DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 19/01/2007 12:54 hs            
vejam... o leitor me retorna => 2001200002229 , ou seja.. 2=referente a produto por peso, 0012 que é o código (cadastrado na balança e na tblProdut) o restante o vr a ser pago .. o último número é o dígito verificador.
no meu campo da tblVENDA o "txtCodigobarras" está assim....


no evento ao sair..
If Me.txtCodigoBarras.Text <> "" Then
Me.PegaProduto
Else
Me.LimpaProduto

no evento ao apertar tecla..
If KeyCode = 40 Then
SendKeys "{TAB}"
End If
If KeyCode = 38 Then
SendKeys "+{TAB}"
End If

ao pressionar tecla..
'MsgBox KeyAscii
Dim X As Integer
'BackSpace
If KeyAscii = 8 Then Exit Sub
'Números
For X = 48 To 57
If X = KeyAscii Then
Exit Sub
End If
Next X
'+
If KeyAscii = 43 Then
Me.txtQtde.Value = Me.txtQtde + 1
End If
'-
If KeyAscii = 45 Then
If Me.txtQtde.Value > 1 Then
Me.txtQtde.Value = Me.txtQtde - 1
End If
End If
KeyAscii = 0


Public Sub PegaProduto()
Dim QtdeProdutos As Integer
Dim Linha
QtdeProdutos = Me.ltxProdutos.ListCount - 1
If Me.txtCodigoBarras.Text = "" Then Exit Sub
For Linha = 0 To QtdeProdutos
If Me.ltxProdutos.Column(1, Linha) = Me.txtCodigoBarras.Value Then
Estoque = Me.ltxProdutos.Column(4, Linha)
Me.txtDescricao.Value = Me.ltxProdutos.Column(2, Linha)
Me.txtPrecoUnitario.Value = Format(Me.ltxProdutos.Column(3, Linha), "#,##0.000")
If Incluir = True Then
'SendKeys "{TAB}"
Me.IncluirProduto
'SendKeys "{Enter}"
End If
Exit Sub
End If
Next Linha
MsgBox "Produto não cadastrado.", vbInformation, "
SIGVC "
Incluir = False
Me.LimpaProduto
SendKeys "+{TAB}"
End Sub


Public Sub IncluirProduto()
Dim QtdeItens As Integer
Dim Qtde As Integer
Dim SubTotal As Double
Dim Total As Double
Incluir = True
If Incluir = False Then Exit Sub
If Me.txtCodigoBarras.Value <> "" Then
If Estoque < Me.txtQtde.Value Then GoTo EstIns
DoCmd.OpenQuery "cnsATUEST"
DoCmd.OpenQuery "cnsINPRVE"
Me.LimpaProduto
Me.ltxProdutosVenda.Requery
Me.ValoresCompra
Me.ltxProdutosVenda.Selected(Me.ltxProdutosVenda.ListCount - 1) = True
Me.cmdEstornar.Enabled = False
Incluir = False
End If
Me.txtCodigoBarras.SetFocus

Exit Sub
EstIns:
MsgBox "Estoque atual menor que a quantidade solicitada." & Chr(10) & Chr(10) & "Estoque atual = " & Estoque, vbInformation, "
SIGVC "
Me.LimpaProduto
Me.txtCodigoBarras.SetFocus
SendKeys "+{TAB}"
End Sub

 

agradeço a ajuda..

gracy

   
LCRamos
Pontos: 2843
GOIANIA
GO - BRASIL
ENUNCIADA !
Postada em 21/01/2007 00:06 hs            
Gracymary, não se precisa complicar, normalmente os leitores, emitem em um final de leitura, uma tecla TAB, ou seja vai para o próximo campo.
Sendo assim, voce pode colocar o evento no LostFocus, agora se não emitir (alguns leitores importados, não emitem), voce faça no evento KeyPress, verificando o tamnho do campo, se for 13, joga o foco para o próximo controle, e teste.
Exemplo
 
Private Sub Text1_LostFocus
 If Left(Text1.Text, 1) = "2" Then   ' aqui verifica, se é de balança
  CODIGO = Mid(Text1.Text, 2, 4)   ' aqui ele pega o código do produto
  VALOR = Mid(Text1.Text, 5, 8)    ' aqui pega o valor a ser pago
 End If
 normal
 
 
End Sub
 
A partir dai, voce desenvolve.
Claro, que voce tem que testar se o campo é numérico, qual seu tamanho, etc, etc..., bem simples.
 
Qualquer dúvida, poste
 
vlu//
 
   
Ivo Borges
BARRETOS
SP - BRASIL
ENUNCIADA !
Postada em 23/01/2007 16:49 hs            
Dim Peso As Double
  If Left(txtCodigo.Text, 1) = "2" And Len(txtCodigo.Text) = 13 then
       PorPeso = True
    Peso = Mid(txtCodigo.Text, 8, 5)
    Peso = (Peso / 100)
    ValorProduto = Peso
end if
 
   
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2024   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página