PDA

View Full Version : ? about color equations


ABC123

lmarini
04-25-2008, 07:19 PM
Is there a way to code a color equation in either an Html or Rtf which is embedded on a form so the color of the value of the fields will be a different color based on the value in another field.

NoeticCC
04-25-2008, 08:12 PM
Is there a way to code a color equation in either an Html or Rtf which is embedded on a form so the color of the value of the fields will be a different color based on the value in another field.

What do you mean by "the value of the fields"? Do you mean the colour of the text, background etc? And what control are you talking about?

As an example, I am using this code (generated with a genie) to set the background colour of a form based on a default colour setting for an item:


'Get 'Value' property of 'Color' in Form 'BMJ' .
ColorCurrent.Name = topparent:Color_Name.value

'Set 'Fill' properties of 'Journalframe' in Form 'BMJ' .
DIM form_name as c
if is_object(topparent.this) then
form_name = topparent.name()+".this"
else
form_name = ""
end if

DELETE expression_result
expression_result = eval("Color_Name",form_name)
parentform:Journalframe.fill.color = expression_result

This data is then used to generate journal-specific HTML PDF proof emails depending on which journal it is:

Steve Wood
04-25-2008, 09:05 PM
I created an app once where the background changed color based on what bank the record was for. I had a table of colors assigned to each bank_id and then placed Action Script in the OnInit Event for the form. I used Set Properties to set the fill.color for my window (this syntax will be evident in the Set Properties Action Script).

I assigned fill.color to: lookup("bank","ID=my_bank_id","Folder_color")

Folder_Color was a value such as #51,153,102, which is what fill.color expects as RGB color codes. I even had the Color Picker pop up on the Bank form to let them pick any RGB color.

I assume every object has a fill.color property or similar to which you could assign color values.

gschepp
04-26-2008, 09:36 AM
The primary way without using xbasic is going to field properties and selecting the Setup Tab and then checking Color Equation. Next click on the x-y to popup the Color Equation Genie. From there enter your requirements.

eboughey1
11-01-2008, 01:52 AM
Steve,

That's close to what I'm looking for on the web side of my app. I want to set the fill (background) color for the field to a certain color when criteria is met (platecomplete = .t.). Is that doable on the web app? Should I use xbasic in the area where the field is tmpl.field is set up? If so, I'm not sure how to word it.

with tmpl.field_info[3]
.Fieldname = "Clientjobn"
.Scope = "Local"
.DisplayFormat = ""
.DisplayUnFormat = ""
.Type = "C"
.Varname = "CLIENTJOBN"
.Column.LabelPosition = "Left"
.Controltype = "Label"
.Label.InLineStyle = ""
.BreakType = "None"
.nCols = 1
.Column.Hide = .f.
.Column.Heading = "Clientjobn"
.Column.Sort = "Clientjobn"
end with

Any help would be much appreciated.


I created an app once where the background changed color based on what bank the record was for. I had a table of colors assigned to each bank_id and then placed Action Script in the OnInit Event for the form. I used Set Properties to set the fill.color for my window (this syntax will be evident in the Set Properties Action Script).

I assigned fill.color to: lookup("bank","ID=my_bank_id","Folder_color")

Folder_Color was a value such as #51,153,102, which is what fill.color expects as RGB color codes. I even had the Color Picker pop up on the Bank form to let them pick any RGB color.

I assume every object has a fill.color property or similar to which you could assign color values.

Steve Wood
11-01-2008, 02:31 AM
I did not think about it at the time, but I did this in a web application too! See the video on my website regarding eCitation (The first and maybe only web-based traffic citation application). It has a 'day view' and a 'night view'.

But the video does not say how to do it. Let me try here from memory. You just want the backgrond to change, so that makes a bit easier. Background for a page looks like this:

<body bgColor=#ff0000>

That's a red background.

So delete the default body tag and change it to this:


<%a5
dim session.bgcolor as c
if session.bgcolor = ""
session.bgcolor= "#ffffff" ' default white
end if
?"<body bgColor="+session.bgcolor + ">"
%>

Do whatever you need to set the session.bgcolor. Since each user has their own session variables, the screen color can be different for each user.

One thing about this. Once you make a change that removes a standard html tag like body you can NEVER use the WYSIWYG view again. It will immediately put back the default body tag.