Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Sumar Datos Ingresados En Texbox
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Sumar Datos Ingresados En Texbox 
 
Hola a todos tengo una pequeña duda en gambas se podria e imagino que si sumar valores que se ingresen en un campo?

por ejemplo quiero hacer un formulario en el que se puedan ingresar datos normales y unos precios pero que estos precios se vallan sumando al final y que se muestren en un texbox..

espero su pronta ayuda

Gracias

Saludos!
 



 
OneErick - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sumar Datos Ingresados En Texbox 
 
Hola OneErick.

Quizás lo que preguntas puede tener muchas soluciones.

Supón que las cajas de texto que quieres sumar pertenecen a un grupo, lo que las hace distintas a las demás.
Cada caja de texto tiene un índice, tag.

Private aprecios As New TextBox[]

Public Sub _new()

End

Public Sub Form_Open()
  Dim objeto As Object
  
  For Each objeto In Me.Controls
    If objeto Is TextBox And InStr(objeto.name, "txtConcepto") <> 0 Then
      aprecios.Add(objeto)  'Añade al array aprecios solo lo que sea textbox y contengan como nombre txtConcepto
    Endif
  Next  

End

Public Sub Conceptos_KeyRelease()
  Dim cajatexto As TextBox
  Dim sumatotal As Float
      
  For Each cajatexto In aprecios
        If IsNumber(cajatexto.Text) Then
          sumatotal += CFloat(cajatexto.Text)
        Endif
  Next
  txtTotal.Text = sumatotal
End
 


Aquí tienes el código para que lo veas funcionar.
Ups, funciona con enteros, pero no con números reales.Hay que depurarlo.

Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 03 Marzo 2013, 10:10; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sumar Datos Ingresados En Texbox 
 
Importante:

Si vas a trabajar con numeros, en vez de  los controles  TexBox, usa  controles ValueBox, que si están hechos para trabajar con números, y tienen en cuenta los decimales.

Cada control tiene su función, si usa otro control lo que haces es complicarte la vida.
 




===================
Blog personal
Web: SoloGambas seleccion de articulos dedicados a Gambas
Visita el Curso de Gambas3 ¡¡¡Gratuito!!!
 
jsbsan - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sumar Datos Ingresados En Texbox 
 
Y tan cierto es lo que dice Julio,que el código de la aplicación se quedaría así usando Valuebox.

Public Sub Conceptos_KeyPress()
  Dim objeto As Object
  Dim sumatotal As Float

  For Each objeto In Me.Controls      
      If objeto Is ValueBox And InStr(objeto.name, "vlbConceptos") <> 0 Then        
          If Not IsNull(objeto.value) Then
            sumatotal += objeto.value            
          Endif
      Endif        
  Next
 vlbTotal.Value = sumathttp://www.linuxmint.com/start/nadia/otal
End
 


Tienes que cambiar las cajas de textos por valuebox.

Si no fueran valuebox, el código podría haber sido este con cajas de texto:

Public Sub Conceptos_KeyPress()
  Dim objeto As Object
  Dim sumatotal As Float

  For Each objeto In Me.Controls
      If objeto Is TextBox And InStr(objeto.name, "txtConcepto") <> 0 Then        
          If Key.Code = Key.Enter Or Key.Code = Key.Return Or Key.Code = Key.Tab Then  
              If InStr(objeto.Text, ",") <> 0 Then  
                sumatotal += CFloat(Replace(objeto.Text, ",", "."))                
              Else If Not IsNull(Val(objeto.Text)) Then
                sumatotal += CFloat(objeto.Text)                
              Else If InStr(objeto.Text, ".") <> 0 Then  
                sumatotal += CFloat(objeto.Text)                
              Endif            
          Endif
    Endif
    txtTotal.Text = sumatotal
  Next
End
 


La caja de texto tiene un uso diferente o según el comportamiento que quieras que tenga.
ValueBox lo resume.

Ejemplo modificado:


Saludos
 




===================
Gambas Básico
"No es un bug, es una característica no documentada"
 
última edición por Shell el Domingo, 03 Marzo 2013, 13:02; editado 1 vez 
Shell - Ver perfil del usuarioEnviar mensaje privadoVisitar sitio web del usuario 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Sumar Datos Ingresados En Texbox 
 
Listo me funciono perfectmente! use los value box y funciona bello

GRACIAS!!
 



 
última edición por OneErick el Domingo, 03 Marzo 2013, 19:29; editado 1 vez 
OneErick - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Mostrar mensajes anteriores:    
 
Ocultar¡Este tema fue útil?

 

Elegir valoración:                       

Media de valoración Valoración mínima Valoración máxima Número de valoraciones
0.00 0 0 0
 
OcultarTemas parecidos
Tema Autor Foro Respuestas último mensaje
No hay nuevos mensajes Sumar Valores De Una Base De Datos marlin Bases de Datos 5 Jueves, 02 Marzo 2017, 23:18 Ver último mensaje
v3ctor
No hay nuevos mensajes Cómo Sumar (+) Datos De Una Consulta A Bd... nore Bases de Datos 4 Lunes, 18 Julio 2016, 17:52 Ver último mensaje
calcena
No hay nuevos mensajes Control Texbox ljma Controles/Librerías/Componentes 4 Miercoles, 29 Febrero 2012, 19:19 Ver último mensaje
jguardon
No hay nuevos mensajes Texbox + Valuebox angelnu Controles/Librerías/Componentes 0 Jueves, 31 Marzo 2011, 21:10 Ver último mensaje
angelnu
 

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
No puede descargar archivos
No puede publicar eventos en el calendario