DBGrid中显示的是用query找到的数据,其中有一列是字符形的,再不用其他表的情况下怎样把它转换成对应的中文?

解决方案 »

  1.   

    不明白你的意思:是你Query所选择的表有一个字段名为英文还是该字段下的记录为英文?如果是字段名为英文,要改为中文,很简单:双击DBgrid,在弹出的窗体中添加表中的所有字段,然后选中你需要改的字段,在Inspector中将Title的Caption改为你想要的中文即可。
      

  2.   

    纪录是英文的,想把他在dbgrid显示的时候变成相应的中文
      

  3.   

    dbgrid1.Columns[i].Title.Caption:='某某字段';//其中i为你需要改的字段的序号。这样也可以。
      

  4.   

    在query的字段编辑器中设置字段的displaylabel值
      

  5.   

    法1。定义一个表做为和英文相对应的中文信息。
    法2。如果就只有固定的几个中英文可以在gettext事件中写代码。
      

  6.   

    楼上的就是你所说的法2:gettext具体怎么用啊,谢谢了
      

  7.   

    如果对应的中文与字段内容的对应关系已经确定比如可以构造出这么一个函数
      function EToC(E:String):String;
      const
         CHS:array[0..3,0..1] of String=(('girl','女孩'),
                                         ('boy','男孩'),
                                         ('cat','猫'),
                                         ('dog','狗'));
      var
        i:Integer;
      begin
        Result:='';
        for i:=0 to 3 do
        begin
          if CHS[i,0]=E then Break;
        end;
        if i<=3 then Result:=CHS[i,1];
      end;
    那么在对应字段的GetText事件中这样引用即可:Text:=EToC(Sender.AsString);
      

  8.   

    双击你的ADOQUERY。然后选择你要改变的字段,在他的ONGETTEXT事件中写代码
     IF TEXT=‘MORNING’THEN 
       BEGIN
         TEXT:=‘早上’;
       END;
     IF TEXT=‘AFTERNOON’THEN 
       BEGIN
         TEXT:='下午';
       END;
      

  9.   

    不好意思,错了!
        if Trim(Sender.Value) = 'MORNING' then
        begin
          Text := '早班';
        end;
        if Trim(Sender.Value) = 'AFTERNOON' then
        begin
          Text := '中班';
        end;
      

  10.   

    if Trim(Sender.Value) = 'MORNING' then
        begin
          Text := '早班';
        end;
        if Trim(Sender.Value) = 'AFTERNOON' then
        begin
          Text := '中班';
        end;
      

  11.   

    加问一句,如果adoquery是动态选择的字段,怎么办呢?
      

  12.   

    在查询时:
    select display= case when ='morning' then '早上' 
                         when ='afternoon' then '中午' end
    from table where ...
      

  13.   

    这个是针对sqlserver的,如果是oracle用decode