Sumar Datos Ingresados En Texbox


Objetivo: 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!

Perfil MP  
Objetivo: 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

última edición por Shell el Domingo, 03 Marzo 2013, 10:10; editado 1 vez
Objetivo: 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.

Objetivo: 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

última edición por Shell el Domingo, 03 Marzo 2013, 13:02; editado 1 vez
Objetivo: 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
Perfil MP  

Página 1 de 1


  
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

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 0.0655s (PHP: 7% SQL: 93%)
Consultas SQL: 23 - Debug off - GZIP Activado