buscar iguales con array visual basic

18/02/2012 - 15:46 por jean swaneck | Informe spam
hola que tal, tengo un arreglo que guarda el codigo de producto y
otros datos lde los productos como valor, peso, cantidad, descripcion,
etc y necesito lograr un resumen de todos los productos, osea que si
tengo en el arreglo 3 elementos y 2 tienen el mismo codigo esto los
debo sumar, la cantidad, peso, agregar la descripcion etc.

alguien me puede ayudar porfavor, muchas gracias!

Preguntas similare

Leer las respuestas

#1 Leonardo Azpurua
19/02/2012 - 15:31 | Informe spam
"jean swaneck" escribió en el mensaje
news:
hola que tal, tengo un arreglo que guarda el codigo de producto y
otros datos lde los productos como valor, peso, cantidad, descripcion,
etc y necesito lograr un resumen de todos los productos, osea que si
tengo en el arreglo 3 elementos y 2 tienen el mismo codigo esto los
debo sumar, la cantidad, peso, agregar la descripcion etc.

alguien me puede ayudar porfavor, muchas gracias!



Hola,

La información que das es insuficiente (lo que puede ser síntoma de un
trabajo de diseño igualmente insuficiente), pero veamos:

Nota: a efectos de simplificar, asumiremos que:
1.- arrayEntrada, que es el arreglo que almacena la lista inicial, está
lleno sólo con registros validos.
2.- arraySalida, que es donde se van a alamcenar los resumenes, tiene
suficente espacio para recibir todos los datos que se van a guarda en él.

Type datosProducto
Codigo As String
peso As Double
descripcion As String
// ...
End Type

Dim arrayEntrada() As datosProducto
Dim arraySalida() As datosProducto

Dim limiteSalida As Integer, nElementosSalida As Integer

Private Function buscarProducto(codigo As String) As Integer
Dim n As Integer
For n = 0 To nElementosSalida - 1
If arraySalida(n).Codigo = codigo Then
buscarProducto = n
Exit Function
End If
Next
buscarProducto = -1 ' no está
End Function


Public Sub ExtraerResumen()
Dim n As Integer, f As Integer
nElementosSalida = 0
For n = LBound(arrayEntrada) To uBound(arrayEntrada)
f = buscarProducto(arrayEntrada(n).Codigo
If f < 0 Then ' no estaba
arraySalida(nElementosSalida) = arrayEntrada(n)
arraySalida(nElementosSalida).cantidad = 0
arraySalida(nElementosSalida).peso = 0
f = nElementosSalida
nElementosSalida = nElementosSalida + 1
End If
With arraySalida(f)
.cantidad = cantidad + arrayEntrada(n).cantidad
.peso = .peso + (arrayEntrada(n).cantidad *
arrayEntrada[n].peso)
End With
Next
End Sub

Debe haber una manera mejor de hacerlo, pero esto debería darte una idea.


Salud!
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida