经常见到有些软件里面可以自定义字段(客户可以自己增加字段,并设置字段的显示顺序),请问是如何实现的?如何与数据源进行绑定的,有实例者另开分

解决方案 »

  1.   

    字段是本来就有的,就是说,这个表本来就留有很多字段,只是给客户时,筛选出来了,而客户要加时,就加个visable就是说,有另外一个表,结构如,表名,字段名,别名,可视.. 等等.. 要用的时候就根据这个表,动态查询
      

  2.   

    查询前可以用sql语句的order by
    查询的结果集可以用adoquery.sort
      

  3.   

    var
      column: TColumn;
    begin
      column:= DBGrid1.Columns.Add;
      column.FieldName:='xx';//绑定字段名称
      column.Title.Caption:='xxx';//显示标题
    end;
      

  4.   

    自定义字段实现有很多方法
    如果是和数据库相连的话,就是在数据库建立多个字段(最笨的做法),数量有限,或者建立自定义字段编码表(竖向),数量可以不受限制
    如果是非数据库的,可以保存在ini文件,活xml文件中,具体的做法就要看你实际情况了
      

  5.   

    我的MIS框架是把dbgrid的field信息(字段名,是否显示,标题,显示宽度,列的顺序)写在ini里
    初次使用这个dbgrid,没有ini时,自动从服务端取得它的field信息如果dbgrid对应的sql或表的字段发生变化了,只要修改后台存储的field信息就行了,程序无须更新
      

  6.   

    这位说的有些类似,可以排除其他几位说的多预留一下字段的说法,因为我用过,确实可以实现增加字段(加了才有,不加就没有),可以控制其显示与否以及显示的顺序,在定义字段时还可以选择是否能空,如果空,保存时还有相应的提示。
    但的数据库里有一张表是专门存其他几个模块的表字段的,但具体实现方法我却不知道,比如动态创建的EDIT和LABEL,以及数据的绑定
      

  7.   

    也就是说 form上显示的字段是根据表里来的,而且排列什么的都非常漂亮
      

  8.   

    建一個表把 FieldName   與 DisplayLabel   做個對應就行了。
      

  9.   

    不知道是不是我没说清楚,哈哈。再说一遍!
    dbgrid是可以根据字段轻松显示,但是录入和修改不可能一直在GRID里进行,我的意思是有一个专门维护表的界面,比如:人事基本资料,通常我们都会写死有多少个字段,但如果哪天这些字段不够用了,再增加,只有重新编辑EXE和修改数据库,
    我是想实现直接在软件里面增加,修改和删除字段。form上的 edit什么都是根据数据库里的数量来,
      

  10.   

    分段显示,把你所说的字段放到表中,表结构似类于。表1 code     name   
                                                   1       字段1
                                                   2       字段2
                                                   3       字段3 ....好下面对数据进行存储时,建表     表2 z_code    value1   value2    value3
                                  
    z_code存储表1 code  其它内容就设计成类似的结构就OK了
      

  11.   

    这个我知道,我是说有了这个表,如何创建界面里的东西,如 edit,如何和数据源进行绑定。