我用datasource + ADOConnection + dbgrid ,
表中某字段的值为1,2,3。但dbgrid中显示要将1,2,3变成对应的中文,不想写很长的select语句,有办法吗?

解决方案 »

  1.   

    写漏了,是 datasource + ADOConnection + dbgrid + ADODataSet
      

  2.   

    ADODataSet(dst)
    dst.active :=false;
    dst.commandtext:=' select  * ,iif(state=1,"录入未完成",iif(state=2,"录入完成",iif(state=3,"校对通过",iif(state=4,"校对未通过",iif(state=5,"审核通过","审核未通过"))))) as stat from tablename';
    dst.active :=true;显示的对应结果将是,1--》录入未完成,2--》录入完成,3--》校对通过,4--》校对未通过,5--》审核通过,6--》审核未通过。
      

  3.   

    IIf(state=1, "s1", "s2")
    state=1成立则返回s1,不成立则返回s2.
      

  4.   

    设计期间,在adodataset上点击右键,在弹出的窗口中点击右键,然后选择add all fields菜单,加入字段后,点击你那个字段,在onGetText事件中写代码:
    case Sender.asinteger of
      1:  Text:='...';
      2:  Text:='...';
      3:  Text:='...';
    end;
    displayText:=true;
    更详细的信息看delphi帮助
      

  5.   

    试了一下,原来之前是因为连接active,所以找不到onGetText事件,现在找到了,谢了!;)