我有以下形式,我想换一列,基于其他列的值的背景色;
在橙列,而不是显示橙色背景,我想单元格颜色是红色,绿色和蓝色场的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();