Axapta 按日期比较更改行颜色

Axapta 按日期比较更改行颜色,axapta,x++,Axapta,X++,我需要一些人帮我写一份声明。带有日期的表格-DDataWydania+2年>当前日期。但我需要的行得到一个不同的颜色,如果2年过去了,因为插入日期 public void displayOption(Common _record, FormRowDisplayOption _options) { dbContacts _dbContacts;; _dbContacts = _record; if(_record.(fieldnum(db

我需要一些人帮我写一份声明。带有日期的表格-DDataWydania+2年>当前日期。但我需要的行得到一个不同的颜色,如果2年过去了,因为插入日期

public void displayOption(Common _record, FormRowDisplayOption _options)
    {
        dbContacts _dbContacts;;
        _dbContacts = _record;


        if(_record.(fieldnum(dbContacts,DDataWydania))  == systemDateGet())
          //  DDataWydania + 2 years > Currentdate
        {
            _options.backColor(WinAPI::RGB2int(127,255,0));
           // _options.colorOnSelectedRow(WinApi::RGB2int(64,128,128)); 
        }


       super(_record, _options);
    }
请尝试使用以下代码:

public void displayOption(Common _record, FormRowDisplayOption _options)

{

    int specificColor = WinApi::RGB2int(127,255,0);
    dbContacts _dbContacts;

    ;

    _dbContacts = _record.data();

    if(_dbContacts.DDataWydania != dateNull())
    {        
        if((today() - _dbContacts.DDataWydania) > (365 * 2)) //365 * 2 --> two years
        {             
            _options.backColor(specificColor );    
        }
    }
    super(_record, _options);

}

太好了,它很管用。所以这个(today()-dbContacts.DDataWydania)返回一个可以比较的“过去”天的整数?是的,可以比较。要查看该值,您可以创建一个int变量并保存结果(如果需要)。但是如果我在其中没有值怎么办?默认情况下,用户填写日期,所以在声明日期之前,它也会更改颜色。我需要把日期转换成字符串?或者有什么简单的方法可以使用DateNull()函数检查de值,我已经用它更新了答案。