读书人

Dbgrid 按条件 显示颜色(字段属日期时

发布时间: 2012-05-31 12:19:24 作者: rapoo

Dbgrid 按条件 显示颜色(字段属日期时间型的会出错)
如题。代码如下:
procedure TReport_info.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var tj: Boolean;
begin
{本模块:已打印的,显示黄色}
inherited;
with TMyCustomDBGrid(Sender) do
begin
tj:=DataLink.Fields[29].AsBoolean;
if tj then
Canvas.Brush.Color:=clYellow;
Canvas.Font.Color:=clBlack;
canvas.FillRect(rect);
canvas.TextOut(rect.Left+4,rect.Top+4,column.Field.AsString); // 当显示字段为日期时间型的会出错
end;
end;

非常感谢您的发言。

[解决办法]
procedure TReport_info.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var tj: Boolean;
begin
{本模块:已打印的,显示黄色}
inherited;
with TMyCustomDBGrid(Sender) do
begin
tj:=DataLink.Fields[29].AsBoolean;
if tj then
Canvas.Brush.Color:=clYellow;
Canvas.Font.Color:=clBlack;
canvas.FillRect(rect);
if Column.Field.DataType in [ftDate,ftDateTime] then
canvas.TextOut(rect.Left4,rect.Top+4,FormatDateTime('yyyy-mm-dd hh:nn:ss',column.Field.AsDateTime))
else
canvas.TextOut(rect.Left+4,rect.Top+4,column.Field.AsString); // 当显示字段为日期时间型的会出错
end;
end;

非常感谢您的发言。

读书人网 >.NET

热点推荐