Discussion:
Color a una celda de un control grid
(demasiado antiguo para responder)
tony
2010-11-04 21:30:31 UTC
Permalink
Hola a todos,

Alguien sabe como colocar color a una celda de un control grid, ya que
necesito hacer un cuadro parecido a una matriz y dar color a una o a
un grupo de celdas de acuerdo a una condicion.

Agradezco su colaboración.

Gracias.

Antonio Samper G.
Richard Silva
2010-11-08 12:38:28 UTC
Permalink
Hola Tony,

copio y pego un aporte de José A. Blasco en Portalfox.com

*****************************
Public oForm
oForm = Createobject("myForm")
oForm.Show()

Define Class myForm As Form

DataSession = 2

Height = 400

Width = 600

Add Object myGrid As Grid With ;
Height = 400, Width = 600, RecordSource="datos"

Procedure Load

Create Cursor Datos (codigo N(3),nombre c(30),col1 N(1),col2
N(1),col3 N(1))
Insert Into Datos Values (1,"Juan Perez",1,3,5)
Insert Into Datos Values (2,"Ana Pardos",2,4,6)
Insert Into Datos Values (3,"Luis Garcia",3,5,1)
Insert Into Datos Values (4,"Elisa Sanjuan",4,6,2)
Insert Into Datos Values (5,"Alberto Casañal",5,1,3)
Insert Into Datos Values (6,"Julia Martin",6,2,4)
GOTO top

Endproc

Procedure Init

This.myGrid.Column1.DynamicBackColor="thisform.MyColor(codigo)"
This.myGrid.Column3.DynamicBackColor="thisform.MyColor(col1)"
This.myGrid.Column4.DynamicBackColor="thisform.MyColor(col2)"
This.myGrid.Column5.DynamicBackColor="thisform.MyColor(col3)"

Endproc

Procedure MyColor

Lparameters tnvalor

lnColor = 0xFFFFFF && Blanco por default

Do Case
Case tnvalor = 1
lnColor = Rgb(100,100,150)

Case tnvalor = 2
lnColor = Rgb(255,255,0)

Case tnvalor = 3
lnColor = Rgb(255,100,0)

Case tnvalor = 4
lnColor = Rgb(255,0,0)

Case tnvalor = 5
lnColor = Rgb(0,255,0)

Case tnvalor = 6
lnColor = Rgb(0,0,255)

Endcase

Return lnColor

Endproc


Procedure Unload

Close Tables All
Close Databases All

Endproc

Enddefine
***************************

Espero te sea de utilidad,

Un abrazo.
tony
2010-11-11 16:33:22 UTC
Permalink
Post by Richard Silva
Hola Tony,
copio y pego un aporte de José A. Blasco en Portalfox.com
*****************************
Public oForm
oForm = Createobject("myForm")
oForm.Show()
Define Class myForm As Form
 DataSession = 2
 Height = 400
 Width = 600
 Add Object myGrid As Grid With ;
  Height = 400, Width = 600, RecordSource="datos"
 Procedure Load
  Create Cursor Datos (codigo N(3),nombre c(30),col1 N(1),col2
N(1),col3 N(1))
  Insert Into Datos Values (1,"Juan Perez",1,3,5)
  Insert Into Datos Values (2,"Ana Pardos",2,4,6)
  Insert Into Datos Values (3,"Luis Garcia",3,5,1)
  Insert Into Datos Values (4,"Elisa Sanjuan",4,6,2)
  Insert Into Datos Values (5,"Alberto Casañal",5,1,3)
  Insert Into Datos Values (6,"Julia Martin",6,2,4)
  GOTO top
 Endproc
 Procedure Init
  This.myGrid.Column1.DynamicBackColor="thisform.MyColor(codigo)"
  This.myGrid.Column3.DynamicBackColor="thisform.MyColor(col1)"
  This.myGrid.Column4.DynamicBackColor="thisform.MyColor(col2)"
  This.myGrid.Column5.DynamicBackColor="thisform.MyColor(col3)"
 Endproc
 Procedure MyColor
  Lparameters tnvalor
  lnColor = 0xFFFFFF && Blanco por default
  Do Case
   Case tnvalor = 1
    lnColor = Rgb(100,100,150)
   Case tnvalor = 2
    lnColor = Rgb(255,255,0)
   Case tnvalor = 3
    lnColor = Rgb(255,100,0)
   Case tnvalor = 4
    lnColor = Rgb(255,0,0)
   Case tnvalor = 5
    lnColor = Rgb(0,255,0)
   Case tnvalor = 6
    lnColor = Rgb(0,0,255)
  Endcase
  Return lnColor
 Endproc
 Procedure Unload
  Close Tables All
  Close Databases All
 Endproc
Enddefine
***************************
Espero te sea de utilidad,
Un abrazo.
Ok, gracias por la información la pondre aprueba y te comento.

Loading...