如 “评价”字段:数值为1,2或3
要在grid中显示为:好,一般或差 (如数据库数值为1,则显示为 好)如何实现

解决方案 »

  1.   

    可以在dbgrid.drawcolumncell事件中处理
    if dbgrid.datasource.dataset.fieldbyname('name').asstring='1' then 
        dbgrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, '好');
      

  2.   

    在上面的数据之前
     DBGRID.DefaultDrawColumnCell(Rect, DataCol, Column, State);
    if dbgrid.datasource.dataset.fieldbyname('name').asstring='1' then 
        dbgrid.Canvas.TextOut(Rect.Left + 2, Rect.Top + 2, '好');
    另外,还可以用固定字段方法
    在数据集,的评价字段的
      

  3.   

    用SQL语句实现
    select
      case Field1 when '1' then '好'
                  when '2' then '一般'
                  when '3' then '差'
                  else Field1
      end 
      as '评价'
    ……
    from yourTable其中Field1为你的'评价'字段名,yourTable为你的表名
    ……   这样效率高些
      

  4.   

    如果是DBGRID则可以:
    在对应的DbGrid1.Columns[0].pickList中写入

    一般

    即可。
      

  5.   

    在query对应的onGetText事件中处理
    begin
      if query1.fieldbyname('评价').asstring='1' then
      begin
        text:='好' 
      end;
      if query1.fieldbyname('评价').asstring='2' then
      begin
        text:='一般' 
      end;
      if query1.fieldbyname('评价').asstring='3' then
      begin
        text:='差' 
      end;
      

  6.   

    lwk_hlj(阿凯) 的方法在每个列中都出现了“好”字,并且评价列的‘1’还是显示在那里。
     sousouwjh的方法,我找不到onGetText事件
      

  7.   

    在query加上永久字段,該字段就有ongettext事件
      

  8.   

    用DBGridEh控件吧,方便,直接设就可以了,网上多的是下载:P
      

  9.   

    用SQL语句实现
    select
      case Field when '1' then '好'
                  when '2' then '一般'
                  when '3' then '差'
                  else Field
      end 
      as '评价'
    ……
    from Table其中Field为你的'评价'字段名,Table为你的表名
    ……
      

  10.   

    还没有用SQL方法试用吗?可以实现的。
      

  11.   

    用sql语句出错了,不知道是不是access数据库不支持