Sumar columna de un datagrid en vb6

Estoy realizando un pequeño sistema y en formulario se cargan las ventas en un datagrid, ese datagrid tiene una columna de totales y otra de idvendedor, lo que necesito es sumar esos totales pero después de realizar un filtro por vendedor y que la suma me muestre en un textbox. Es decir que al ingresar un idvendedor en un textbox en otro textbox me muestre cuanto vendió ese vendedor. Lo de filtrar el vendedor no hay problema, el problema es con la suma.

1 respuesta

Respuesta
2
Debe recorrer cada fila del datagrid, en cada fila selecciona la columna del importe, lo conviertes a número, lo sumas a una variable, al terminar toda la grilla entonces al textbox, le asignas el contenido del total como una cadena.
Lo que ocurre es que el Datagrid no tiene la propiedad Rows que indica el número de filas pero se puede utilizar la propiedad ApproxCount la cual contiene el numero aproximado de filas de la cuadricula.
Sería algo como esto :
Dim Total As Currency
Dim Valor As Currency
Private Sub Sumar_Importe()
    Total = 0
    DataGrid1.Col = 7  ' Suponemos columna del importe
    For I = 1 To DataGrid1.ApproxCount
        DataGrid1.Col = 7
        DataGrid1.Row = I
        Valor = CCur(DataGrid1.Text)
        Total = Total + Valor
    Next I
    Text1 = Format(Total, "###,###,###.###.00")
End Sub
Suerte !
Reenvío la respuesta pues aparentemente ocurrió un problema.
Suerte !
Muy buena la respuesta. Gracias por responder. Pregunto: ¿Seria más fácil hacer esto de sumar una columna si en vez del datagrid lo hago con MSHFlexGrid? y si es así, ¿Cómo seria?.
Sería de la misma forma, cambiando el nombre del control y utilizando la propiedad Rows que contiene el total de filas.
Dim Total As Currency
Dim Valor As Currency
Private Sub Sumar_Importe()
    Total = 0
    For I = 1 To MSHFlexGrid1.Rows       
        MSHFlexGrid1.Col = 7 ' Col de importe
        MSHFlexGrid1.Row = I
        Valor = CCur(MSHFlexGrid1.Text)
        Total = Total + Valor
    Next I
    Text1 = Format(Total, "###,###,###.###.00")
End Sub 
El ejemplo está hecho partiendo que dicho control tiene una fila fija (fila 0) o de títulos.
Suerte !
Gracias por la respuesta. Te comento con el datagrid funciona de diez, pero con el MSHflexgrid, no. Es decir no funciona si aplico el filtro, ya que yo lo único que quiero es que me sume los de un vendedor en particular y no toda la columna. Pero le voy a estudiar y si no le encuentro una solución t estaré molestando nuevamente, o si tienes alguna idea será bienvenida. Muchas Gracias
Pues si funciona con el Datagrid me parece genial; lo que no se es si la propiedad Approxcount muestra las filas reales (supongo que sí) los manuales dicen que muestra el numero aproximado de filas, pero si realizamos diferentes consultas y revisamos las filas podemos establecer si el dato es real o aproximado.
Creo que ya debería cerrar la pregunta.
Suerte !

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas