Ir para conteúdo
Fórum Script Brasil
  • 0

Simulador De Caixa De Supermercado


rodfraga

Pergunta

alguém pode me ajudar? sad.gif

Eu pra aprender mais, laugh.gif estava fazendo um simulador de vendas de um supermercado. Estou na parte que o caixa digita o codigo de barras e aparece o produto, e se ele confirmas que é aquele produto, ele adiciona à lista de compras e acrescenta seu valor ao total da compra. Só que quando eu procuro o produto, a FlexGrid mostra o resultado, porém, ela começa a tremer e o programa dá problema e fecha!

O que eu faço? dry.gif

Link para o comentário
Compartilhar em outros sites

Posts Recomendados

  • 0

Mas eu te mandei o código todo. huh.gif

Eu peguei do exemplo do Pigmeu e alterei.

Tá, vou botar aqui.

Private Sub Command1_Click()
sql = "Select Produto,Preço from prods Where (Código) = '" & txt1.Text & "'"
prods.Open sql, conexao
Call enxe
End Sub

Public Function enxe()
Do While Not prods.EOF
grid.Row = 1
grid.Col = 0
grid.Text = prods("Produto")
grid.Col = 1
grid.Text = prods("Preço")
Loop
End Function

Ta ai, ve algum erro?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Mas eu te mandei o código todo.  huh.gif

Eu peguei do exemplo do Pigmeu e alterei.

Tá, vou botar aqui.

Private Sub Command1_Click()
sql = "Select Produto,Preço from prods Where (Código) = '" & txt1.Text & "'"
prods.Open sql, conexao
Call enxe
End Sub

Public Function enxe()
Do While Not prods.EOF
grid.Row = 1
grid.Col = 0
grid.Text = prods("Produto")
grid.Col = 1
grid.Text = prods("Preço")
Loop
End Function

Ta ai, ve algum erro?

Abraços

Sim, aqui está o erro, ou melhor, o que falta (em negrito):

Do While Not prods.EOF

grid.Row = 1

grid.Col = 0

grid.Text = prods("Produto")

grid.Col = 1

grid.Text = prods("Preço")

prods.MoveNext

Loop

Falta avançar para o próximo registro, caso contrário ele nunca chegará no fim do arquivo (ou seja, EOF) e ficará executando o loop por toda a eternidade. biggrin.gif

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Cara, vou aproveitar, para fazer outra pergunta... tongue.gif

*Quando acabar o programa, vou botar teu nome nos créditos...*

Essa pergunta não tem nada a ver com VB mas...

Um programa de compras de supermercado tem controle de estoque? Ou o controle de estoque é separado?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0
Cara, vou aproveitar, para fazer outra pergunta... tongue.gif

*Quando acabar o programa, vou botar teu nome nos créditos...*

Essa pergunta não tem nada a ver com VB mas...

Um programa de compras de supermercado tem controle de estoque? Ou o controle de estoque é separado?

Abraços

Hehehe. Obrigado! biggrin.gif

Quanto a sua pergunta: acredito que seja separado, porém ambos acessem as mesmas bases de dados. Não valeria a pena incluir o controle de estoque nos programas de frente de caixa, já que ninguém vai usá-los lá (aliás, por questões de segurança, seria até arriscado fazer isso).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Seria assim:

NO menu do programa teria pra adicionar novo item. Já, quando voce faz a compra de um produto, ele subtrai 1 do valor de quantidade da coluna Estoque que eu criaria na tabela.

Mas creio que isso não precise, afinal se um cliente não acha o produto na prateleira, é porque não há mais dele, assim, administradores do supermercado deveriam fazer isso.

É...Valeu, acabei de terminar o programa. Ele é pra download free no site de um grupo de trabalho que me chamaram.(vou botar seu nome lá sim...Num form "sobre...", junto com o nome da equipe...Uma coisa...Qual o seu nome mesmo, Gray? dry.gif )

Abraços

PS: Seria bom uma opção para inserir produto né? Porque o banco de dados vai vir vazio, ai o mercado insere seus produtos né?

Link para o comentário
Compartilhar em outros sites

  • 0

É Realmente. Descomplica minha vida fazendo dois programas diferentes. biggrin.gif

Esse negócio de conexao.Open, conexao.Close e vindo erros do tipo:

Operation is not valid when the object is closed(open)

Tão me enxendo o saco.

Valeu

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei como você está fazendo, mas em meus programas eu abro a conexão apenas uma vez e só fecho na hora que o programa é encerrado. As tabelas sim é que abro e fecho de acordo com a necessidade. Só uso Recordsets a nível de módulo ou de form (que ficam no General Declarations) se não há necessidade de ficar carregando-os toda hora ou tem dados que seram úteis no futuro; caso contrário, crio o objeto Recordset na própria rotina (o que evita o erro de que você falou, já que sempre é um Recordset novo).

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

Era assim olha:

Eu abria a tabela no form_Load

do form principal sacou?

Ai ia com a conexao aberta pro registro de produtos...

ai quando voltava pro form principal, ele executava o form_load e acusava que a conexao já estava aberta.

Isso porque eu estava usando o:

Unload Me

Load Form1

Form1.Show

Agora pensando aqui com a minha caxola, eu acho que encontrei uma solução para isso.

Eu poderia usar o .Hide e o .Show apenas, em vez do Load e Unload, assim ele só executaria o form_load uma vez né?

Para fazer a transação para o form sobre e do sobre para o principal, como é apenas uma, eu coloquei no botão o seguinte comando: conexao.Close, mas quando usado em excesso, ele confunde.

Bem, mas depois eu faço o .hide, .show com o cadastro de produtos.

Cara to muito feliz é meu primeiro projeto terminado. Sempre começo um projeto e não termino por algum motivo como perda de interesse.

Finalmente terminei um, mesmo que simples e para mim, inútil.

Já botei seu nome lá em um form. wink.gif

Só falta o site no ar pra botar pra download.

Valeu

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Cara valeu mesmo.

Usei aquele Package & Deployment Wizard para fazer um setup e gerei uma pasta com 20 mb blink.gif

então compactei com .zip e ficou com 18 mbs

então compactei com .zip auto extraivel e tambem ficou com 18 mbs...

É isso mesmo?

Um programa aparentemente tão simples e leve, ficar com 18 mbs?

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

MINHA SANTA ZUCRÉIA. Só esse tal de mdac_typ.exe tem quase 8mbs! (7,74 mbs).

As dlls tambem ocupam um espaço legal(quase 3 mbs)...

Bem, mas é assim mesmo...Fazer o que...(Até o ICQ é mais leve que isso).

Abraços

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei seria interessante para você, mas é possível tirar o mdac_typ.exe da instalação. Até porque esse mdac_typ.exe é o 2.1 e não o 2.7. Dessa forma, se o usuário já tiver as bibliotecas do ADO instaladas seu programa vai rodar normalmente, caso contrário é possível avisá-lo de que ele necessita baixar dois arquivos. Faço esse esquema no meu programa XPlayer, onde uso ADO para gerenciar a biblioteca de músicas.

Outra coisa que é possível fazer é usar o programa UPX para compactar as DLLs. Esse programa "compacta" arquivos executáveis de uma forma que eles continuam funcionando normalmente quando são chamados. Tenho usado ele também em meus programas e é excelente.

Abraços,

Graymalkin

Link para o comentário
Compartilhar em outros sites

  • 0

É o 2.1 pois creio que na hora de selecionar a biblioteca eu selecionei 2.1, eu acho.. dry.gif Mas não fez diferença. Creio que eu vou Deletar, e botar para download separado, pro caso do cara não ter. Mas deletando, não vai surgir nenhum outro problema no setup, pro caso de dependência do setup em relação a esse executável não né?

Abraços

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...