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

Discussion in 'Spanish Forum' started by Sergio Castellari, May 21, 2019.

  1. Sergio Castellari

    Sergio Castellari 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:
    Code:
    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, 
    0False)
    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
     
  2. Descartex

    Descartex Well-Known Member Licensed User

    José J. Aguilar likes this.
  3. Sergio Castellari

    Sergio Castellari 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
     
Loading...
  1. This site uses cookies to help personalise content, tailor your experience and to keep you logged in if you register.
    By continuing to use this site, you are consenting to our use of cookies.
    Dismiss Notice