Portal    Foro    Buscar    FAQ    Registrarse    Conectarse


Publicar nuevo tema  Responder al tema 
Página 1 de 1
 
 
Recuperar Numeros Con Decimales De ColumView [SOLUCIONADO]
Autor Mensaje
Responder citando   Descargar mensaje  
Mensaje Recuperar Numeros Con Decimales De ColumView [SOLUCIONADO] 
 
Hola:

Soy nuevo programando en gambas, estoy intentando hacer una aplicación de facturación para Linux basada en gambas.
Actualmente estoy con el Formulario de Tickets, en el que tengo un ColumView que recibe los datos de TextBox y ValueBox.
Pero al recuperar las filas del Columview, me recupera los números sin decimales, como puedo hacer para recuperar los datos con decimales?

Codigo:

' gambas class file
Rresult AS Result
impuesto AS Result
pago AS Result
linea AS Integer = 0
lineaticket AS Integer = 0
'TabStrip1.Text = "Ficha"

PUBLIC SUB Form_Open()
  ticket()
  impuesto = FMain.hcon.Exec("SELECT * FROM impuestos ORDER BY codimpuesto")
  WHILE impuesto.Available
    Cboimpuesto.Add(impuesto!valor)
    impuesto.MoveNext
  WEND
  
  pago = FMain.hcon.Exec("SELECT * FROM formapago ORDER BY codformapago")
  WHILE pago.Available
    Cbopago.Add(pago!nombrefp)
    pago.MoveNext
  WEND
  
END

PUBLIC SUB ToolButton2_Click()

'   Ffecha.Preguntarhastafecha
  Ffecha.ShowModal
  FTicket.TxtCodCliente.SetFocus
  ' FTicket2.Refresh
END


PUBLIC SUB ToolButton1_Click()

  FSelcliente.Show
  FTicket.TxtCodArtVenta.SetFocus
END

PUBLIC SUB TxtCodArtVenta_KeyPress()

  IF Key.Code = Key.F3 THEN FSelarticulo.Show

END

PUBLIC SUB ticket()
  
  LineasTicket.Clear
  LineasTicket.Columns.count = 6
  LineasTicket.Columns[0].Width = 65
  LineasTicket.Columns[1].Width = 450
  LineasTicket.Columns[2].Width = 65
  LineasTicket.Columns[3].Width = 65
  LineasTicket.Columns[4].Width = 65
  LineasTicket.Columns[5].Width = 100
'   LineasTicket.Columns[0].Alignment
  LineasTicket.Columns[0].Text = "Codigo"
  LineasTicket.Columns[1].Text = "Descripcion"
  LineasTicket.Columns[2].Text = "Imp. %"
  LineasTicket.Columns[3].Text = "Unidades"
  LineasTicket.Columns[4].Text = "PVP"
  LineasTicket.Columns[5].Text = "Total"
  
END

PUBLIC SUB ToolButton3_Click() 'Añadir articulos al ColumView LineasTicket

  LineasTicket.Add(linea, linea)
  LineasTicket.Item[0] = TxtCodArtVenta.Text
  LineasTicket.Item[1] = TxtDesVenta.Text
  LineasTicket.Item[2] = Val(Cboimpuesto.Current.Text)
  LineasTicket.Item[3] = CFloat(TxtUnidVenta.Value)
  LineasTicket.Item[4] = CFloat(TxtPVPVenta.Value)
  LineasTicket.Item[5] = LineasTicket.Item[3] * LineasTicket.Item[4]
  Txtimpuesto.Text = Round(CFloat(Txtimpuesto.Text) + LineasTicket.Item[5] * (LineasTicket.Item[2] / 100), -2)
  TxtSubTotal.Text = CFloat(TxtSubTotal.Text) + LineasTicket.Item[5]
  TxtTotalEuros.Text = CFloat(TxtSubTotal.Text) + CFloat(Txtimpuesto.Text)
  LineasTicket.MoveNext
  linea = linea + 1
  TxtCodArtVenta.Text = ""
  TxtDesVenta.Text = ""
  Cboimpuesto.Index = 0
  TxtUnidVenta.Clear
  TxtPVPVenta.Clear
  
END

PUBLIC SUB TxtEntregado_LostFocus()
  IF NOT IsFloat(TxtEntregado.Value) THEN TxtEntregado.Value = Reemplazar(TxtEntregado.Value)
  IF TxtEntregado.Value <> "" THEN TxtDevolucion.Text = CFloat(TxtEntregado.Value) - CFloat(TxtTotalEuros.Text)

END

PUBLIC FUNCTION Reemplazar(s AS String) AS Float
  
  DIM i AS Float

  IF s LIKE ("*,*") 'Si tiene coma la reemplaza
  s = Replace(s, ",", ".")
  END IF
  i = CFloat(s)
  RETURN i
END

PUBLIC FUNCTION Reemplazarp(s AS String) AS Integer
  
  DIM i AS Integer
  IF s LIKE ("*.*") 'Si tiene punto lo reemplaza con comas
  s = Replace(s, ".", ",")
  END IF
  i = Val(s)
  RETURN i
END



PUBLIC SUB LineasTicket_Click()

  TxtCodArtVenta.Text = LineasTicket.Current[0]
  TxtDesVenta.Text = LineasTicket.Current[1]
  Cboimpuesto.Index = CFloat(LineasTicket.Current[2])
'   TxtUnidVenta.
  TxtUnidVenta.Value = Round(CFloat(LineasTicket.Current[3]), -2)
  TxtPVPVenta.Value = Round(CFloat(Reemplazarp(LineasTicket.Current[4])), -2)
  lineaticket = 1
END

PUBLIC SUB BtnBorrarlinea_Click()

  TxtCodArtVenta.Text = ""
  TxtDesVenta.Text = ""
  Cboimpuesto.Index = 0
  TxtUnidVenta.Value = 0
  TxtPVPVenta.Value = 0
  IF lineaticket = 1 THEN
    LineasTicket.Remove(LineasTicket.Current.Key)
    LineasTicket.Refresh
  ENDIF
  TxtCodArtVenta.SetFocus
END
 

 



 
última edición por marcopc el Lunes, 28 Noviembre 2011, 17:06; editado 1 vez 
marcopc - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Recuperar Numeros Con Decimales De ColumView 
 
No se si se entiende lo que me pasa, bueno paso a aclararlo más...

 gambas_factura_decimales

Pues quiero que al hacer click sobre el columnview sobre la linea que en PVP, me ponga el precio con decimales y las unidades también en caso que tuviese en el campo PVP que lo tengo como ValueBox.

Gracias y un saludo al foro
 



 
marcopc - Ver perfil del usuarioEnviar mensaje privado 
Volver arribaPágina inferior
Responder citando   Descargar mensaje  
Mensaje Re: Recuperar Numeros Con Decimales De ColumView 
 
Este es el trozo de código que tienes mal.

marcopc escribió: [Ver mensaje]


PUBLIC FUNCTION Reemplazarp(s AS String) AS Integer
 
 DIM i AS Integer
 IF s LIKE ("*.*") 'Si tiene punto lo reemplaza con comas
 s = Replace(s, ".", ",")
 END IF
 i = Val(s)
 RETURN i
END




Si lo que necesitas es un número decimal en el valuebox, no puedes emplear una rutina que devuelva Integer. Tienes que cambiar Integer por Float así:

PUBLIC FUNCTION Reemplazarp(s AS String) AS Float
 
 DIM i AS Float
 IF s LIKE ("*.*") 'Si tiene punto lo reemplaza con comas
 s = Replace(s, ".", ",")
 END IF
 i = Val(s)
 RETURN i
END



Entonces, en el código de abajo ya no debes de convertir de nuevo a Float, y bueno, el redondeo lo puedes dejar en dos decimales, pero eso te traerá pequeños descuadres que te volverán loco. Habría mucho que hablar del tema, y los que alguna vez han desarrollado un ERP sabrán de lo que hablo...


PUBLIC SUB LineasTicket_Click()

  TxtCodArtVenta.Text = LineasTicket.Current[0]
  TxtDesVenta.Text = LineasTicket.Current[1]
  Cboimpuesto.Index = CFloat(LineasTicket.Current[2])
'   TxtUnidVenta.
  TxtUnidVenta.Value = Round(CFloat(LineasTicket.Current[3]), -2)
  TxtPVPVenta.Value = Round(Reemplazarp(LineasTicket.Current[4]), -2)
  lineaticket = 1
END


Revisa todas las conversiones y formateos y vigila los tipos de variables. Son errores muy comunes que a veces dan dolores de cabeza.

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: Recuperar Numeros Con Decimales De ColumView 
 
Gracias, por todo al final elimine la funcion reemplazarp(), que no la utilizo al hacer la siguiente modificación.

PUBLIC SUB LineasTicket_Click()

  TxtCodArtVenta.Text = LineasTicket.Current[0]
  TxtDesVenta.Text = LineasTicket.Current[1]
  Cboimpuesto.Index = CFloat(LineasTicket.Current[2])
  TxtUnidVenta.Value = Round(CFloat(LineasTicket.Current[3]), -2)
  TxtPVPVenta.Value = Round(CFloat(LineasTicket.Current[4]), -2)
  lineaticket = 1
END

De nuevo Gracias
 



 
marcopc - 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 Como Eliminar Seleccion De Un ColumView 2fast2good General 2 Lunes, 28 Junio 2010, 01:07 Ver último mensaje
2fast2good
No hay nuevos mensajes Acerca De La Precisión En Decimales (SOLU... santijav General 7 Lunes, 26 Diciembre 2011, 17:39 Ver último mensaje
santijav
No hay nuevos mensajes Recorrer ColumView kamps Controles/Librerías/Componentes 4 Miercoles, 20 Febrero 2013, 13:11 Ver último mensaje
kamps
No hay nuevos mensajes ColumView,TableView,GridView.Criterios Shell General 3 Sabado, 18 May 2013, 15:53 Ver último mensaje
shordi
 

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