Ver Mensaje Individual
  #2 (permalink)  
Antiguo 21/11/2011, 12:38
Avatar de erbuson
erbuson
 
Fecha de Ingreso: noviembre-2009
Mensajes: 701
Antigüedad: 15 años, 4 meses
Puntos: 53
Respuesta: datagrid, recorrer, sumar

Hola, como personalmente, no tengo ni idea de BBDD, no podría aconsejarte como hacerlo de un modo directo, ni tan siquiera se si es posible.

De todos modos, te propongo una idea y tal vez pueda servirte o echar un poco de luz sobre tu problema.

Soy un forofo del MsFlexGrid y por ello lo utilizo muchísimo. Se me ocurre que puedas tener un MsFlexGrid auxiliar en el que visualizar esa información.

Necesitarías para simplificarlo, una función que te devuelva la Fila que contiene la Referencia que vas a sumarle, por ejemplo algo asi:

Código vb:
Ver original
  1. Public Function FilaGrid (Grid As MsFlexGrid, DatoBusco As String, Columna As Single) As Single
  2.   For FilaGrid = 1 To Grid.Rows - 1
  3.     If Grid.TextMatrix(FilaGrid, Columna) = DatoBusco Then Exit Function
  4.   Next
  5. End Function
De este modo, la Funcion devuelve el número de Fila que ocupa tu referencia o que va a ocupar en caso de no encontrarla.

El uso de esta función sería muy simple, por ejemplo:

Código vb:
Ver original
  1. 'Suponiendo que la Referencia está en la Columna 0 del MsFlexGrid
  2. Fila = FilaGrid(TuGrid, TuReferencia, 0)
  3. ' Si llegó al final, añade una Fila que va a necesitar y pone la Referencia
  4. IF Fila = TuGrid.Rows Then
  5.   TuGrid.Rows = TuGrid.Rows + 1
  6.   TuGrid.TextMatrix(Fila, 0) = TuReferencia
  7. End If
  8. ' Pasa los datos a las Columnas adecuadas del Grid, sumando los valores.
  9. TuGrid.TextMatrix(Fila, 1) = Val(TuGrid.TextMatrix(Fila, 1)) + TusUnidades
  10. TuGrid.TextMatrix(Fila, 2) = Val(TuGrid.TextMatrix(Fila, 2)) + TuPrecio
No se si te puede valer, si no es así perdona el rollo.

Un saludo
__________________
Agradecer a quien te enseñó, es enseñar lo que de él aprendiste.
Recuerda: Decir gracias, poco cuesta y mucho vale ...