Crystal Reports 設計的一點總結

来源:互联网 发布:2017淘宝小号无忧网 编辑:程序博客网 时间:2024/06/05 02:41
在之前的專案中,接觸過一點水晶報表(Crystal Reports),在此先做一部分總結 (用的是繁體系統).
一、Crystal Reports的功能
通过将Crystal Reports 的报表处理功能整和到自己的数据库应用程序中,Windows应用程序和Web开发人员可以节省开发时间来满足用户的需求。Crystal Reports 支持大多数流行的开发语言,可以方便的在任何应用程序中添加报表。
具体来说,Crystal Reports的功能有以下几点:
1、全面的数据库访问:
     Crystal Reports 中包括了超过35中数据源驱动,可以访问一种XML、企业和关系型数据库。
2、广泛的设计格式与设计:
     通过Crystal Reports,用户可以将数据库转换为高度交互性内容。可以从100多中格式选项中进行选择、包括参数、映射、交叉表和超级链接、用以强化报表的冲击力。
3、强大的图表设计功能:
     Crystal Reports 可以在报表中包含多彩的、易读的图表(提供了非常丰富的报表类型,如:条形图、折线图、面积图、饼图、甘特图、股票图等)。
4、灵活的应用集成技术:
     Crystal Reports 带有灵活的JavaCOM.NET SDK,以及可内嵌的Report Application Server,可将报表与企业Web应用紧密地集成在一起。通过使用Crystal Report ""客户端浏览器控制,能够为最终端拥护提供丰富的报表交互、创建和修改功能。
5、强大的报表导出:
     Crystal Reprorts 的所有的报表都可以导出多种不同的格式:包括PDFDoc、和Microsoft Excel等。
 
二、Crystal Reports需要的两层结构
界面:
界面仅需使用Winform窗体或者Web程序中使用浏览器。
后台:
1Crystal Reports Engine (CREngine.dll)
将数据与报表文件合并、将数据输出为不同的格式,将Crystal Reports转为传到.aspx页中的简洁明了的HTML.
2Crystal Reports Designer (CRDesigner.dll)
使用Crystal Reports Designer可以制作报表,可以设计标题、插入数据、公式、表格、次级报告等。
3.rpt 報表文件
将一份报表应用到你的应用程序中的第一步是使用Crystal Reports Designer 创建报表。但是如果已经有了一些现成的样本,你现在就可以用它。
4、數據源
.rpt文件获取数据的方式取决于你所选用的方法。你可以选择制作Crystal Reports以获取数据而无须手工写任何代码,也可以选择绑定你的dataset并将其传入报表文件。
5Crystal Report Viewer
Crystal Report Viewer是一个能够插入页中的控件。
 
三、Crystal Report 设计步驟
1、从工具箱中將CrystalReportViewer拖放到页面(.aspx)中
   
2、在專案中添加Crystal Report 文件(.rpt)
選擇文件類型     
        
根據要求選擇創建報表
 
     
選擇使用空白報表”,出現如下報表布局. 報表裡有報表首”,”頁首”,”細目”,”報表尾”,”頁尾這五個區域.
      
補充:如果對上面五個區段有增加需求的,可以通過選擇 區段專家”=>”插入
 
3Crystal Report的設計工具
一共三種: 文字物件, 方塊物件, 線條物件
                   
單擊工具箱裡的所需物件,再在.rpt裡單擊或摁左鍵拖拉一下,物件就到.rpt.這裡有很多調整的技巧,需要慢慢摸索.
4、建立數據源
     建立DataSet中的DataTable
PS:這裡DataTable的欄位名稱要和綁定資料的欄位名稱一致,不然數據不能正確顯示
     建立資料連結,欄位總管->資料庫欄位->資料庫專家->ADO.NET(XML)->選擇對應的DataSet
     
資料連結建立好後,如圖:
       
這樣再將欄位拖拉到.rpt.但是這裡不是真的數據綁定了,還需要如下.
 
5數據綁定
在CrystalReportViewer页面(.aspx)中,需要如下:
protected void Page_Load(object sender, EventArgs e)
{
         ReportDocument reportDocument 
= new ReportDocument();
        
string reportPath = Server.MapPath("CrystalReport.rpt");
        reportDocument.Load(reportPath);
        reportDocument.SetDataSource(GetDataSource()); 
//給數據源
        CrystalReportViewer1.ReportSource = reportDocument;
        
this.CrystalReportViewer1.DataBind();
}
如果需要對物件直接賦值:
文字物件:
TextObject txtUser = (TextObject)reportDocument.ReportDefinition.ReportObjects["txtUser"];
txtUser.Text 
= Fast.EB.SystemInfo.Current.User.Name;
線條物件:
 LineObject lineName = (LineObject)reportDocument.ReportDefinition.ReportObjects["lineName"];
            lineName.LineStyle 
= CrystalDecisions.Shared.LineStyle.NoLine;
以上是對Crystal Reports設計的一點點總結,希望能給初學者一點提示.工具的具體使用,還是需要自己的不斷嘗試,練習才行的.