Spanish Cambiar el color de una columna B4X Table según el contenido de otra

Sergio Castellari

Active Member
Licensed User
Hola,

Necesito cambiar el color del contenido de una columna, de acuerdo al contenido de otra.
En el ejemplo que pruebo cambian el color, si el contenido tiene un valor positivo o negativo. En mi caso, quiero que cambie el color, pero si otra columna contiene una "S" o "".
Este codigo es el ejemplo actual y funciona:
B4X:
Private Sub CreateCustomFormat (c As B4XTableColumn)
   Dim formatter As B4XFormatter
   formatter.Initialize
   c.Formatter = formatter
   Dim Positive As B4XFormatData = c.Formatter.NewFormatData
   Positive.TextColor = B4XTable1.TextColor
   Positive.FormatFont = xui.CreateDefaultBoldFont(16)
   c.Formatter.AddFormatData(Positive, 0, c.Formatter.MAX_VALUE, True) 'Inclusive (zero included)
   Dim Negative As B4XFormatData = c.Formatter.CopyFormatData(Positive)
   Negative.TextColor = xui.Color_Red
   Negative.FormatFont = xui.CreateDefaultBoldFont(14)
   Negative.Prefix = "("
   Negative.Postfix = ")"
   c.Formatter.AddFormatData(Negative,c.Formatter.MIN_VALUE, 0, False)
End Sub

Pero Yo necesito, cambiar el color segun el contenido de otra columna, algo asi:

Col_ENE_si = B4XTable1.AddColumn("ENE_si" , B4XTable1.COLUMN_TYPE_TEXT)
...
Private Sub ENE_Si (c As B4XTableColumn)
Dim formatter As B4XFormatter
formatter.Initialize
c.Formatter = formatter
Dim Positive As B4XFormatData = c.Formatter.NewFormatData
Positive.FormatFont = xui.CreateDefaultBoldFont(16)
If Col_ENE_si = "S" Then --->>>> COMO OBTENGO EL CONTENIDO DE LA COLUMNA "Col_ENE_si" ???
Positive.TextColor = B4XTable1.TextColor
Else
Positive.TextColor = xui.Color_Gray
End If
c.Formatter.AddFormatData(Positive, 0, c.Formatter.MAX_VALUE, True) 'Inclusive (zero included)
End Sub

Aqui me dice que los TIPOS no COINCIDEN y por supuesto no funciona...

Saludos,
Sergio
 

Descartex

Well-Known Member
Licensed User
Longtime User

Sergio Castellari

Active Member
Licensed User
Hola @Descartex,

Gracias por la pista...pero no es lo que necesito. En el Post, Erel explica el funcionamiento de B4XTable (de hecho, utilice dicho ejemplo de base para mi proyecto) pero el evento en cuestion es para cuando se hace un CLICK en una celda determinada.
Lo que necesito, es "formatear" el color del contenido de la columna segun el contenido de otra columna (y misma fila obvio)...
En el procedimiento Private Sub CreateCustomFormat (c As B4XTableColumn) en el primer Post se aplica un color segun el valor de la propia celda/columna...Yo necesito tambien poner un color u otro, pero dependiento del contenido de otra columna, y eso es lo que nosé!!!...
Tiene que haber alguna forma de obtener el contenido de otra columna.

Saludos,
Sergio
 
Top