Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
¿Suma De Campos Gridview?
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje ¿Suma De Campos Gridview? 
 
Hola buenos días un saludos desde México

La consulta que quiero hacerles este día es como sumar los campos de un gridview.
tengo un gridview con estas características
 gridview_1313162985_143256
la columna que deseo sumar es la de total y que el resultado se muestre en un textbox

Espero me puedan ayudar u orientar es este proceso sin mas un saludo a todos

 



 
RodSanRey - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
Debes crear un bucle aqui tienes un ejemplo.


  FOR b = 0 TO TableView1.Rows.Count - 1

    TableView1[b, 7].text = TableView1[b, 5].text - (TableView1[b, 5].text * TableView1[b, 6].text / 100) 'precio neto
    TableView1[b, 7].Alignment = Align.Center
    TableView1[b, 8].text = TableView1[b, 7].text * TableView1[b, 2].text 'importe de la linea precio neto*cantidad
    TableView1[b, 6].Alignment = Align.Center

    base_fac = base_fac + TableView1[b, 8].text
    iva_fac = iva_fac + TableView1[b, 8].text * (TableView1[b, 3].text / 100)
    re_fac = re_fac + TableView1[b, 8].text * (TableView1[b, 4].text / 100)

 


Espero te sirva
 



 
arubioc - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
a tu bucle le falta un NEXT al final
 



 
 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
Muchas Gracias BrunoIV por la aclaración de NEXT si lo puse

la cuestión es que solo quiero sumar una columna la de Total siguiendo el ejempro de arubloc
Citar:
  FOR b = 0 TO TableView1.Rows.Count - 1
    TableView1[b, 7].text = TableView1[b, 5].text - (TableView1[b, 5].text * TableView1[b, 6].text / 100) 'precio neto
    TableView1[b, 7].Alignment = Align.Center
    TableView1[b, 8].text = TableView1[b, 7].text * TableView1[b, 2].text 'importe de la linea precio neto*cantidad
    TableView1[b, 6].Alignment = Align.Center

    base_fac = base_fac + TableView1[b, 8].text
    iva_fac = iva_fac + TableView1[b, 8].text * (TableView1[b, 3].text / 100)
    re_fac = re_fac + TableView1[b, 8].text * (TableView1[b, 4].text / 100)
 


implemente esta funcion para que sea llamada cada vez que se agrega un nuevo articulo esta es
FUNCTION zsuMacaMp()
  DIM $toTal AS Float
  DIM $i AS Long
  WITH GridView1
    FOR $i = 1 TO .Rows.Count - 1
      $toTal = $toTal + GridView1[$i, 4].Text
    NEXT
    TextBox26.Text = Format(CFloat($toTal), "###,###.00")
  END WITH
END

sin embargo a la hora de sumar le textbox26 se queda en blanco quiza este algo mal pero sigo investigando
 



 
RodSanRey - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview?[SOLUCIONADO] 
 
Solucionado ya pude realizar la suma de la columna especificada después de un rato ya vi mi error tenia un error de sintaxis el resultado tenia que ir dentro del FOR NEXT
aquí posteo la solución por si alguien la necesita
Citar:
FUNCTION zsuMacaMp()
  DIM $toTal AS Float
  DIM $i AS Long
  WITH GridView1
    FOR $i = 1 TO .Rows.Count - 1
      $toTal = $toTal + GridView1[$i, 4].Text
    NEXT
    TextBox26.Text = Format(CFloat($toTal), "###,###.00")  <<'Aqui es donde esta el error ya que se encuentra afuera del ciclo
  END WITH
END

la forma correcta es:
FUNCTION zsuMacaMp()
  DIM $toTal AS Float
  DIM $i AS Long
  WITH GridView1
    FOR $i = 1 TO .Rows.Count - 1
      $toTal = $toTal + GridView1[$i, 4].Text
      TextBox26.Text = Format(CFloat($toTal), "###,###.00")    '<<<<<<<el resultado va dentro del ciclo FOR Corregido
    NEXT
  END WITH
END

esta es la función que suma las filas de la columna Total
Pero me generaba un error de tipos que no coinciden porque quería un valor FLOAT y se encontró un STRING en el gridview así que tuve que formatear esa columna en FLOAT de la siguiente manera:
PRIVATE SUB zKrgaDataTabla()
  DIM $qrYdeTa AS String
  DIM $rStdeTa AS Result
  DIM $liNea AS Integer
  GridView1.Rows.Count = 1
  $qrYdeTa = "SELECT * FROM compras2 WHERE ordn_comp='" & TextBox10.Text & "'"
  $rStdeTa = cNxs.$cOn.Exec($qrYdeTa)
  $liNea = 0
  DO WHILE $rStdeTa.Available
    $liNea = $liNea + 1
    GridView1.Rows.Insert($liNea)
    GridView1[$liNea, 0].Alignment = Align.Normal
    GridView1[$liNea, 0].Text = $rStdeTa["codi_comp"]
    GridView1[$liNea, 1].Alignment = Align.Normal
    GridView1[$liNea, 1].Text = $rStdeTa["desc_comp"]
    GridView1[$liNea, 2].Alignment = Align.Normal
    GridView1[$liNea, 2].Text = $rStdeTa["impo_comp"]
    GridView1[$liNea, 3].Alignment = Align.Normal
    GridView1[$liNea, 3].Text = $rStdeTa["cant_comp"]
    GridView1[$liNea, 4].Alignment = Align.Normal
    GridView1[$liNea, 4].Text = $rStdeTa["tota_comp"]
    GridView1[$liNea, 4].Text = Format(CFloat(GridView1[$liNea, 4].Text), "###,###.00") 'aqui converti en FLOAT los valores de esta columna
    $rStdeTa.MoveNext
  LOOP
END

Por ultimo ya solo llamamos nuestra función para sumar ya sea desde un botón de comando o en una rutina
por ejemplo yo lo llamo cuando se cumple la condición de una rutina
PRIVATE SUB zagRearTi()
  DIM $qRYartIC AS String
  DIM $rsTartIc AS Result
  $qRYartIC = "INSERT INTO compras2 (ordn_comp, codi_comp, desc_comp, volu_comp, peso_comp, cant_comp, impo_comp, tota_comp, perm_comp) VALUES('" & TextBox10.Text & "','" & TextBox11.Text & "','" & TextBox12.Text & "','" & TextBox16.Text & "','" & TextBox17.Text & "','" & TextBox19.Text & "','" & TextBox20.Text & "','" & TextBox23.Text & "','" & cNxs.$usUa & "')"
  $rsTartIc = cNxs.$cOn.Exec($qRYartIC)
  IF ERROR THEN
    Message.Error( ERROR .Text)
  ELSE
    zKrgaDataTabla
    zsuMacaMp    '<<<<<<<<<<<<<<<<  aqui llamo la rutina de la suma
    Message.Question("otro")
  ENDIF
END

espero sea entendible para futuras referencias

y gracias por responder BrunoIV y aubloc
 



 
RodSanRey - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
cosas del copiar pegar
 



 
arubioc - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
RodSanRey escribió: [Ver mensaje]
Solucionado ya pude realizar la suma de la columna especificada después de un rato ya vi mi error tenia un error de sintaxis el resultado tenia que ir dentro del FOR NEXT
aquí posteo la solución por si alguien la necesita
Citar:
FUNCTION zsuMacaMp()
  DIM $toTal AS Float
  DIM $i AS Long
  WITH GridView1
    FOR $i = 1 TO .Rows.Count - 1
      $toTal = $toTal + GridView1[$i, 4].Text
    NEXT
    TextBox26.Text = Format(CFloat($toTal), "###,###.00")  <<'Aqui es donde esta el error ya que se encuentra afuera del ciclo
  END WITH
END

la forma correcta es:
FUNCTION zsuMacaMp()
  DIM $toTal AS Float
  DIM $i AS Long
  WITH GridView1
    FOR $i = 1 TO .Rows.Count - 1
      $toTal = $toTal + GridView1[$i, 4].Text
      TextBox26.Text = Format(CFloat($toTal), "###,###.00")    '<<<<<<<el resultado va dentro del ciclo FOR Corregido
    NEXT
  END WITH
END

esta es la función que suma las filas de la columna Total
Pero me generaba un error de tipos que no coinciden porque quería un valor FLOAT y se encontró un STRING en el gridview así que tuve que formatear esa columna en FLOAT de la siguiente manera:
PRIVATE SUB zKrgaDataTabla()
  DIM $qrYdeTa AS String
  DIM $rStdeTa AS Result
  DIM $liNea AS Integer
  GridView1.Rows.Count = 1
  $qrYdeTa = "SELECT * FROM compras2 WHERE ordn_comp='" & TextBox10.Text & "'"
  $rStdeTa = cNxs.$cOn.Exec($qrYdeTa)
  $liNea = 0
  DO WHILE $rStdeTa.Available
    $liNea = $liNea + 1
    GridView1.Rows.Insert($liNea)
    GridView1[$liNea, 0].Alignment = Align.Normal
    GridView1[$liNea, 0].Text = $rStdeTa["codi_comp"]
    GridView1[$liNea, 1].Alignment = Align.Normal
    GridView1[$liNea, 1].Text = $rStdeTa["desc_comp"]
    GridView1[$liNea, 2].Alignment = Align.Normal
    GridView1[$liNea, 2].Text = $rStdeTa["impo_comp"]
    GridView1[$liNea, 3].Alignment = Align.Normal
    GridView1[$liNea, 3].Text = $rStdeTa["cant_comp"]
    GridView1[$liNea, 4].Alignment = Align.Normal
    GridView1[$liNea, 4].Text = $rStdeTa["tota_comp"]
    GridView1[$liNea, 4].Text = Format(CFloat(GridView1[$liNea, 4].Text), "###,###.00") 'aqui converti en FLOAT los valores de esta columna
    $rStdeTa.MoveNext
  LOOP
END

Por ultimo ya solo llamamos nuestra función para sumar ya sea desde un botón de comando o en una rutina
por ejemplo yo lo llamo cuando se cumple la condición de una rutina
PRIVATE SUB zagRearTi()
  DIM $qRYartIC AS String
  DIM $rsTartIc AS Result
  $qRYartIC = "INSERT INTO compras2 (ordn_comp, codi_comp, desc_comp, volu_comp, peso_comp, cant_comp, impo_comp, tota_comp, perm_comp) VALUES('" & TextBox10.Text & "','" & TextBox11.Text & "','" & TextBox12.Text & "','" & TextBox16.Text & "','" & TextBox17.Text & "','" & TextBox19.Text & "','" & TextBox20.Text & "','" & TextBox23.Text & "','" & cNxs.$usUa & "')"
  $rsTartIc = cNxs.$cOn.Exec($qRYartIC)
  IF ERROR THEN
    Message.Error( ERROR .Text)
  ELSE
    zKrgaDataTabla
    zsuMacaMp    '<<<<<<<<<<<<<<<<  aqui llamo la rutina de la suma
    Message.Question("otro")
  ENDIF
END

espero sea entendible para futuras referencias

y gracias por responder BrunoIV y aubloc







Buenas

Este codigo funciona tambien con TableView????               
 



 
drojas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
Buenas


Citar:
Este codigo funciona tambien con TableView????


Accediendo directamente al objeto gridview del tableview, seguramente sí.

Te explico, el tableview es un control compuesto que internamente usa un gridview y otros controles para la edición, como un textbox, spinbox, etc.

Puedes acceder al objeto gridview dentro de la jerarquía interna del TableView buscando en el desplegable que aparece en el código al teclear el nombre de tu tableview seguido del punto. A partir de ese objeto, puedes usar todas las propiedades y métodos del gridview.

Saludos
 




===================
Jesús Guardón

Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".

"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
 
jguardon - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: ¿Suma De Campos Gridview? 
 
Muchas Gracias!!!

Me hizo cranear un poco pero al final esta funcionando de forma correcta
 



 
drojas - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Suma De Cantidades techm3 General 2 Jueves, 04 Febrero 2010, 23:57 Ver último mensaje
techm3
No hay nuevos mensajes Suma De Dos Números ruben General 10 Miercoles, 03 Noviembre 2010, 21:37 Ver último mensaje
ruben
No hay nuevos mensajes [SOLUCIONADO] Suma De Textbox calcena General 2 Jueves, 09 Agosto 2018, 10:09 Ver último mensaje
calcena
No hay nuevos mensajes Impresion De La Suma De Numeros Chema9879 General 2 Lunes, 21 Octobre 2019, 15:39 Ver último mensaje
Guizans
 

Publicar nuevo tema  Responder al tema  Página 1 de 1
 

Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado
Usuarios registrados conectados: Ninguno


 
Lista de permisos
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
Puede descargar archivos
No puede publicar eventos en el calendario



  

 

cron