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