征集思路;把sql的表名传进去,通过勾勾点点就可以得到报表,(如根据表名得到字段,对字段选择,和限制字段的条等等)

解决方案 »

  1.   

    你可以用SQL去系统表里得到你需要的信息~~~~
      

  2.   

    支持2楼的
    去sys_objects里面,可以查到表的相关信息,其他的就看你的需要了
      

  3.   

    你想的可能是拼SQL语句吧,然后再传进去执行了,只要你的SQL拼的没问题就OK
      

  4.   

    就是动态列是吗?举个例吧单表的须要两个表来实现
    表1 基本信息表嘛   例20个字段
    表2 表1的字段数据   20条数据 每条数据 就是表1的每个字段的信息在表2中 增加一个字段 用来控制 该列的状态 1为显示 2为不显示他在勾勾选选的时候 就是修改表2中字段的状态 勾中了 状态改为1 没勾到的 状态为2在select * from 表2 where 状态='1'再for 刚查询来的数据的 来升成表1的查询SQL这样就能实现一个动态列的操作如果是多张表的话 也是同样的方法 但在生成SQL的时候 可以使用多数据集 的方法来合[这种方法比较简单也容易懂]这样把几个DS的数据 合在一起显示出来就OK了
      

  5.   

    单表的话就那样了,多表的时候可以考虑做成view,然后解决方法就和单表一样了可以用Adapter.FillSchema取到表结构,根据字段类型的不同,设置显示方式、格式化方式、空值时内容,对齐方式等等此外还有报表输出的检索条件也需要动态生成,这个需要单独的一张表来保存相关的信息
    根据字段类型的不同,可能需要定义检索的输入方式是textbox、combobox、checkbox等等
    combobox的时候还要考虑列表值是固定的1,2,3呢,还是根据某个条件从另外的code表中检索出来的恩,lz加油~~ ^_^
      

  6.   

    根本上都是动态生成sql,汇总列就是在拼sql的时候麻烦些而已
    当然,如果是表关联比较多的话,不推荐直接在sql中groupby,那样效率好低的
      

  7.   

    楼主你在考虑软件功能需求的时候:
       应该有所取舍,你可以设计一个查询管理分析器,以向导的方式让用户选择那些数据表名,选择表以后,给表之间建立关系(这里就是重点了,你不用考虑无限级的表关联,应该有范围和子表级数限制,不然效率低、而且也不一定是用户需要的,不要过分设计),关系建立好以后 ,剩下的就是拼装SQL了,然后保存该配置,做成报表。
      

  8.   

    DataTable dt = getdata("select * from " + table + " where 1<>1");
    foreach(DataColumn col in dt.Columns){
     //绑定吧
    }