水晶报表数据的绑定

设计水晶报表

    在.Net中,微软提供了一种优秀的报表工具,水晶报表。水晶报表提供一种可视化的报表设计工具,将设计和运行有效地分离开,使数据报表的输出更加容易。

先看看报表设计,vs2005提供了向导式的水晶报表开发工具,首先设计时需要指定报告数据来源,水晶报表允许使用.Net强类型数据集或者是实体对象作为数据源

水晶报表数据的绑定_第1张图片

     (按1:令我十分懊恼得是,作为设计时需要使用的数据源需要和报表本身在同一个程序集内才行,而一般地,报表个人习惯往往放在界面层,而强类型数据集或者是实体对象都放在业务实体层....,不明白有没有其他的方法可以解决这个“鸡肋”,否则就只能把报表放到实体层去了)

按照向导一步步地完成报表之后,我们就可以在项目中使用刚才完成的报表了    (按2:如果使用实体对象作为数据源的话,实体的外键对象是无法在水晶报表中添加显示的,有高人知道的话,请指点我)

浏览水晶报表

    .Net提供了一个浏览报表的控件CrystalReportViewer用于预览水晶报表,winformwebform下使用的控件分别在命名空间CrystalDecisions.Windows.FormsCrystalDecisions.Web下,用法基本一致。

CrystalReportViewer的公开属性

名称

说明

DisplayGroupTree

获取或设置树视图是否隐藏。

DisplayStatusBar

获取或设置状态栏是否隐藏。

DisplayToolBar

获取或设置工具栏是否隐藏。

ReportSource

获取或设置察看器的报表来源

SelectionFormula

获取或设置察看器的记录选择公式

 

CrystalReportViewer的公开方法

名称

说明

RefreshReport()

马上刷新控件中显示的报表

 

 

    为了将报表在察看器中显示我们刚才创建的报表,假定报表名为 MyCrystal.rpt ,我们需要将该报表设置数据后绑定到报表察看器的报表源上。报表源 ReportSource属性 接受一个 ReportDocument 对象作为报表源,我们刚才创建的 MyCrystal 实际上也是继承至 ReportDocument 类的一个子类。

     MyCrystal r = new MyCrystalReport(); r.SetDataSource(StudentBusiness.GetAllStudents()); this.crystalReportViewer1.ReportSource = r;

    这样察看的rpt文件需要是在程序集编译期能够访问的到的。有些时候,我们也需要在之后动态地加载rpt文件以显示

//winform下使用 ReportDocument r = new ReportDocument(); r.Load("MyCrystal.rpt"); r.SetDataSource(StudentBusiness.GetAllStudents()); this.crystalReportViewer1.ReportSource = r;

webform下的使用有些稍稍不同

//webform下的使用 ReportDocument r = new ReportDocument(); r.FileName = "MyCrystal.rpt"; r.Load(); r.SetDataSource(StudentBusiness.GetAllStudents()); this.crystalReportViewer1.ReportSource = r;

 

你可能感兴趣的:(.net入门)