在TQuery+TDataSource+TDBGrid中,我用表的一字段fkfs,值'01','02','03'
分别表示现金,转帐,欠帐,在我想在执行SQL查询后在DBGrid中分别显示现金,
转帐,欠帐,怎办?谢

解决方案 »

  1.   

    将dbgrid的columns的title的caption修改
      

  2.   

    case fkfs when 01 then 现金
              when 02 then 转帐
              when 03 then 欠帐
    else
    end;把这个嵌到你的SQL语句中,就可以拉
      

  3.   

    方法有两种,1、在数据查询时处理           2、显示时处理.在DBGrid1DrawColumnCell
      if uppercase(column.Field.FieldName) ='FKFS' then
      begin
        dbgrid1.Canvas.FillRect(rect);
        IF  COLUMN.FIELD.ASSTRING='01' THEN 
            dbgrid1.Canvas.TextOut(rect.Left + 3, rect.Top + 2, '现金')
        else
           if .....
            ....
      end;
      

  4.   

    第一种方法:在此字段的  onGetText 事件中加入代码if  dataset.fieldbyname('FKFS').asstring = '01' then
        text := '现金';if  dataset.fieldbyname('FKFS').asstring = '02' then
        text := '转帐';if  dataset.fieldbyname('FKFS').asstring = '03' then
        text := '欠帐';if  dataset.fieldbyname('FKFS').asstring = '' then
        text := '';
    第二种方法:
    添加一个计算字段,例如第一字段名为 field1 ,在TQuery的onCalcFields事件中加入代码if  query1.fieldbyname('FKFS').asstring = '01' then
        query1.fieldbyname('field1').asstring := '现金';if  query1.fieldbyname('FKFS').asstring = '02' then
        query1.fieldbyname('field1').asstring := '转帐';if  query1.fieldbyname('FKFS').asstring = '03' then
        query1.fieldbyname('field1').asstring := '欠帐';if  dataset.fieldbyname('FKFS').asstring = '' then
        query1.fieldbyname('field1').asstring := '';