AJUDA COM MYSQL

 Tópico anterior Próximo tópico Novo tópico

AJUDA COM MYSQL

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#455863 - 07/01/2016 19:17:24

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 07/01/2016 19:28:09 por FABRICIOWEB

 Anexos estao visíveis somente para usuários registrados

Galera como fazer uma função onde se o item ja esta incluso no banco de dados exemplo codido da venda 00000001 produto tal ao envés de adicionar 2 vezes o mesmo produto no grid ele apenas add a quantidade segue a imagem que esta com 2 produtos iguais no grid




#455882 - 08/01/2016 08:26:13

F001E
IBITINGA/SP
Cadast. em:Novembro/2004


Parece não ser o mesmo produto pois no campo código no Grid esta 6 e 7.



#455884 - 08/01/2016 08:38:33

KURTGU
SAO PAULO
Cadast. em:Dezembro/2010


em vb.net eu faco isso em alguns dos meu sistemas de caixa faca um for para percorrer o datagrid, e localizar e atualizar o item quantidade do produto...



#455891 - 08/01/2016 10:17:39

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


No campo codigo realmente e diferente mas o campo codig e igual



#455893 - 08/01/2016 10:23:39

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Última edição em 08/01/2016 10:25:05 por NILSONTRES

No meu caso, e acredito que em geral, o sistema repete o item normalmente.
O que eu faço é dar a opção de inserir ou não repetidamente, o cliente pré configura isso.
Porque isso ?, nos locais de grande movimento os caixas precisam de agilidade e ficar vendo isso atrasa, então vai lançando do jeito que vem.
Observe, em grandes redes de super mercados é assim.




#455901 - 08/01/2016 12:18:16

ACCIOLLY
CAMPO NOVO DO PARECIS
Cadast. em:Setembro/2012


Eu te daria a opção de ser usado o Distinct do MySql mas pra isso os campos teriam que estar todos duplicados, o que não é o seu caso. Até porque a quantidade que você tem cadastrada também está diferente.
a melhor solução como o KURTGU falou é usar um loop pra eliminar as linhas repetidas. Mas uma dúvida me surge agora, na imagem o que se ve é que no primeiro registro vc tem 10 unidades e no segundo 5. esta quantidade está correta no estoque? senão sugiro rever a estrutura do banco, pois mesmo que seja feito um enfeite com um loop, isso pode te dar uma dor de cabeça medonha no futuro.

Um dos meus dias mais produtivos foi quando eu joguei fora 1000 linhas de código   Ken Tompson


#455907 - 08/01/2016 16:46:03

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Última edição em 08/01/2016 16:46:42 por FABRICIOWEB

o produto e dado baixa no estoque em automatico quando add no grid ja vai para outro banco de vendas a quantidade de itens que esta no grid e a quantidade retirada do estoque




#455908 - 08/01/2016 17:13:21

KURTGU
SAO PAULO
Cadast. em:Dezembro/2010


Citação:
:
o produto e dado baixa no estoque em automatico quando add no grid ja vai para outro banco de vendas a quantidade de itens que esta no grid e a quantidade retirada do estoque



Um erro seu, voce so pode dar baixa ao finalizar a venda, pois no meio do caminho ela pode ser cancelada...



#455909 - 08/01/2016 17:34:36

FABRICIOWEB
BELO HORIZONTE
Cadast. em:Novembro/2011


Se ela for cancelada por perca de energia quando o sistema iniciar novamente ela volta o estoque ou ate por erro do usuario ela volta ao normal o estoque esse banco e temporario so depois da escolha do pagamento ele vai para o banco certo



#455911 - 08/01/2016 17:58:22

NILSONTRES
SAO PAULO
Cadast. em:Março/2012


Citação:
  Se ela for cancelada por perca de energia quando o sistema iniciar novamente ela volta o estoque ou ate por erro do usuario ela volta ao normal o estoque esse banco e temporário so depois da escolha do pagamento ele vai para o banco certo  

Para isso é que se utiliza transações em banco de dados.
Só grava após o Transacao.Commit, pessoal vamos atentar para transações, sistemas sem transações é uma bomba relógio.




#455916 - 09/01/2016 10:58:20

ACCIOLLY
CAMPO NOVO DO PARECIS
Cadast. em:Setembro/2012


então o que você quer é caso o usuário volte a escolher o mesmo produto na hora da venda seja realizada apenas uma soma da quantidade na grid? Não acho que seja nessessário essa operação. Se fosse assim caixas de supermercado emitiriam comprovantes muito menores! rsrsrsrs
Mas é possível. No botão adicionar vc coloca um loop (For) pra percorrer todas as linhas da grid. Dentro desse loop vc coloca uma estrutura de decisão (IF) que pergunte se dentro da célula corrente o valor é igual ao codig. Se for igual apenas dá um update com um sql de soma:

UPDATE suaTabela SET seucampo = seucampo + a_quantidade_desejada WHERE sua_condicao


senão vc só faz um INSERT como já está.

pra fazer um loop vc deve recuperar a quantidade de linhas que tem na sua grid e guarda-la em uma variável do tipo inteiro

Dim qtlinhas As Integer = SeuGrid.Rows.Count


então viria o loop

For i As Integer = 0 To qtlinhas - 1
   If suagrid.Row(i).Colums(1).Value = ao valor de codig Then
       UPDATE suaTabela SET seucampo = seucampo + a_quantidade_desejada WHERE sua_condicao
   Else
       INSERT INTO ...
   End If
Next i


Olha cara faz bastante tempo que não utilizo mais o vb6 como IDE. Hoje trabalho com .NET e Java. Mas a lógica que te passei é essa. Cabe a você agora descobrir se é desta forma que recupera o valor da grid. O que sei é que a linha (Row) tem que ser recuperada com a variável i já que é um loop, e a coluna (Column) deve ser estática, o que no seu caso encontra-se na posição 1 da sua grid. Sabe-se que as colunas começam do 0 então a segunda coluna é a 1.



Um dos meus dias mais produtivos foi quando eu joguei fora 1000 linhas de código   Ken Tompson


 Tópico anterior Próximo tópico Novo tópico


Tópico encerrado, respostas não sao permitidas
Encerrado por FABRICIOWEB em 10/01/2016 17:36:44