我现在在做一个科室医生管理系统,在做表结构设计的时候,对于"有无中医专家""有无西医专家"均设成bit类型(SQL),想以1表示有,0表示无.但是转到前台的显示时,直接连接显示是"1""0"的.有什么办法能在DBGRID里显示照我的想法显示成有无呢?请指教

解决方案 »

  1.   

    http://community.csdn.net/Expert/topic/5179/5179169.xml?temp=.4592401
      

  2.   

    在table(或query)的相应字段的OnGetText事件中这样写:if sender.Value=1 then Text:='有'
                      else Text:='无';
      

  3.   

    我用BDE连接数据库的,然后我在table中怎么没找到有OnGetText事件啊!!?
      

  4.   

    SQL查詢的時候直接CASE轉換不行麼?
      

  5.   

    我用BDE连接数据库的,然后我在table中怎么没找到有OnGetText事件啊!!?------------------------不是数据集的事件, 是Field的事件
      

  6.   

    procedure TForm1.TableLoachqz207GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    begin
      if Sender.Value = 1 then
        Text:='有中医'
      else
        Text:='无中医';  DisplayText := True
    end;
      

  7.   

    总结:1)在SQL select 的时候用Case
           2)Dbgrid的时候用OnDrewCell重写
      

  8.   

    老冯..不好意思,是新手,我想问下procedure TForm1.TableLoachqz207GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    这个句柄怎么得到?我还是不知道怎么寻找onGetText事件
      

  9.   

    我是新手,不好意思啦,楼主大哥
    不能发帖子就在这里说好了,请路过的大哥帮帮忙。
    问题是从 SQL 语句 SELECT 出来 的时候  是0.80185000,但是在fastreport中memo打印出来的时候是0.8018,请问怎么得到0.80185啊?后面的三位就不要了,小弟先谢谢了。