This example demonstrates the use of several functions: Bitmap, Case, CurrentRow, GetRow, and RGB.
What you want to do
Using the Employee table in the Enterprise Application Sample Database, you create a DataWindow object using the Emp_id, Emp_fname, Emp_lname, and Salary columns.
In the painter, you want to display a number of items such as the number of the current row, an arrow that is an indicator of the current row, and the salary for an employee with a background color that depends on what the salary is.
How to do it
In the workspace, add the following:
-
A computed field CurrentRow( ), which displays the number of the current row.
-
A picture object, which is a right-arrow, for which you define an expression for the arrow's visible property:
If(CurrentRow()= GetRow(), 1, 0)
The expression causes an arrow to display in the current row and no arrow to display in other rows.
-
A computed field using the If, CurrentRow, and GetRow functions:
If(CurrentRow() = GetRow(),"Current","Not current")
displays the word "Current" when the row is the current row and "Not current" for all other rows.
-
A computed field (typed on one line) using the Bitmap, CurrentRow, and GetRow functions:
Bitmap(If(CurrentRow()= GetRow(), "c:\sampl\ex\code\indicatr.bmp", " "))
displays an arrow bitmap for the current row and no bitmap for all other rows.
-
An expression for the Background.Color property of the salary column:
Case(salary WHEN IS >60000 THEN RGB(192,192,192) WHEN IS >40000 THEN RGB(0,255,0) ELSE RGB(255,255,255))
The expression causes a salary above $40,000 to display in green, a salary above $60,000 to display in gray, and all other salaries to display in white.
What you get
Here is what the design of the DataWindow object looks like:
Here is what the data looks like with the second row current.
Notice that the number of the current row is 2; the first row and the third row are "Not current" (and therefore display no bitmap); and the second row, which is the current row, displays the arrow row indicator.
On your screen, the salary in the first row has a green background because it is more than $40,000; the salary in the second row has a gray background because it is more than $60,000; and the salary in the third row has a white background, which matches the background of the DataWindow object.