AX表格控件Grid的颜色

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);
}

发表评论