设计数据库时,为了统计和计算的方便,把字段全部用字母表示。但是在DBGrid中的表头也就是字段所用的字母。请问如何将表头汉化,谢谢!

解决方案 »

  1.   

    有两种设置的方法。
    (1)假设我们采用的是TTable控件,那么用鼠标右键点击它,在弹出菜单上选择Fields Editor...菜单项,加入所有的字段,然后在编辑对话框中选中某个字段,并且Object Inspect窗口了修改DisplayLabel属性为中文字段名就可以了。
    (2)右键点击TDBGrid,然后选择Columns Editor...菜单项,加入必要数量的Column,然后使用属性编辑器,为每一个Column的FieldName属性选择相应的字段,同时修改Title.Caption为中文字段名就可以了。
      

  2.   

    如果你的数据库够大,表和字段够多,以上放发就有点麻烦了。
    这样不如在数据库中键一表fildlist(字段列表),其中一列记录英文一列记录中文。
    然后做一个转换函数,用时一替换就ok了。
      

  3.   

    函数:
    procedure etoc (dataset: Tdataset; Query: TQuery);
    var
    i:integer;
    ii:integer;
    mystr:string;
    begin
    mystr:= #39+dataset.Fields[0].DisplayLabel+#39 ;
    for i:=1 to dataset.FieldCount-1 do
    begin
    mystr:=mystr+','+#39+dataset.Fields[i].DisplayLabel+#39;
    end;
    query.Close;
    query.SQL.Clear;
    query.SQL.Add('select fdname,chnname from fldlist');
    query.SQL.Add('where fdname in ('+mystr+')');
    query.Prepare;
    query.Open;
    for i:=0 to dataset.FieldCount-1 do begin
      ii:=0;
      query.First;
      while ii < query.RecordCount do begin
        ii:=ii+1;
        if dataset.Fields[i].DisplayLabel=query.Fields[0].AsString then begin
        dataset.Fields[i].DisplayLabel:=query.Fields[1].AsString ;
        ii := query.RecordCount ;
        end else begin
        query.Next;
        end;
      end;
    end;
    end;
      

  4.   

    TommyTong(童童--百姓爱这个国呀,谁来爱百姓呀?) 所说为常用方法。
      

  5.   

    建议全部在TQuery里的displaylabel里做汉化,这样修改DBGRID或其它方面都不会受影响 。