Microsoft的ERP系统 AX,特别注重数据的响应效率,默认情况下,界面中的控件都以灰底黑字显示。若要求表格赋以颜色作特别警示,可以在该表格控件的DataSource的内置方法 displayOption 中写代码来实现。
一、要求某栏位以黄色为底,WoIssue_diffQty和WoIssue_Amount是两个要变黄底的栏的名称,该栏的AutoDeclaration=Yes。特别留意,同一行里只能赋予一种底色。
public void displayOption(Common _record, FormRowDisplayOption _options)
{
#define.Yellow(255,255,0)
;
_options.backColor(winAPI::RGB2int(#Yellow));
_options.affectedElementsByControl(WoIssue_Amount.id());
_options.affectedElementsByControl(WoIssue_diffQty.id());
super(_record, _options);
}
或者
public void displayOption(Common _record, FormRowDisplayOption _options)
{
_options.backColor(WinApi::RGB2int(255,255,0)); //黄色
_options.affectedElementsByControl(WoIssue_Amount.id());
_options.affectedElementsByControl(WoIssue_diffQty.id());
super(_record, _options);
}
二、要求符合条件的记录底色反黄。下面的例子是:SalesID以R字开头的记录行,底色反黄;否则底色反蓝。
public void displayOption(Common _record, FormRowDisplayOption _options)
{
int YellowColor = winAPI::RGB2int(255,255,200);
int BlueColor = winAPI::RGB2int(175,238,238);
;
if(_record.(fieldNum(EnqTable,SalesID)) like 'R*')
{
_options.backColor(YellowColor);
}
else
{
_options.backColor(BlueColor);
}
super(_record, _options);
}