我有以下表格,我想根据其他列的值更改列的背景颜色;
在橙色列中,我希望单元格颜色不是显示橙色背景,而是颜色属性部分下的红色、绿色和蓝色字段的 RGB 组合。
我有以下表格,我想根据其他列的值更改列的背景颜色;
在橙色列中,我希望单元格颜色不是显示橙色背景,而是颜色属性部分下的红色、绿色和蓝色字段的 RGB 组合。
假设您需要更改其背景的控件名为 FirstFieldControl。将其AutoDeclaration
属性设置为Yes
和。BackgroundColor
Window background
现在您需要覆盖displayOption
数据源上的方法,例如:
public void displayOption(Common _record, FormRowDisplayOption _options)
{
YourTable yourTable = _record;
int color;
;
switch (yourTable.Name)
{
case 'Red' :
color = WINAPI::rgbCon2int([255, 0, 0]);
break;
case 'Green' :
color = WINAPI::rgbCon2int([0, 255, 0]);
break;
case 'Blue' :
color = WINAPI::rgbCon2int([0, 0, 255]);
break;
}
if (color)
{
_options.backColor(color);
_options.affectedElementsByControl(FirstFieldControl.id());
}
else
{
super(_record, _options);
}
}
这只是一个给你一个想法的例子——不要复制粘贴:)
将颜色值存储在表格中更容易,代码会更好。
PS如果您在运行时更改颜色,您可能需要使用以下代码来刷新记录:
yourTable_ds.clearDisplayOption(yourTable);
yourTable_ds.refresh();