Spanish SOLUCIONADO Pasar el valor b4xtable a Label pasa sin coma

elsanto

Member
Licensed User
Longtime User
Buenas gente : estoy pasando los valores de una tabla cuando el usuario lo selecciona y los pongo en los label pero en campo precio
me quita la coma y quiero mostrarlo con el simbolo $ como en el ejemplo de las imagenes
B4X:
    FuncionesTablas.B4xSetColumnAlignment(B4XTable1,"Código", "center")  'columnID, Alignment
    FuncionesTablas.B4xSetColumnAlignment(B4XTable1,"Descripción", "Left")  'columnID, Alignment
    FuncionesTablas.B4xSetColumnAlignment(B4XTable1,"Precios", "center")  'columnID, Alignment
    
'    ProgressDialogHide
    
End Sub

 
Sub B4XTable1_CellClicked (ColumnId As String, RowId As Long)
    Dim tabla        As Map = B4XTable1.GetRow(RowId)
    Dim ArtCodigo      As String
    Dim ArtDescripcion As String
    Dim ArtPrecio      As Double
    
    For i= 0 To tabla.Size -1
        
        Log ("key" & tabla.GetKeyAt(i))
        Log ("value" & tabla.GetValueAt(i))
        Log ("articulo codigo " & tabla.GetValueAt(0))
        ArtCodigo = tabla.GetValueAt(0)
        ArtDescripcion = tabla.GetValueAt(1)
        ArtPrecio = tabla.GetValueAt(2)
        
    Next   
    
    lblcodigo.Text = ArtCodigo
    lbldescri.Text = ArtDescripcion
    lblprecio.Text = ArtPrecio

End Sub
Asi me sale

coca noc.png

y quiero que salga asi
Coca.png

Existe alguna forma de darle ese formato tanto a la tabla como al label
Dede ya muchas gracias
 

josejad

Expert
Licensed User
Longtime User
No la he usado, pero has probado la librería B4XFormater?
 

drgottjr

Expert
Licensed User
Longtime User
sigue el consejo arriba
mira, lo del $ fue lo de menos. si quieres un $, lo pones delante del valor (imagen 1). el verdadero problema son los 0 que faltan y los valores que no se alinean (imagen 2). necesitas una libreria que se ocupa de ello: b4xformatter como dice don jose. segun nuestro mago mayor erel, es mejor que la original numberformatter.
 

Attachments

  • santo.png
    santo.png
    4.8 KB · Views: 230
  • capture.png
    capture.png
    4.5 KB · Views: 243

elsanto

Member
Licensed User
Longtime User
sigue el consejo arriba
mira, lo del $ fue lo de menos. si quieres un $, lo pones delante del valor (imagen 1). el verdadero problema son los 0 que faltan y los valores que no se alinean (imagen 2). necesitas una libreria que se ocupa de ello: b4xformatter como dice don jose. segun nuestro mago mayor erel, es mejor que la original numberformatter.
Gracias , lo del $ se lo puse adelante pero no me pasa la coma de la tabla al label , pero voy a ver la libreria B4XFormater para arreglar los valores de la tabla
 

drgottjr

Expert
Licensed User
Longtime User
dim cosa as string = "7335,10"
cosa.replace(",",".") ' sustituye "." por ","
cosa = "$" & cosa ' pones $ delante
log(cosa)

pero mucho mas facil con un "formatter". construyes un formato a seguir. le alimentas los valores, y te sale una cadena bien arreglá
 
Last edited:

elsanto

Member
Licensed User
Longtime User
Solucionado
Para el label
B4X:
'formateo el campo precio para pasarlo al label
    Dim formatter As B4XFormatter
    formatter.Initialize
    formatter.GetDefaultFormat.MaximumFractions = 2
    formatter.GetDefaultFormat.MinimumFractions = 2
    formatter.GetDefaultFormat.Prefix = "$ "
    'Log(formatter.Format(ArtPrecio))
        
    lblcodigo.Text = ArtCodigo
    lbldescri.Text = ArtDescripcion
    lblprecio.Text = formatter.Format(ArtPrecio)
y para la tabla la colunma precios quedo asi
B4X:
Private Sub CreateCustomFormat (c As B4XTableColumn)
    'formateo la columna de precios
    Dim formatter As B4XFormatter
    formatter.Initialize
    c.Formatter = formatter
    
    Dim Precios As B4XFormatData = c.Formatter.NewFormatData
    
    Precios.Prefix = "$ "
    Precios.MaximumFractions = 2
    Precios.MinimumFractions = 2
    c.Formatter.AddFormatData(Precios, 0, c.Formatter.MAX_VALUE, True)

End Sub
 

Xfood

Expert
Licensed User
Buenas gente : estoy pasando los valores de una tabla cuando el usuario lo selecciona y los pongo en los label pero en campo precio
me quita la coma y quiero mostrarlo con el simbolo $ como en el ejemplo de las imagenes
B4X:
    FuncionesTablas.B4xSetColumnAlignment(B4XTable1,"Código", "center")  'columnID, Alignment
    FuncionesTablas.B4xSetColumnAlignment(B4XTable1,"Descripción", "Left")  'columnID, Alignment
    FuncionesTablas.B4xSetColumnAlignment(B4XTable1,"Precios", "center")  'columnID, Alignment
   
'    ProgressDialogHide
   
End Sub


Sub B4XTable1_CellClicked (ColumnId As String, RowId As Long)
    Dim tabla        As Map = B4XTable1.GetRow(RowId)
    Dim ArtCodigo      As String
    Dim ArtDescripcion As String
    Dim ArtPrecio      As Double
   
    For i= 0 To tabla.Size -1
       
        Log ("key" & tabla.GetKeyAt(i))
        Log ("value" & tabla.GetValueAt(i))
        Log ("articulo codigo " & tabla.GetValueAt(0))
        ArtCodigo = tabla.GetValueAt(0)
        ArtDescripcion = tabla.GetValueAt(1)
        ArtPrecio = tabla.GetValueAt(2)
       
    Next  
   
    lblcodigo.Text = ArtCodigo
    lbldescri.Text = ArtDescripcion
    lblprecio.Text = ArtPrecio

End Sub
Asi me sale

View attachment 97747

y quiero que salga asi
View attachment 97748
Existe alguna forma de darle ese formato tanto a la tabla como al label
Dede ya muchas gracias
excelente tu crm
 
Top