本人vs2003(C#)做野了一个80多列表的动态查询器(组合sql)出结果之后要求在在web页面打印出。现在有3个问题。
1:查询出来的列数动态,如何在报表中绑定?水晶报表中可以动态创建text,line,box,以及数据字段的对象吗?并且可以在程序中指定对象的值,位置,大小吗?
2:因为查询结果是用户自定义,所以列可能很多,页面必须有相应的排版?可以在程序中动态改变报表的页面格式(A3,A4,横向,纵向)吗?
3:如果数据量过大(例如,查询结果有10万行数据)有什么办法提高性能?我已经做好了一个存储过程处理数据量大的分页。但如果每次只给少量数据入报表,水晶报表自带的分页功能就失败了,而已打印也只能1页1页打。
各位高手有什么好的处理方法?谢谢

解决方案 »

  1.   

    我是用java的,所以不是很了解.net的开发,所以帮你顶一下
      

  2.   

    delbrueck(一切了然无趣):你可以告诉我你java中如何在程序中动态改变报表的页面格式(A3,A4,横向,纵向)的方法啊。
      

  3.   

    首先自己创建一个数据集(DataSet),你只需要DataSet这个数据集是动态读取就可以了。
      

  4.   

    a3,a4应该不可以用.net真幸福,用java麻烦死了,特别像我这样的菜鸟
      

  5.   

    fayewang(飞狐) :这个我知道,但我现在要求打印出来有一定的格式,之前我在页面画html,读出来的数据根式很乱的,根本不能在报表中正确反映。
      

  6.   

    chuxue1342(@楚}===天{==========雪饮>) :当然是打印查询出来的全部结果拉,结果长度是动态的,所以页面大小自然动态。怎么能事情设定好打印大小呢?
    xiaomaoxia(我的信誉怎么了,该结的都结了啊):如何用公式字段组?
      

  7.   

    顶啊,我知道如何程序设定改变报表的页面格式(A3,A4,横向,纵向)
    PaperOrientation.Portrait;
    PaperSize.PaperA4(有些页面不能,例如A3,估计默认的打印机没有A3);
    但动态列扔为有答案啊??
      

  8.   

    报表的格式定义我没有试过了,不过HTML就在CSDN里我发了一段有关 HTML打印定义格式的文档。你搜索一下!
      

  9.   

    http://community.csdn.net/Expert/topic/3824/3824178.xml?temp=.8736383------------这个是定义Excel格式的!
      

  10.   

    1、让列动态创建我没有做过,不过可以把所需的列数全部先创建出来,如果不用的话就用颜色、大小等属性不让它显示出来就是了。2:你是Web页面,打印最好的办法是导出到客户的终端机上,只须写一个导出代码就可以,到时可以用Office等软件来排版。(如果直接在IE浏览器上打印会有很多缺点)3:提高性能最快的方法好像就是让硬件的速度更快吧!
      

  11.   

    对于动态绑定:
    创建你的报表对象实例
    设置报表对象实例的.SetDataSource属性,一般是=DataSet的一个DataTable
    设置CrystalReportViewer对象的ReportSource=报表对象实例
    就可以了。