现有这样的一个表格:
序号 姓名 性别   职务      工作经历 毕业院校
1     王    男   项目经理   3    某学校毕业
2    张    男   项目经理   4    某学校毕业
3   李    男   技术员    2    某学校毕业
4   赵    女   技术员    1    某学校毕业如何使两行项目经理和两行技术员显示不同的颜色呢?

解决方案 »

  1.   

    procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
    DataCol: Integer; Column: TColumn; State: TGridDrawState);
    begin
    if Column.Grid.Fields[3].AsString = '项目经理' then
    Begin
    DBGrid1.Canvas.Font.Color := clRed;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end else
    Begin
    DBGrid1.Canvas.Font.Color := clblack;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end;
    end;
      

  2.   

    理解你的意思,这样你就需要有一个标志字段来确定这条记录是否重复。把你的sql语句写出来,我帮你写一下.
      

  3.   

    这是一个用存储过程得到的结果集,这样:
    select count(distinct sfzh) as AmountSfzh from /*身份证号重复人员的净个数*/
    (select xm,xb,sfzh,gzdw,'项目经理表' as ssbg  from xmjlb
    union all
    select xm,xb,sfzh,gzdw,'监理人员表' from jl_rydab
    union all
    select xm,xb,sfzhm,gzdw,'施工企业有职称人员表' from Qyyzcryb
    ) as d 
    where sfzh in 
    (select sfzh from (select sfzh from xmjlb
                 union all
                 select sfzh from jl_rydab
                 union all
                 select sfzhm from Qyyzcryb
                   ) as c 
    group by sfzh having count(sfzh)>1 )
      

  4.   

    哎哟,贴错了,这个是统计的,把"distinct sfzh"换成"*"就行了。
      

  5.   

    select xm,xb,sfzh,gzdw,'项目经理表'这里再定义一个别名。用于计数器。
    在前台就判断这条记录的这个计数器是否>2如果是就输出不同颜色来.
      

  6.   

    把count(distinct sfzh)换成"*"就是列出所有重复的身份证号,我想把重复的身份证号用不同的颜色显示出来。最好是隔行显示,就是假如有两个重复,这两行的下面有三行,那么这三行与这两行不同,而下面重复的又和这两行颜色相同。
      

  7.   

    ,你的那段存储过程,应该有个标记这两条是否有重复。3,4 重复,那么在3的 as 计数器>2,4这条记录的计数器>2
      

  8.   

    select 计数器=(select count(xm) as xm From xmjlb group by xm),xm,xb,sfzh From xmjlb
      

  9.   

    select 计数器=(select count(xm) as xm From xmjlb where sfjh=xmjlb.sfjh group by xm),xm,xb,sfzh From xmjlb
      

  10.   

    if Column.Grid.Fields[8].Asinteger>2 then //8是你的计数器字段的列
    Begin
    DBGrid1.Canvas.Font.Color := clRed;
    DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    end else
    begin
    .....
    end;