字段b_gd在数据库中的类型是bit,b_gd为True时表示'固定',为False表示'非固定',
请问如何在DBGrid中使该字段显示为'固定'或'非固定',而不是'True'和'False'呢?
在线等~~,立即给分.

解决方案 »

  1.   

    双击DBGrid,增加对应的Columns,在b_gd的Columns设置PickList增加串‘固定’‘非固定’即可。
      

  2.   

    To: gzmhero(hihihi) 
    还有没有其它设置,刚改了,还是不行!
      

  3.   

    如果是SQL Server可以用Case语句创建一个视图,DBGrid从视图中取数据SELECT  
          CASE b_gd WHEN 1 THEN '固定' WHEN 0 THEN '非固定' END AS 性别
    FROM TABLE1
      

  4.   

    如果是SQL Server可以用Case语句创建一个视图,DBGrid从视图中取数据SELECT  
          CASE b_gd WHEN 1 THEN '固定' WHEN 0 THEN '非固定' END AS 你的显示列名
    FROM TABLE1如果非SQL Server可以Case语句的语法有所不同
      

  5.   

    或者这样,你增加一个计算字段
    Query双击,右键,New Field,Field type为Calculaged,然后在这个Field的OnGetText事件里写代码:
    procedure TForm1.Query2bgdGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
        if Query2.FieldByName('b_gd').AsBoolean=false then
            Text:='固定'
        else
            Text:='非固定';
    end;
      

  6.   

    或者这样,你增加一个计算字段
    Query双击,右键,New Field,设置Field type为Calculaged,然后在这个Field的OnGetText事件里写代码:假设增加的Field的name为bgdprocedure TForm1.Query2bgdGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
        if Query2.FieldByName('b_gd').AsBoolean=false then
            Text:='固定'
        else
            Text:='非固定';
    end;
      

  7.   

    To: gzmhero(hihihi) 
    我按照你的方法试了,但提示错误:
    EDatabaseError with message 'Query2:Field' b_gd 'not found'.
      

  8.   

    你的Query2里面有b_gd字段吗?先Query双击,右键,Add All Fields。然后再增加计算字段。
      

  9.   

    procedure TdfrmCU_Orderm.DBGrid2DrawColumnCell(Sender: TObject;
      const Rect: TRect; DataCol: Integer; Column: TColumn;
      State: TGridDrawState);
    begin
    IF column.FieldName='IsConfirm' then         //确认
      begin
        IF column.Field.AsBoolean = true then
           begin
             DBGrid2.Canvas.Font.Color:=clBlue;
      DBGrid2.Canvas.Font.Height:=12;
         DBGrid2.Canvas.Font.Style:=[fsBold];
      DBGrid2.Canvas.TextRect(Rect,Rect.left+1,Rect.top+1,'确认');
           end
         Else
           begin
             DBGrid2.Canvas.Font.Color:=clred;
      DBGrid2.Canvas.Font.Height:=12;
         DBGrid2.Canvas.Font.Style:=[fsBold];
      DBGrid2.Canvas.TextRect(Rect,Rect.left+1,Rect.top+1,'取消');
           end;
      end;
    end;