七、创建主从报表
在报表中,有许多报表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种报表可利用其分组功能实现,
1.
新建一个工程
2.
往
FORM1
中添加一个
CrystalReportViewer
控件
3.
在服务�r资源管理器中连接到
SQL SERVER 2000
上的
Northwind
数据库
4.
添加一个数据集
Dataset1,
将服务器资源管理器中的
Orders
和
Order Details
加入到数据集中。
5.
添加一个水晶报表,使用报表专家,在项目数据中选择
“ADO.NET
数据集
”
,插入表
Orders
和
Order Details
,
“
链接
”
中是关联字段的链接,在
“
字段
”
中选择要显示的主表和明细表的字段,组中选择分组依据为
Orders
表
OrdersID
字段,总计,图表,选择
(
可进行筛选
)
,样式
(
可设置报表标题
)
,可自行设置。设置完后,点击完成。
6.
在报表设计器中调整需要显示的字段的位置、宽度等。
7.
在窗口中添加代码。
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim oRpt As New CrystalReport1()
Dim dsdataSet As New Dataset1()
Dim CN As New Data.SqlClient.SqlConnection("data source=PMSERVER;initial catalog=Northwind;user id=sa;password=sa")
CN.Open()
Dim daOrders As New Data.SqlClient.SqlDataAdapter("select * from orders", CN)
daOrders.Fill(dsdataSet, "orders")
Dim daDetails As New Data.SqlClient.SqlDataAdapter("select * from [Order Details]", CN)
daDetails.Fill(dsdataSet, "Order Details")
'
使用
“
报表引擎
”
对象模型将填充的数据集
,
传递给报表
oRpt.SetDataSource(dsdataSet)
CrystalReportViewer1.ReportSource = oRpt
End Sub
8
、运行程序
八、用程序改变报表中
text
的文本
代码如下:
Dim GetTextObject As TextObject
'
按名称获取
ReportObject
,将其转换为
TextObject
,并返回此对象。
GetTextObject = orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text = "XXXX
系统
"
总结:水晶报表具有非常强大的功能,还可进行导出
WORD
、
EXCEL
、
RTF
等文件,还可生成复杂、漂亮图表,是进行
WEB
和
WINDOWS
报表开发的利器。