- Olan Knight
- PowerBuilder
- Monday, 16 August 2021 10:27 PM UTC
Update: 18-AUG-2021
Here's one example of the expressions used in the various columns:
IF ( bg_color = 1, RGB (147, 233, 240),
IF (bg_color = 2, RGB (169, 228, 133),
IF (bg_color = 3, RGB (237, 192, 200), 553648127
)
)
)
1 - Light blue = currently processing
2 - light green = successful with no errors
3 - light red = at least one error occurred
Else transparent
bg_column is a computed COLUMN (in the SQL) and set it with a dw.SetItem() command.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Update: 17-AUG-2021
It seems that the following code can READ data from the DW, but it cannot be used to WRITE data to the dw.
ls_data = string (dw_1.Object.Data.Primary.Current[1,3]) // [Row 1, column 3]
This SLAYS me because I'm certain I was using a similar trick to write to the DW, but I've wasted enough time pursuing this already. :/
I ended up adding a computed column called "bg_color" to the SQL, then an expression in the BackgroundColor property of the columns for which the background color was to change. Calling SetItem() to populate the bg_color did the trick.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
PBv12.1, build 7055
Windows 10, 64 bit platform
Summary:
I can change the background color for ALL of the columns easilt.
What is the syntax for just updating one row?
Details:
This works for changing the background color for ALL of the rows:
// Get the specified color
CHOOSE CASE as_bgcolor
CASE "LIGHT BLUE"
ll_color = RGB (147, 233, 240)
CASE "LIGHT GREEN"
ll_color = 9764735 // RGB (169, 228, 133)
CASE "LIGHT PINK"
ll_color = RGB (237, 192, 200)
CASE ELSE // "BUTTONFACE"
ll_color = RGB (244, 244, 244)
END CHOOSE
// The 10 displayed columns are:
ls_column [1] = "bill_fccid"
ls_column [2] = "ban"
....
ls_column [10] = "customer_group_uid"
// Init
ll_count = 10
ls_row = string (al_row)
ls_cmd = ""
ls_color = string (ll_color)
// Build the MODIFY command
FOR ll_idx = 1 TO ll_count
ls_cmd = ls_cmd + " " + ls_column [ll_idx] + ".background.mode=0" + &
" " + ls_column [ll_idx] + ".background.color=" + ls_color
// Change just one row - this syntax fails
//ls_cmd = ls_cmd + " " + &
// ls_column [ll_idx] + "[" + string (al_row) + "].background.mode=0" + &
// " "+ls_column [ll_idx] + "[" + string (al_row) + "].background.color=" + ls_color
NEXT
//Change the background color
ls_status = dw_1.Modify (ls_cmd)
Find Questions by Tag
Helpful?
If a reply or comment is helpful for you, please don’t hesitate to click the Helpful button. This action is further confirmation of their invaluable contribution to the Appeon Community.