双击Table控件,然后单击鼠标右键看看吧!

解决方案 »

  1.   

    意思是一个table,一个dbgrid,一个datasource,通过变换table1.tablename来让dbgrid显示不同的数据库内容。现在呢,有一个数据库,字段名很多,但不需要所有的都显示出来。只要一部份就够了,问题就在此,怎么只显示一部份,而且不影响其它数据库的显示。
      

  2.   

    可以在TTABLE控件中添加你欲显示的字段,然后编辑字段的属性(中文显示等),这样就可以了,如果需换字段,只要清掉,动态添加就行了!
      

  3.   

    table1的字段中有Displaytitle的属性直接改就行,马上反映到DBGrid中
      

  4.   

    其它的数据库都是全部显示字段名的,就这一个是部份显示。你说在TTABLE控件中添加你欲显示的字段是在哪呢?
      

  5.   

    顺便问一个问题,
    edit1.text := DBGrid1.DataSource.DataSet.Fields[0].asstring;
    这个字段是日期型的,想在edit.text中显示为yyyy-mm-dd应该怎么写?
      

  6.   

    清掉,动态添加又是如何办?我想在table.open之前把要显示的字段添到“双击Table控件”弹出的那个框(叫什么?)里,估计能解决问题。
      

  7.   

    用DateToStr函数将日期型变为字符串型显示;
    动态添加字段一定要先将表的ACTIVE属性设为TRUE,即:
    Table1.Open;
    然后再添加字段。
      

  8.   

    saxphone(萨克斯风) :那样子不是当其它数据库显示时,字段名都成这个部份显示的数据库的字段了吗?
      

  9.   

    edit1.text := FormatDateTime('yyyy-mm-dd',DBGrid1.DataSource.DataSet.Fields[0].AsDateTime);
    TField类中有个属性:Visible,设置某字段的该属性为False则在DBGrid中自动隐藏之。
      

  10.   

    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
     i:integer;begin
     with table1 do begin
      open;
      for i:=0 to FieldCount-1 do Fields[i].Visible:=false;
      if tablename='A' then begin
        for i:=0 to tableAFieldList.Count-1 do//tableAFieldList是一个TStringList,存放你想显示的表A的字段
         FieldByName(tableAFieldList[i]).Visible:=true;
      end;
      if tablename='B' then begin
        for i:=0 to TableBFieldList.Count-1 do//tableBFieldList是一个TStringList,存放你想显示的表B的字段
         FieldByName(tableBFieldList[i]).Visible:=true;
      end;
     end;
    end;
      

  11.   

    我想知道的就是在运行期动态如何修改。
    hzb(Explorer):有点不明白,你的代码是把所有字段都显示。那如何才是选择几个字段显示呢?是不是可以:
    begin
    with table1 do begin
      open;
    FieldByName(tableAFieldList[1]).Visible:=true;
    FieldByName(tableAFieldList[4]).Visible:=true;
    .....
       
      
     
      

  12.   

      for i:=0 to FieldCount-1 do Fields[i].Visible:=false;
    的意思是将所有字段隐藏,  for i:=0 to tableAFieldList.Count-1 do  
        FieldByName(tableAFieldList[i]).Visible:=true;
    的意思是将tableAFieldList中定义的字段显示出来,你应该在其他地方定义你想显示的字段:
       tableAFieldList.Add('..')
       tableAFieldList.Add('..'),这是一种方法,其实可以更简单:with table1 do begin
      open;
      for i:=0 to FieldCount-1 do Fields[i].Visible:=false;
      if tablename='A' then begin
        FieldByName('Field1').Visible:=true;
        FieldByName('Field2').Visible:=true;
        FieldByName('Field3').Visible:=true;
       ...
      end;
      if tablename='B' then begin
        FieldByName('Field1').Visible:=true;
        FieldByName('Field2').Visible:=true;
        FieldByName('Field3').Visible:=true;
        ...
      end;
    end
      

  13.   

    好象不大行啊,你的意思是不是要把所有的字段名(三个数据库里所有字段)先加到FieldList里,然后再选择部份显示啊?如果FieldList原来就空,会提示找不到字段。
      

  14.   

    其实是个动态显示字段名的问题,也可以用双击dbgrid出现的那东西来编辑的,不过要动态添加。