在之前的專案中
,
接觸過一點水晶報表
(Crystal Reports),
在此先做一部分總結
(
用的是繁體系統
).
一、
Crystal Reports
的功能
通过将
Crystal Reports
的报表处理功能整和到自己的数据库应用程序中,
Windows
应用程序和
Web
开发人员可以节省开发时间来满足用户的需求。
Crystal Reports
支持大多数流行的开发语言,可以方便的在任何应用程序中添加报表。
具体来说,
Crystal Report
s
的功能有以下几点:
1
、全面的数据库访问:
Crystal Reports
中包括了超过
35
中数据源驱动,可以访问一种
XML
、企业和关系型数据库。
2
、广泛的设计格式与设计:
通过
Crystal Reports
,用户可以将数据库转换为高度交互性内容。可以从
100
多中格式选项中进行选择、包括参数、映射、交叉表和超级链接、用以强化报表的冲击力。
3
、强大的图表设计功能:
Crystal Reports
可以在报表中包含多彩的、易读的图表(提供了非常丰富的报表类型,如:条形图、折线图、面积图、饼图、甘特图、股票图等)。
4
、灵活的应用集成技术:
Crystal Reports
带有灵活的
Java
、
COM
和
.NET SDK
,以及可内嵌的
Report Application Server,
可将报表与企业
Web
应用紧密地集成在一起。通过使用
Crystal Report
的
"
零
"
客户端浏览器控制,能够为最终端拥护提供丰富的报表交互、创建和修改功能。
5
、强大的报表导出:
Crystal Reprorts
的所有的报表都可以导出多种不同的格式:包括
PDF
、
Doc
、和
Microsoft Excel
等。
二、
Crystal Reports
需要的两层结构
界面:
界面仅需使用
Winform
窗体或者
Web
程序中使用浏览器。
后台:
1
、
Crystal Reports Engine (CREngine.dll)
将数据与报表文件合并、将数据输出为不同的格式,将
Crystal Report
s
转为传到
.aspx
页中的简洁明了的
HTML.
2
、
Crystal Reports Designer (CRDesigner.dll)
使用
Crystal Reports Designer
可以制作报表,可以设计标题、插入数据、公式、表格、次级报告等。
3
、
.rpt
報表文件
将一份报表应用到你的应用程序中的第一步是使用
Crystal Reports Designer
创建报表。但是如果已经有了一些现成的样本,你现在就可以用它。
4
、數據源
.rpt
文件获取数据的方式取决于你所选用的方法。你可以选择制作
Crystal Reports
以获取数据而无须手工写任何代码,也可以选择绑定你的
dataset
并将其传入报表文件。
5
、
Crystal Report Viewer
Crystal Report Viewer
是一个能够插入页中的控件。
三、
Crystal Report
设计步驟
1
、从工具箱中將CrystalReportViewer拖放到页面(.aspx)中
2
、在專案中添加
Crystal Report
文件
(.rpt)
選擇文件類型
根據要求選擇創建報表
選擇
”
使用空白報表
”,
出現如下報表布局
.
報表裡有
”
報表首
”,”
頁首
”,”
細目
”,”
報表尾
”,”
頁尾
”
這五個區域
.
補充
:
如果對上面五個區段有增加需求的
,
可以通過選擇
“區段專家”=>”插入”
3
、
Crystal 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設計的一點點總結,希望能給初學者一點提示.工具的具體使用,還是需要自己的不斷嘗試,練習才行的.