Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

sumar el monto de cada fila datagrid

Estas en el tema de sumar el monto de cada fila datagrid en el foro de Visual Basic clásico en Foros del Web. hola: como puedo sumar el monto de cada fila de la columna 3 de un datagrid para mostrarlo en un textbox o un label....
  #1 (permalink)  
Antiguo 30/04/2007, 02:03
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años, 1 mes
Puntos: 0
sumar el monto de cada fila datagrid

hola:

como puedo sumar el monto de cada fila de la columna 3 de un datagrid para mostrarlo en un textbox o un label.
  #2 (permalink)  
Antiguo 30/04/2007, 08:14
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Re: sumar el monto de cada fila datagrid

Vas recorriendo todas las filas de la columna 3 y sumándoselo a una variable que hayas establecido del tipo que convenga.

int Suma
int i

DataGrid1.col=3
For i=0 to DataGrid1.rows - 1
DataGrid1.row=i
Suma=Suma + DataGrid1.text
Next

label1=Suma

Espero que te sirva.

Un saludo
  #3 (permalink)  
Antiguo 30/04/2007, 18:48
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: sumar el monto de cada fila datagrid

creo que algo estoy haciendo mal
cuando lo ejecuto me dice que el indice no esta permitido, pero si le pongo uno que me acepte ,por ejemplo el 0 que serian las piezas no hace la suma de todas formas solo envia un cero al label1.. ya estuve tratando de muchas formas y no lo consigo..haber si tu le encuetras el error..
te agradezco mucho
Set MiRecordset = New ADODB.Recordset

MiRecordset.Open "select piezas,producto2,total from notas_detalle where notanumero = 0", MiConexion, adOpenDynamic, adLockOptimistic

Set DataGrid1.DataSource = MiRecordset

Dim suma As Integer
Dim i As Integer

DataGrid1.Col = 2 'se supone que esta seria la columna 3(total) donde estan los valores que quiero sumar
For i = 0 To DataGrid1.Row - 1
DataGrid1.Row = i
suma = suma + Val(DataGrid1.text)
Label1 = suma
Next
  #4 (permalink)  
Antiguo 02/05/2007, 02:49
 
Fecha de Ingreso: abril-2007
Mensajes: 114
Antigüedad: 17 años
Puntos: 2
Re: sumar el monto de cada fila datagrid

Te has confundido al definir la salida del bucle. Fíjate bien. El bucle For va desde i=0 hasta DataGrid1.rows - 1 y no hasta DataGrid1.row -1 como tú has puesto. La diferencia está en que DataGrid1.rows te devuelve el número total de filas del DataGrid, mientras que DataGrid1.row te devuelve el índice de la fila actual, que generalmente empieza siendo 0.

Un saludo
  #5 (permalink)  
Antiguo 02/05/2007, 15:38
 
Fecha de Ingreso: marzo-2007
Mensajes: 53
Antigüedad: 17 años, 1 mes
Puntos: 0
Re: sumar el monto de cada fila datagrid

hola que tal..

si, ya lo habia intentado asi.. pero no resulta, me dice que no se encontro el metodo o el miembro de datosy me selecciona el .rows -1 , se que algo estoy haciendo algo mal, pero no me doy cuenta aun.. me pregutaba yo si podria hacerlo con un select para resolver mi problema..

PERO MI DUDA ES SI SE PUEDEN HACER VARIAS CONSULTAS EN EL MISMO FORMULARIO,
  #6 (permalink)  
Antiguo 04/05/2007, 02:09
 
Fecha de Ingreso: abril-2007
Mensajes: 12
Antigüedad: 17 años
Puntos: 0
Re: sumar el monto de cada fila datagrid

Por lo parecido estas realizando una misma aplicacion, bueno tu duda es si se pueden hacer varias consulta pues si si se pueden incluso en un solo boton puedes hacer 1 2 3 cuantas necesites, y si mal no estoy esta haciendo algo asi como un programa de inventario tons mira lo q yo te aconsejo es q uses listbox es mas facil.
Saludos
  #7 (permalink)  
Antiguo 08/08/2008, 11:25
 
Fecha de Ingreso: agosto-2008
Mensajes: 1
Antigüedad: 15 años, 9 meses
Puntos: 0
Respuesta: sumar el monto de cada fila datagrid

Tengo el incoveniente de que me dice que el metodo no existe en Datagrid1.rows - 1, y lo acepta con row, pero me da cero.

que debo hacer
  #8 (permalink)  
Antiguo 08/08/2008, 11:41
 
Fecha de Ingreso: noviembre-2006
Mensajes: 227
Antigüedad: 17 años, 6 meses
Puntos: 6
Respuesta: sumar el monto de cada fila datagrid

Porque no pruebas haciendo una función que te haga la suma y esa misma la puedas utilizar cuantas veces sea necesaria:

Código:
Function Sumar(MSHFlexGrid As Object, _
               Columna As Integer) As Currency
                  
On Error GoTo error_function
  
    With MSHFlexGrid
        Dim Total As Currency
        Dim i As Long
          
        If Columna > .Cols Then
           MsgBox "Columna no válida", vbExclamation
           Exit Function
        End If
           
        ' recorrer  las filas de la grilla
        For i = 1 To .Rows - 1
            ' comprobar que el dato es de tipo numérico con la función IsNumeric de vb
            If IsNumeric(.TextMatrix(i, Columna)) Then
                ' Sumar, obteniendo el valor de la celda con TextMatrix
                Total = Total + .TextMatrix(i, Columna)
            End If
        Next
           
        ' retornar el total de la suma a la función
        Sumar = Total
    End With
       
Exit Function
error_function:
  
MsgBox Err.Description, vbCritical, "error al sumar"
  
End Function
Esto funciona para un MSHFlexGrid pero considero que lo puedes adaptar para el datagrid

y perdon y lo llamas asi:

Código:
Label1 = Format(Sumar(Grilla, columna), "$ #,##0.00")
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta

SíEste tema le ha gustado a 1 personas




La zona horaria es GMT -6. Ahora son las 20:36.