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

Suma En Un msflexigrid

Estas en el tema de Suma En Un msflexigrid en el foro de Visual Basic clásico en Foros del Web. Hola gente linda TEngo un ,msflexigrid el cual la columna 3 (es el precio) y la columna 0 es la cantidad , la cuarta es ...
  #1 (permalink)  
Antiguo 11/09/2008, 09:30
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
Suma En Un msflexigrid

Hola gente linda

TEngo un ,msflexigrid el cual la columna 3 (es el precio) y la columna 0 es la


cantidad , la cuarta es col. 0 * col.3 e ir sumandolas

yo hice
TOTAL =0
for i = 1 to grilla.rows-1

grilla.texmatrix(i,4)= val(grilla.texmatrix(i,0)) *val(grilla.texmatrix(i,3))

total = total +grilla.texmatrix(i,4)

pero me da un error

la col 3 es con decimales por ej. $13.13

y la colunma 4 me da el resultado sin decimales


gracias
  #2 (permalink)  
Antiguo 15/09/2008, 13:03
Avatar de David
Moderador
 
Fecha de Ingreso: abril-2005
Ubicación: In this planet
Mensajes: 15.720
Antigüedad: 19 años
Puntos: 839
Exclamación Respuesta: Suma En Un msflexigrid

¿Cuál es el error que te da?.

P.S.: Si tiene el símbolo $ el val no te va a funcionar.
__________________
Por favor, antes de preguntar, revisa la Guía para realizar preguntas.
  #3 (permalink)  
Antiguo 16/09/2008, 10:54
 
Fecha de Ingreso: diciembre-2007
Mensajes: 40
Antigüedad: 16 años, 4 meses
Puntos: 1
Respuesta: Suma En Un msflexigrid

yo hago esto y funciona muy bien ,pero no hagas un VAL sobre la celda porque el val obia las comas entendes,fijate y me avisas
If MSFlexGrid1.Col = 2 Then
Dim Precio, Cantidad As Currency
Dim Total, Ttotal As Currency
Dim lngMaxRow As Long
w = MSFlexGrid1.Row
lngMaxRow = MSFlexGrid1.Rows - 1
For w = w To lngMaxRow
DoEvents
If MSFlexGrid1.TextMatrix(w, 3) <> "" Then
Precio = MSFlexGrid1.TextMatrix(w, 3)
End If
If MSFlexGrid1.TextMatrix(w, 2) <> "" Then
Cantidad = MSFlexGrid1.TextMatrix(w, 2)
Else
End If

Ttotal = Precio * Cantidad
MSFlexGrid1.TextMatrix(w, 5) = Format$(Total, "###.00")

Next w
End If
  #4 (permalink)  
Antiguo 16/09/2008, 13:30
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 2 meses
Puntos: 17
Respuesta: Suma En Un msflexigrid

a ver si te sirve esto

para visual el separador decimal es el punto entonces si llenaste la grilla con datos y en esos datos iban numeros decimales y el separador decimal es la coma entonces,.....

al hacer val del numero decimal, se olvida de la coma, no la toma, toma como un solo valor o simplemente te trunca el valor ej:

opcion1 val(13,13)=13
opcion2 val(13,13)=1313

cualquiera de las formas te arroja una suma erronea

lo que hago yo es reemplazar las comas por decimales de la sig. manera

total=total+val(REPLACE(grid1.textmatrix(x,3),",", ".")

la funcion replace cambia todas las comas por puntos (si es que los tiene), ojo que eso tambien te va a pasar si muestras los valores con separador de miles ej:

opcion1 1.000=1
opcion2 1.235=1,235

eso tambien lo sacas con replace :

replace(grid1.textmatrix(x,3),".","")

donde los parametros ingresados a replace son (cadena,caracter buscado,caracter de reemplazo)

usa replace espero funcione

saludos
  #5 (permalink)  
Antiguo 16/09/2008, 15:02
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Suma En Un msflexigrid

gracia a me anduvo bien
  #6 (permalink)  
Antiguo 16/09/2008, 15:05
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Suma En Un msflexigrid

KRUZADO, te hago una consulta mas ya que parece la tenes clara

yo instale el programa y me da un error algo de que el form "MODAL" o algo asi y aparte los datareport no me andan sera por que yo los conecte no por codigo sino por proopiedades


un abrazo

PD: Si yo Quiero actualizar los precios de lo facturado en cuenta Cte como podria hacer ?

desde yo 1.000.000 de gracias
  #7 (permalink)  
Antiguo 20/09/2008, 09:49
Avatar de gasafonso  
Fecha de Ingreso: septiembre-2008
Mensajes: 357
Antigüedad: 15 años, 8 meses
Puntos: 1
Respuesta: Suma En Un msflexigrid

Cita:
Iniciado por gasafonso Ver Mensaje
KRUZADO, te hago una consulta mas ya que parece la tenes clara

yo instale el programa y me da un error algo de que el form "MODAL" o algo asi y aparte los datareport no me andan sera por que yo los conecte no por codigo sino por proopiedades


un abrazo

PD: Si yo Quiero actualizar los precios de lo facturado en cuenta Cte como podria hacer ?

desde yo 1.000.000 de gracias

Quiero actualizar los precios de lo facturado en cuenta Cte, estan en una tabla detalledeClientes, como podria hacer ?
  #8 (permalink)  
Antiguo 22/09/2008, 13:26
Avatar de Kruzado  
Fecha de Ingreso: marzo-2007
Mensajes: 307
Antigüedad: 17 años, 2 meses
Puntos: 17
Respuesta: Suma En Un msflexigrid

sorry por la demora... estuve celebrando fiestas patrias y me lance a la vida, pero vamos a lo nuestro, la primera consulta, un poco mas especifico con el error, a la segunda con un update ej:

llave="update tutabla set facturado=" & tunuevovalor & ", total=" & tutotal & " where cliente=" & tucliente
tubase.execute llave

eso es basicamente, reemplazas las variables y nombres por los que ocupas tu y listo
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




La zona horaria es GMT -6. Ahora son las 19:40.