Welcome To The Home Of The Visual FoxPro Experts  
home. signup. forum. archives. search. google. articles. downloads. faq. members. weblogs. file info. rss.
 From: Jun Tangunan
  Where is Jun Tangunan?
 Cabanatuan
 Philippines
 Jun Tangunan
 To: Ellick Yeung
  Where is Ellick Yeung?
 
 Hong Kong
 Ellick Yeung
 Tags
Subject: RE: Text box fore color in a grid
Thread ID: 189072 Message ID: 189122 # Views: 1 # Ratings: 1
Version: Visual FoxPro 9 SP2 Category: Grids
Date: Wednesday, August 13, 2008 1:13:57 PM         
   


> >
> > Hi Ellick -
> >
> > You can use the column.DynamicForeColor property. If you want one particular column only, you do not need SetAll():
> >
> > LOCAL oForm as Form
> > oForm = CREATEOBJECT('TestForm')
> > oForm.Show(1)
> > RETURN
> > 
> > DEFINE CLASS TestForm as Form
> > 	AutoCenter = .T.
> > 	PROCEDURE Load
> > 		LOCAL i
> > 		CREATE CURSOR temp (test Int)
> > 		FOR i = 1 TO 10
> > 			INSERT INTO temp VALUES (i)
> > 		ENDFOR
> > 		GO TOP
> > 	ENDPROC
> > 
> > 	ADD OBJECT Grid1 as Grid
> > 	PROCEDURE Grid1.Init()
> > 		This.Column1.DynamicForeColor = "Iif(test%2=0,RGB(255,0,0),RGB(0,0,0))"
> > 	ENDPROC
> > ENDDEFINE
> > 

> >
> >
> > hth
> > -Stefan
>
> Thanks Stefan and guys for the quick reply!
>
> Your example will set the ForeColor for the ONE column "Column1", but what I am trying to do is just change the fore color of a single cell within the grid. Here is the example:
>
> Data shown in the grid as 3 columns and 3 rows.
>
> Col_a Col_b Col_c
> 100 200 500
> 150 70 500
> 20 300 600
>
> I want the value which is less than 100 show in RED, in this case Row 3 in Column A (value = 20) and Row 2 in Column B (value = 70).
>
> Thanks in advance!
>
> Ellick


You cannot do that with SetAll. SetAll will affect the entire grid (including non-numeric columns/fields). It is better to just put the condition in the DynamicForeColor of "each" target columns. Let us say Col1 and Col2 is non-numeric like ItemCode and Description, then column3 to 5 are what is numeric (your targets), Column6 and so on is not also among the target, then:

with thisform.grid1 as Grid
     .Column3.DynamicForecolor = "IIF(YourField3 < 100, RGB(0,255,0),RGB(0,0,0))"
     .Column4.DynamicForecolor = "IIF(YourField4 < 100, RGB(0,255,0),RGB(0,0,0))"
     .Column5.DynamicForecolor = "IIF(YourField5 < 100, RGB(0,255,0),RGB(0,0,0))"
Endwith


-- Added --
You can put the above in the INIT event of your form.

Jun Tangunan

"Get out of the past and look in the future."
http://weblogs.foxite.com/sandstorm36/

ENTIRE THREAD

Text box fore color in a grid Posted by Ellick Yeung @ 8/13/2008 9:52:10 AM
RE: Text box fore color in a grid Posted by Stefan Wuebbe @ 8/13/2008 10:08:26 AM
RE: Text box fore color in a grid Posted by Ellick Yeung @ 8/13/2008 10:55:26 AM
RE: Text box fore color in a grid Posted by surinder singh @ 8/13/2008 11:04:56 AM
RE: Text box fore color in a grid Posted by Stefan Wuebbe @ 8/13/2008 12:17:42 PM
RE: Text box fore color in a grid Posted by Jun Tangunan @ 8/13/2008 1:13:57 PM
RE: Text box fore color in a grid Posted by Ellick Yeung @ 8/14/2008 4:56:36 AM
RE: Text box fore color in a grid Posted by surinder singh @ 8/13/2008 10:09:56 AM
RE: Text box fore color in a grid Posted by Mustapha Bihmouten @ 8/13/2008 10:11:24 AM
RE: Text box fore color in a grid Posted by Jun Tangunan @ 8/13/2008 10:14:53 AM