太子长琴和悭臾语录:水晶报表的问题!

来源:百度文库 编辑:高校问答 时间:2024/04/29 16:42:31
现在要用水晶报表做一个打印。打印的东西分为两页。第一页是统计汇总。第二页是每项的详细资料。具体项不能确定!能否实现!
如果能麻烦给说说。其他的方法也可以。不过做好是用c#实现!

对任何商用的应用程序而言,生成数据报表都是一项很重要的功能。一个系统中可能包含有很有用的数据,但如果没有一种很好的办法能向用户表示出来,这些数据也就没有什么意义了。

创建一个简单的数据报表
本节中将创建一个简单的数据报表,该报表使用数据环境设计器作为数据源。数据环境设计器使用和Visual Basic一起提供的NorthWind数据库创建一个简单的层次结构游标,该游标包含两个表:Customers和Orders,并使用“CustomerID”字段链接两个表。
所谓“数据环境”包括了程序中所有的数据库连接和查询,它用来将报表和某个数据源连接起来。要在数据环境设计器中创建一个简单的层次结构游标,可按照下列步骤执行:
1. 创建数据环境
创建数据环境的步骤为:
(1) 在“工程”菜单上,选择“更多ActiveX设计器”子菜单中的“Data Enviroment”,向工程中添加一个设计器。如果设计器没有在“工程”菜单上列出,则单击“部件”,并单击“设计器”选项卡,然后单击“数据环境”即可把设计器添加到菜单上。
(2) 在Connection1上单击鼠标右键,从弹出的浮动菜单中选择Properties菜单项。
(3) 在“数据链接属性”对话框上选择“Microsoft jet 3.51 OLE DB Provider”。这是为访问Jet数据库选择正确的OLE DB供应商,然后单击下一步按钮。
(4) 在“数据链接属性”对话框中键入或是从文件对话框中选择要与之建立联系的数据库文件名。Northwind数据库位于Visual Basic的安装目录中。
(5) 右键单击“Connection1”图标,把图标名改为“NorthWind”。
(6) 选中“DataEnvironment1”,按F4进入属性窗口,将名称改为“denvNWind”。
2. 生成用来从数据库中检索客户信息的查询
生成用来从数据库中检索客户信息的查询步骤为:
(1) 在“NorthWind”上单击鼠标右键,从弹出的菜单中选择“添加命令”菜单项,DataEnvironment将在数据环境中添加一个新的命令,在这个命令上单击鼠标右键,并从弹出的菜单中选择“属性”菜单项。
(2) 可以为命令设置很多属性,现在要设置的是“通用”页中的各个属性。如下图:
分别设置该命令的各项属性为:
名称:Customers;
连接:NorthWind;
数据库对象:表;
对象名称:Customers。
设置好各属性后,单击“确定”结束对话框。
(3) 右键单击“Customers”命令,并单击“添加子命令”,显示“Command2”对话框。在对话框中设置各项属性。名称:Orders; 连接:NorthWind;数据库对象:表;对象名称:Orders。
(4) 在“关联”选项卡中,选中“与父命令对象相关联”复选项,“父命令”框中选择“Customers”,“父字段”和“子字段/参数”框都选择“CustomerID”。
在设计关系数据库时,对于链接字段,习惯上相关的表要使用相同的名字。
(5) 单击“添加”按钮,向Command对象添加关系。在关闭了对话框之后,数据环境设计器通过把两个命令显示为一个层次结构来反映关系,该层次结构将被用于创建数据报表。然后单击“确定”按钮关闭对话框。
3. 创建数据报表
(1) 在“工程”菜单上单击“添加Data Report”,将添加一个数据报表到工程中。
(2) 设置DataReport对象的属性。Name, Caption, 在属性窗口上,选择“DataSource(数据源)”和“DataMember”.
(3) 右键单击数据报表设计器,并单击“检索结构”。
至此已经向设计器添加了一个新的分组,每一个分组都同数据环境中的Command对象有“一对一”对应关系。同时要注意分组标头有一个与之匹配的分组注脚部分。
要注意的是,如果某个Command对象有多于一个的子对象——相互“平行”的子对象Command1对象,则Data Environment可以创建该Command对象的层次结构。Data Report设计器却没有那么灵活,在同一时间不能显示多于一个的子对象,此时,当执行一个Retrieve Structure Command命令时,Data Report将只显示第一个子Command,其他的都不显示,所以应该避免创建带有“平行”子Command的Command层次结构。
(4) 在数据环境设计器中,把“Company Name”字段(在“Customers”命令下)拖到分组标头(Customer_Header)部分。分组标头部分可以包含Customers命令的任何字段。
(5) 如果不希望Label控件包括在TextBox控件中,可以在数据环境设计器的“选项。。。”对话框的“字段映射”选项卡上撤消对“Drag and Drop Fields Caption”选项的选择。
(6) 使用Show方法预览数据报表
Private Sub Command1_Click()
DataReport1.Show
End Sub
向数据报表添加计算字段
计算字段是一个在报表中生成时需要计算的字段,例如,在一个交税单中,必须把总价值与本地税率相乘得到税额,这里的税额就是一个计算字段?br />以交税单为例,将一个计算字段添加到数据报表中,可执照下列步骤进行:
(1) 在数据环境设计器中,建立命令“OrderDetail”,单击右键,在弹出的菜单中选择“属性”,显示“OrderDetail属性”对话框。
(2) 在“通用”选项卡上,单击“SQL语句”按钮,并把下列语句添加到框中:
Select OrderID, ProductID,UnitPrice, Quantity, (Quantity * UnitPrict) As Total From [Order Details]

SQL语句把Quantity值和UnitPrice值相乘以创建Total值,即计算字段。要注意表名(order Details)中包含一个空格,并且必须用括号括起来。
(3) 单击“确定”按钮,关闭对话框。
(4) 在数据环境设计器中,把Quantity、UnitPrice和Total字段(在OrderDetail命令下)拖到数据报表设计器的细节(Products_Detail)部分上。
(5) 删除两个Label控件,并把剩下的Label控件的Caption值更改为*。
(6) 在数据报表设计器中,单击“UnitPrice”文本框选中,在“属性”窗口中,双击“DataFormat”,显示“属性页”对话框。
(7) 在“格式类型”框中,单击“货币”,在“符号”组合框中,选择适合的国家/地区货币。