VB6 - PEDIDO DE VENDA

FRIAS 18/01/2010 16:57:24
#332246
Boa tarde!

To desenvolvendo um sistema e estou com uma dúvida no Pedido de Venda. O meu cliente as vezes tem que juntar os ítens do pedido, por exemplo:

Viga I x 6,00 mts
Viga I x 6,20 mts
Viga I x 5,20 mts
...

(Lembrando que cada produto acima tem um ID diferente)

Ele gostaria que saísse no pedido:

Viga I Quantidade: 17,40 mts

Alguém tem alguma idéia de como resolver isso?

Obrigado,
Ricardo
TECLA 18/01/2010 17:13:35
#332249
Segue um exemplo para te auxiliar:

Dim v(3) As String, s() As String, i As Byte, soma As Double
[txt-color=#007100][ô]O vetor [Ô]v()[Ô] só foi inserido para teste[/txt-color]
v(0) = [Ô]Viga I x 6,00 mts[Ô]
v(1) = [Ô]Viga I x 6,20 mts[Ô]
v(2) = [Ô]Viga I x 5,20 mts[Ô]
For i = 0 To 2
s() = Split(v(i), [Ô]x [Ô])
soma = soma + CDbl(Left(s(1), InStr(1, s(1), [Ô] [Ô])))
Next i
MsgBox Format(soma, [Ô]###,##0.00[Ô])
NICOLLAS2 18/01/2010 17:59:06
#332252
o ideal seria vc criar um sub grupo no cadastro...
como vc disse que cada um dos itens tem uma ID seria algo assim

grupo id item
1 1 Viga I x 6,00
1 2 Viga I x 6,20
1 3 Viga I x 5,20
FRIAS 19/01/2010 10:03:52
#332271
Valeu TECLA, mas não funcionaria, pois tem produtos com mais de uma medida: Viga I 8[Ô] x 50 x 6,00.

NICOLLAS2, eu já tinha pensado nessa dica de criar um sub-grupo, acho que deve ser a solução mais viável.

Se alguém tiver uma outra idéia vai ser muito bem vinda...

[]'s
LANDOSP 19/01/2010 11:43:37
#332290
O ideal é criar o subgrupo e separar a quantidade para poder somar depois por grupo e nao pelo item do grupo.
DEZ2 19/01/2010 12:32:00
#332298
O Ideal é que os produtos tivessem cadastro de Tamanho/Medida, pois já que é em metros no campo seria armazenado o tamanho correto ai seria mais fácil de somar.
MARCELO.TREZE 19/01/2010 20:27:29
#332350
Uma pergunta em uma medida como esta - Viga I 8[Ô] x 50 x 6,00 - você tiraria apenas a medida 6,0 para soma
TIMCOSEG 19/01/2010 21:55:43
#332357
Neste caso a meihor idela é criar subgrupos e campos específicos pra as medidas, e através do relacionamento com o grupo de [Ô]mercadoria[Ô] por exemplo listar e somar os valores para exibição. Forma mais acerta e que causaria menos bugs e chateação a vc e seu cliente.
Caso ocorra a necessidade de verificação da bitola ou outra medida além do cumprimento, seria bom um novo subgrupo ou uma verificação diretamente no código e podendo usar também group by nas querys.
FRIAS 20/01/2010 09:29:01
#332377
Valeu pessoal pelas dicas!!!

MARCELO-TREZE, exatamente, apenas o comprimento.

Hoje a minha base de dados está assim:

GRUPO: VIGA I
Medida1: 8[Ô]
Medida2: 50
Medida3: 6,00


Se eu comparar o GRUPO e a MEDIDA1 e MEDIDA2, eu também conseguiria fazer essa soma ne? E não precisaria mudar um monte de coisa no meu sistema com a inclusao do sub-grupo...

Vlws!

MARCELO.TREZE 20/01/2010 11:33:29
#332390
Na realidade se tudo estivesse separado seria mais fácil mesmo

mas o código apresentado pelo colega TECLA já resolve veja o mesmo código apenas com algumas alterações

Private Sub Command1_Click()
Dim v(3) As String, s() As String, i As Byte, soma As Double
[ô]O vetor [Ô]v()[Ô] só foi inserido para teste
v(0) = [Ô]Viga I x 6,00 mts[Ô]
v(1) = [Ô]Viga I x 6,20 mts[Ô]
v(2) = [Ô]Viga I 8[ô] x 50 x 6,00 mts[Ô]
For i = 0 To 2
s() = Split(v(i), [Ô]x [Ô])
soma = soma + CDbl(Replace(s(UBound(s)), [Ô]mts[Ô], [Ô][Ô]))
Next i
MsgBox [Ô] Quantidade=[Ô] & soma
End Sub


bom veja que os dados no vetor V possuem caracteristicas diferentes, porem a soma é a correta teste e veja

Lembrando codigo do colega tecla.

LROSSI 20/01/2010 17:01:34
#332427
se for o que eu entendi, e se os registros já estiverem inseridos no banco, quando vc montar o pedido, faça uma query, como por ex: select sum(quantidade) where idpedido=1 group by descricaoitem.... que dai ele insere tudo numa linha só na nota, cupom, ou em qq outro pedido...
Tópico encerrado , respostas não são mais permitidas