例在数据库上是‘1’时在dbgrid上显示为“你好”,‘0’时为“下班”.我现在不能用DECODE 的方法,去了这种方法还有什么方法,最好是直接用delphi代码转换!

解决方案 »

  1.   

    计算字段不行吧,写TField的OnGetText事件就可以搞定,写一个过程:
    procedure TForm1.GetText(Sender:TField;var Text:String;DisplayText:Boolean);
    begin
      if Sender.AsString='0' then
        Text:='下班'
      else if Sender.AsString='1' then
        Text:='你好' 
      else
        Text:=Sender.AsString; 
    end;
    再遍历数据集的所有字段,找到你要那样作的字段后,把这个过程赋给这个字段的OnGetText
    var
      i:integer
    begin//可以写在FormShow事件中
     for i:=0 to Table1.Fields.Count-1 do
        if Table1.Fields[i].FieldName='OutPut' then
        begin
          Table1.Fields[i].OnGetText:=GetText;
          Break;
        end;   
    end;
    唉上了一年多的CSDN问的问题还是和刚来的时候一样的。
    给分吧!