查询某工厂几个车间的当天生产情况出来的结果。
fDate fOrderQty     车间一      车间二      车间三...... 
 5-25   6000        50/6002     30/5900     80/4500
 5-28   7000        1000/6000   3500/7200   300/8500
...
现在就是要实现这样子的结果。
对每一行记录进行判断,如果某车间的总生产数量超过该fOrderQty的数量,就是该Cell的颜色变为红色。
也就是说如果就按上面记录的话,显示结果应该是
第一条记录中的  50/6002为红色,
第二条记录中的。3500/7200 、300/8500为红色。

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin  
      if  你的条件 then  DBGrid1.Canvas.Font.Color:=clRed;
     DBGrid1.Canvas.Font.Color:=clBlue;
      DBGrid1.DefaultDrawColumnCell(rect,DataCol,column,state);
    end;
      

  2.   

    去掉 DBGrid1.Canvas.Font.Color:=clBlue;这句话
      

  3.   

    在OnDrawColumnCell事件里写:
    .....
    DBGrdBrowse.Canvas.Font.Color:=clRed;
    .....
      

  4.   

    出来的结果是一整行,而不能是某个区域啊(Cell单元格)
      

  5.   

    if  (你的条件) and (Column.field.name=你的字段名) then  DBGrid1.Canvas.Font.Color:=clRed;
     DBGrid1.Canvas.Font.Color:=clBlue;
      DBGrid1.DefaultDrawColumnCell(rect,DataCol,column,state);
      

  6.   


    ten_years_ago(昨天上班,今天下岗) 都解决了,还提前干嘛
      

  7.   

    按上面,弄出来的,都有是一行的,不是某个Cell的