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
 

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: 168
  • capture.png
    capture.png
    4.5 KB · Views: 179

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