var
I: Integer;
begin
if (ANode.Index mod 2) = 1 then
AColor := $EAEAEA; // 奇数行颜色
if ANode.HasChildren then // 如果是当前行,则默认系统的反白显示
begin
if (ASelected or AFocused) then
begin
//AColor := $0E0FFFF; // 分组颜色
for I := 0 to DataGrid.ColumnCount - 1 do
begin
//循环取列找到相应的项(由于列允许移动位置和分组,所以不能固定),并判断其值
if (DataGrid.Columns[I].FieldName = 'F_PLANDATE') then
begin
if DaysBetween(SysService.Time,TDataGridColumn(AColumn).ColumnDef.Field.DataSet.
FieldByName('F_PLANDATE').AsDateTime) <= 0 then
AFont.Color := Business.System.Graphics.clRed;
if (DaysBetween(SysService.Time,TDataGridColumn(AColumn).ColumnDef.Field.DataSet.
FieldByName('F_PLANDATE').AsDateTime) < 5) and
(DaysBetween(SysService.Time,TDataGridColumn(AColumn).ColumnDef.Field.DataSet.
FieldByName('F_PLANDATE').AsDateTime) > 0) then
AFont.Color := Business.System.Graphics.clYellow;
end;
exit;
end;
end;
end;
if not (ASelected or AFocused) then // 如果是当前行,则默认系统的反白显示
begin
if TDataGridColumn(AColumn).FieldName = 'F_PLANDATE' then
begin
if DaysBetween(SysService.Time,TDataGridColumn(AColumn).ColumnDef.Field.DataSet.
FieldByName('F_PLANDATE').AsDateTime) <= 0 then
AFont.Color := Business.System.Graphics.clRed;
if (DaysBetween(SysService.Time,TDataGridColumn(AColumn).ColumnDef.Field.DataSet.
FieldByName('F_PLANDATE').AsDateTime) < 5) and
(DaysBetween(SysService.Time,TDataGridColumn(AColumn).ColumnDef.Field.DataSet.
FieldByName('F_PLANDATE').AsDateTime) > 0) then
AFont.Color := Business.System.Graphics.clYellow;
end;
end;
没有效果,还是有问题,请问我哪里写的有毛病 |