水晶报表的推模式

在一个多层结构中,水晶报表的使用往往比较繁琐:
    1、在项目中添加数据集,形成xsd文件
    2、利用xsd文件,在水晶报表环境中生成报表
    3、回到.net,添加rpt文件
这样做的坏处除了繁琐,就是在UI层直接要访问数据库,将使得层次结构晚节难保。其实利用水晶报表的推模式,将很灵活的实现报表。思路是:事先建立报表的架子,运行时为报表指定数据。具体实现:
    1、在水晶报表环境中,建立新数据连结,怎么方便怎么来,建议用oledb,快。
    2、然后创建报表
    3、回到.net环境中,添加rpt文件。
    4、运行时为某个事件(往往是查询事件)编写处理函数,创建rpt类的实例,并设置其数据源为查询结果的数据集。将该实例赋给报表控件。
    5、重新绑定即可。
    6、注意:似乎水晶报表控件没有Viewstate,Postback后很难保持状态,必须在page_load中判断postback状态,进行数据赋值操作。
原文地址:https://www.cnblogs.com/jetz/p/174659.html