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

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  formataçao...
gracy
não registrado
ENUNCIADA !
Postada em 08/01/2007 14:07 hs   

Boa tarde...

 

... baixei um ótimo exemplo de sistema para estudar e para poder adquirir conhecimentos a respeito do VB... e estou “tentando adequar” as minhas necessidades.. mas... estou sem saber resolver o problema que descrevo a seguir...

 

Na minha tabela de produtos... cadastrei com o "leitor óptico" os códigos de barras"... e não deu problemas no módulo de VENDAS (quando consulto e efetuo a venda)...

mas...

como há produtos que são de fabricação própria.. utilizei o código do sistema (1,2,3...) para cadastrar na balança filizola... então ela mesma me deu o código de barras... e não deu problemas quando consulto e efetuo a venda com os produtos cadastrados "por unidade"...

 

... o meu problema está com os produtos que são vendidos "por kg"....

isso porque... na etiqueta.. o código de barras vem juntamente com o valor a ser pago... percebi então que tenho que “formatar o meu campo txtCodigo Barras”... mas... não sei “como fazer isso”...

... por explo:  (se for 5,00 o kg.. e pesou 0,380kg.. então o total é 1,90).... e o código de barra fica...2 000200001904... então quando passo o leitor... acusa que o produto não está cadastrado...

.. então.. o campo txtCodigoBarras teria que ser formatado para aceitar a digitação desse tipo de dados caso tenha que fazer manualmente, sem o leitor.. mas não sei como formatar o campo..

 

Andei pesquisando sobre as funções Left, Right e Mid... mas não sei como introduzir... já que estou engatinhando em VB...

Obtive uma orientação =>

 

Dim codigo as string
Dim valor as currency
Dim Tamanho as long
Tamanho=len(codigobarras)
codigo =left(codigobarras,13)
valor=mid(codigobarras,14,tamanho)

 

Mas.. não estou sabendo “aonde colocar” ... estou tentando, mas dá erro 13 na última linha (do valor)...

 

.. agradeço qualquer ajuda... 

gracy

 

 

como está o campo [txtCodigoBarras]:


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, "
SIG "
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, "
SIG "
Me.LimpaProduto
Me.txtCodigoBarras.SetFocus
SendKeys "+{TAB}"
End Sub

   
Tiranossauro
não registrado
ENUNCIADA !
Postada em 08/01/2007 14:38 hs   
No seu manual da balança deve ter a configuração da etiqueta, de como a balança imprime as informações.
 
Acredito que a primeira posição é para identificar se a pesagem foi feita com o código e valor cadastrados na balança ou se o valor foi digitado.
As seguintes posições seriam do código do produto e as restantes o peso.
 
Para obter a quantidade você precisa se reportar ao seu banco de dados e encontrar o valor unitário do produto.
 
Quanto a função, talvez tenha que usar Mid
 
Dim strBarra as string
Dim strProduto as string
Dim strValor as string
 
 
strBarra = "2000200001904"
 
strProduto = mid(strbarra, 2, 4)  ' supondo que o produto comece na posição 2 e       tenha 4 caracteres
 
strValor = mid(strbarra, 6, 8)  ' supondo que o Valor comece na posição 6 e       tenha 8 caracteres
 
Éspero que tenha ajudado
 
"Procure conversar com um saco de cimento, sempre é bom ter contato com algo que pode ser concreto"
   
gracymary
PARA DE MINAS
MG - BRASIL
ENUNCIADA !
Postada em 08/01/2007 15:47 hs            
obrigada por responder... mas.. como disse anteriormente... não sei "aonde" colocar a função Mid... ou seja... em qual "evento" colocar... por isso enviei a formatação do campo "txtcodigobarras"..
se puder me orientar.. agradeço...
gracy
   
PH1959
Pontos: 2843
SÃO JOSÉ DOS CAMPOS
SP - BRASIL
ENUNCIADA !
Postada em 09/01/2007 17:29 hs            
hmmm dificil dizer hein...? acho q vc tem colocar a função logo depois q ler o cód de barras do produto..para poder identificá-lo .... 
   
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