可以TDATASET及TDATASOURCE两级控制

解决方案 »

  1.   

    写错了,
    可以TDATASET及Tdbgrid.columns两级控制
      

  2.   

    select 你要的字段不行吗?
    呵可
      

  3.   

    >>>DHL2001:
      可以TDATASET及Tdbgrid.columns两级控制
    .能详细介绍一下吗?我用了可没有用好~!
      

  4.   

    在显示的时候,对dbgrid做判断。如果不想显示的字段,可以用以下方法处理:
    for i:= 0 to dm1.Qry.fieldcount- 1 do
    begin
    if (FieldByName('sjx').asstring='xxx') then
      grid.Columns[i].Visible:=false;
    end;或者如果从query直接用sql取回数据的话,可以在select中不选择不想显示的字段
      

  5.   

    1.可以TDATASET及Tdbgrid.columns两级控制(如cobi(我是小新,我只有5岁)的做法)
    2.用Query select 你要的字段
      

  6.   

    不显示字段只要指定TField的visible为false就行了,也可以在DbGrid的columns里设置如果只是select要显示的字段,但我们一般设计数据库时都会有一些自己的系统字段,
    不让用户可见,但实际编辑时还是要往里填充值,如果是这种情况,还是必须要把所有表字段都要select过来关于数据方面应用,我建议使用动态绑定的方法,这样在修改表结构后也不用重新编辑TDataSet里的fields属性和重新编绎
    我的做法是建立一数据字典,把所有的表字段、中文显示label,visible属性等信息保存起来,等打开数据表时再动态生成TField,从这个字典里捉取内容去动态设置TField字段
    这样子就没必要一个个DataSet去辛苦地手工设置TField属性,对于大项目来说,能提高效率以上是个人看法,抛砖引玉,欢迎大家交流,
      

  7.   

    我的意思就是 txinfo(冰炎两重天) 说的 系统字段.
    字段级的权限是什么意思?
      

  8.   

    TO :txinfo(冰炎两重天) 
    你的动态绑定法请详细说说好吗?
      

  9.   

    直接用select 选的不行吗……
      

  10.   

    不行!因为:我们一般设计数据库时都会有一些自己的系统字段,
    不让用户可见,但实际编辑时还是要往里填充值,如果是这种情况,还是必须要把所有表字段都要select过来
      

  11.   

    动态绑定方法实际上许多公司都用这种方式,至少速达采取的也是这种办法
    简单一点说,就是先设计一个数据表,我们姑且称之为表字典,数据表里保存有数据库里其它所有表的表名、字段名、字段类型、size、显示标题,是否可视,是否readonly等信息
    在开发时只要指定SQL语句
     select * from tblname 或  select fld1,fld2,fld3... 时
    先从这个数据表里找到fld对应的记录,然后在TDataSet里对应生成
    TStringField,TFloatField....等字段,把如上信息赋到TField里
    再把TDataSet的active=true这样子修改了数据库后,只要相应修改表字典里的信息就行了,而且想让某些列对用户不可见,
    只要有一个工具来字义表字典里的visible属性就行了,比较灵活不过这样的话,所有表里所有字段名最好不要有相重,推荐表字段的命名规则为 表名+'_'+字段名,这样就不会有相重的字段名了
      

  12.   

    你是要在dbgrid控件中不显示某个字段吗?那可以在添加字段时不加就是了,也可以加上但visible为false.
      

  13.   

    使用dbgrid控件,在colmuns editor中设置即可