VB中水晶报表使用讲解学习.docx
- 文档编号:7057280
- 上传时间:2023-01-16
- 格式:DOCX
- 页数:9
- 大小:20.10KB
VB中水晶报表使用讲解学习.docx
《VB中水晶报表使用讲解学习.docx》由会员分享,可在线阅读,更多相关《VB中水晶报表使用讲解学习.docx(9页珍藏版)》请在冰豆网上搜索。
VB中水晶报表使用讲解学习
VB中水晶报表使用
第一步:
在VB工程中Project菜单加入"AddCrystalReport9",报表名使用默认即可。
这时Form2(Crystal Rerport自动添加的Form,假设名为Form2)被自动分配了如下代码:
OptionExplicit
dimReportasNewCystal1
PrivateSubForm_Load()
Screen.MousePointer=vbHourglass'调用水晶报表时置鼠标为沙漏状
CRViewer91.ReportSource=Report'该语句的赋值将在后面被修改
CRViewer91.ViewReport
Screen.MousePointer=vbDefault'调用水晶报表完成后置鼠标为默认形状
EndSub
PrivateSubForm_Resize()
CRViewer91.Top=0
CRViewer91.Left=0
CRViewer91.Height=ScaleHeight
CRViewer91.Width=ScaleWidth
EndSub
第二步:
点击CrystalReport设计器的"数据库字段",选定"数据库专家...",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。
最后,在数据库字段中获得了相应字段,将其置于报表上,按水晶报表的要求配置。
第三步:
该步骤非常关键,添加一个Modual到工程文件中,定义全局的ADODB变量,实现数据库和水晶报表的动态连接。
代码如下:
PublicconnAsNewADODB.Connection
PublicrsAsNewADODB.Recordset
第四步:
关于VB程序的ADO数据库连接注意事项,请看下面的打印按钮例程。
PrivateSubCommand1_Click()
DimconnstrAsString
Ifconn.State=adStateOpenThenconn.Close
connstr="Provider=Microsoft.Jet.OLEDB.4.0;DataSource="&App.Path&"\prtest.mdb;PersistSecurityInfo=False"'prtest.mdb是程序当前目录的测试Access数据库
conn.ConnectionString=connstr
conn.Open
conn.CursorLocation=adUseClient
Ifrs.State=adStateOpenThenrs.Close
rs.Open"test",conn,adOpenKeyset,adLockReadOnly
'Report.Database.SetDataSourcers,3,1'此行取消
Form2.Show1'数据库连接完成后,调用Form2水晶报表工程
EndSub
需要提请大家注意的是,上面代码中的Report.Database.SetDataSourcers,3,1是初用水晶报表的程序员容易犯的错误,使用该语句后将造成数据库和水晶报表的连接失败。
如何动态调用水晶报表呢?
请看第五步。
第五步:
创建水晶报表和数据库数据源的连接,需要修改上面Form2的代码。
OptionExplicit
'dimReportasNewCystal1
'上面一行取消
PrivateSubForm_Load()
DimoAppAsNewCRAXDRT.Application
DimoRptAsCRAXDRT.Report
DimreportNameAsString
'上面三行是新增加的
Screen.MousePointer=vbHourglass
reportName="\rpt\Pr1.rpt" '定义要引用的rpt文件
SetoRpt=oApp.OpenReport(App.Path&reportName,1)
oRpt.Database.SetDataSourcers'连接水晶报表和数据源
oRpt.ReadRecords
CRViewer91.ReportSource=oRpt'启用水晶报表的预览功能
CRViewer91.ViewReport
Screen.MousePointer=vbDefault
EndSub
PrivateSubForm_Resize()
CRViewer91.Top=0
CRViewer91.Left=0
CRViewer91.Height=ScaleHeight
CRViewer91.Width=ScaleWidth
EndSub
PrivateSubForm_Unload(CancelAsInteger)
'SetReport=Nothing
Setrs=Nothing
Setconn=Nothing
UnloadForm2
EndSub
上面介绍了在VB中使用水晶报表进行报表开发的一种方法,该方法简单易用,适合初学者上手。
[结束]
VB.NET中使用水晶报表总结
水晶报表是一个优秀的报表开发工具,本人在开发通用管理系统的时候,所有报表都使用水晶报表,其简单、易用和强大的功能令笔者倍加喜爱,现将水晶报表使用手记呈现给大家。
一、在使用自带的水晶报表时,请注册,否则只能使用30次
二、使用CrystalReportViewer进行预览
CrystalReportViewer控件允许在应用程序中查看CrystalReport。
ReportSource属性用于设置要查看哪个报表。
该属性设置之后,报表显示在查看器中。
报表源可以是ReportDocument、报表文件的路径,也可以是强类型报表。
1.打开“工具箱”,并将一个CrystalReportViewer拖到窗体上,我们命名为rptVew。
2.通过拖放操作将Windows窗体查看器调整到希望的大小并将其移动到所需位置。
3.当运行应用程序时,报表将显示在查看器中。
三、创建新报表
1.指向“添加”,单击“添加新项”。
2.在“添加新项”对话框中,从“模板”区域选择CrystalReport,将报表命名为rptClient,单击“打开”。
3.在CrystalReport库中,选择下列选项之一:
·使用报表专家—指导您完成报表的创建过程,并将您的选择添加到CrystalReportDesigner。
·作为空白报表—打开CrystalReportDesigner。
·来自于现有的报表—创建新报表,它与指定的另一报表设计相同。
注意CrystalReport库包含许多专家,可以指导您完成数个特定类型报表的创建工作。
您可能希望使用专家来创建最初的报表,以确定哪种报表构造方法适合您的需要。
4.单击“确定”按钮。
如果选择使用“报表专家”,便会出现“报表专家”对话框,并带有数据资源管理器。
为每个文件夹选择所需数据,完成“报表专家”选项卡界面上的操作,然后单击“完成”来访问CrystalReportDesigner和您的报表
四、是否需要动态设置数据源?
CrystalReports通过数据库驱动程序与数据库连接。
每个驱动程序都被编写为可处理特定数据库类型或数据库访问技术。
拉和推模型
为了向开发人员提供最灵活的数据访问方法,CrystalReports数据库驱动程序被设计为可同时提供数据访问的拉模型和推模型。
拉模型
在拉模型中,驱动程序将连接到数据库并根据需要将数据“拉”进来。
使用这种模型时,与数据库的连接和为了获取数据而执行的SQL命令都同时由CrystalReports本身处理,不需要开发人员编写代码。
如果在运行时无须编写任何特殊代码,则使用拉模型。
推模型
相反,推模型需要开发人员编写代码以连接到数据库,执行SQL命令以创建与报表中的字段匹配的记录集或数据集,并且将该对象传递给报表。
该方法使您可以将连接共享置入应用程序中,并在CrystalReports收到数据之前先将数据筛选出来。
四、从ADO.NET数据集制作报表
从数据库创建数据集对象
1.在项目中新建一个架构文件:
a.在解决方案资源管理器中,右击项目名,指向“添加”,然后单击“添加新项”。
b.在“添加新项”对话框的“类别”区域,展开文件夹,然后选择“数据”。
c.在“模板”区域选择“数据集”。
d.接受默认名称DataSet1.xsd。
这就创建了一个新的架构文件(DataSet1.xsd),以后将用它来生成强类型数据集。
该架构文件将显示在ADO.NET数据集设计器中。
2.指定数据库位置:
a.在服务器资源管理器中,右击“数据连接”并选择“添加连接”。
b.在“数据链接属性”对话框中,单击“提供程序”选项卡,然后选择一个提供程序(例如MicrosoftOLEDBProviderforSQLServer)。
c.单击“连接”选项卡,然后指定您的数据库所在位置。
在所需位置输入服务器和登录信息。
d.单击“确定”按钮。
此时,您的数据库及其表和字段就出现在服务器资源管理器的“数据连接”节点下面。
3.在解决方案资源管理器中,双击DataSet1.xsd(如果它尚不是活动视图)。
DataSet1.xsd现在应显示在“数据集”选项卡中。
4.若要为数据集建立架构,请将需要的表从服务器资源管理器中拖动到DataSet1.xsd的“数据集”选项卡上。
5.单击“保存DataSet1.xsd”来保存“Dataset1.xsd”文件。
6.在“生成”菜单上,单击“生成”为项目生成数据集对象。
ADO.NET数据集对象提供数据的描述,从它可以向Crystalreport添加表。
使用CrystalReportDesigner中的“数据库专家”从ADO.NET数据集对象添加表。
请在使用“报表专家”创建新报表时调用“数据库专家”。
或者,要从一个已经使用ADO.NET建立好的报表中访问“数据库专家”,请在ReportDesigner中右击,指向“数据库”,然后单击“添加/删除数据库”。
将报表连接到ADO.NET数据集对象
1.在“数据库专家”中,展开“项目数据”文件夹。
2.展开“ADO.NET数据集”文件夹。
3.选择所需数据集对象。
例如,如果当时使用的是从项目“WindowsApplication1”的架构文件“DataSet1.xsd”中生成的数据集对象,则应该选择“WindowsApplication1.Dataset1”。
4.选择要向报表中添加的表,和使用其他数据源一样。
五、动态改变数据源的代码
DimdsDataSetAsNewDataSet()
DimoRptAsNewrptClient()'已建立的报表rptClient
请读者自行填充数据集dsDataSet
'使用“报表引擎”对象模型将填充的数据集,传递给报表
oRpt.SetDataSource(dsDataSet.Tables(0))
'将带有数据的报表对象绑定到Windows窗体查看器,rptVew(CrystalReportViewer控件)
rptVew.ReportSource=oRpt
注意FillDataSet方法可连接到指定的数据库,提取数据,然后断开数据库连接。
如果您希望将数据库中的多个表添加到报表中,请使用SQLJOIN语句将这些表联接在一起;然后在FillDataSet方法中指定一个结果表
六、创建主从报表
在报表中,有许多报表是主从表结构,比如订单与订单商品明细,订单是一个表中的一条记录,而分录是另一个表中的多条记录,两个表通过一个字段关联起来,这种报表可利用其分组功能实现,
1.新建一个工程
2.往FORM1中添加一个CrystalReportViewer控件
3.在服务噐资源管理器中连接到SQLSERVER2000上的Northwind数据库
4.添加一个数据集DataSet1,将服务器资源管理器中的Orders和OrderDetails加入到数据集中。
5.添加一个水晶报表,使用报表专家,在项目数据中选择“ADO.NET数据集”,插入表Orders和OrderDetails,“链接”中是关联字段的链接,在“字段”中选择要显示的主表和明细表的字段,组中选择分组依据为Orders表OrdersID字段,总计,图表,选择(可进行筛选),样式(可设置报表标题),可自行设置。
设置完后,点击完成。
6.在报表设计器中调整需要显示的字段的位置、宽度等。
7.在窗口中添加代码。
PrivateSubForm1_Load(ByValsenderAsSystem.Object,ByValeAsSystem.EventArgs)HandlesMyBase.Load
DimoRptAsNewCrystalReport1()
DimdsDataSetAsNewDataset1()
DimCNAsNewData.SqlClient.SqlConnection("datasource=PMSERVER;initialcatalog=Northwind;userid=sa;password=sa")
CN.Open()
DimdaOrdersAsNewData.SqlClient.SqlDataAdapter("select*fromorders",CN)
daOrders.Fill(dsDataSet,"orders")
DimdaDetailsAsNewData.SqlClient.SqlDataAdapter("select*from[OrderDetails]",CN)
daDetails.Fill(dsDataSet,"OrderDetails")
'使用“报表引擎”对象模型将填充的数据集,传递给报表
oRpt.SetDataSource(dsDataSet)
CrystalReportViewer1.ReportSource=oRpt
EndSub
8、运行程序
七、用程序改变报表中text的文本
代码如下:
DimGetTextObjectAsTextObject
'按名称获取ReportObject,将其转换为TextObject,并返回此对象。
GetTextObject=orpt.ReportDefinition.ReportObjects.Item("text13")
GetTextObject.Text="XXXX系统"
总结:
水晶报表具有非常强大的功能,还可进行导出WORD、EXCEL、RTF等文件,还可生成复杂、漂亮图表,是进行WEB和Windows报表开发的利器
使用5种不同的方法加载水晶报表(Windows窗体)2008年01月19日星期六下午04:
081、用作viewer.reportsource的5种类型的报表:
-使用Report名(通过文本路径)
-使用Report对象(通过文本路径)
-使用非类型的Report组件(通过文本路径和ReportDocumentreportdocument1)
-使用Report对象(通过已添加到项目的报表文件,如:
WorldSalesReport.rpt)
-使用强类型的Report组件()(通过ReportDocumentworld_Sales_Report1)
注:
Report组件即“工具箱”-〉“组件”-〉“ReportDocument”
2、代码简介:
-使用Report名(通过文本路径)
CrystalReportViewer1.ReportSource="C:
\Crystal\crnet\vbnet_win_simplepreviewreport\WorldSalesReport.rpt"
'--------------------------------------------------------------------
-使用Report对象(通过文本路径)
DimcrReportDocumentAsNewCrystalDecisions.CrystalReports.Engine.ReportDocument()
crReportDocument.Load("C:
\Crystal\crnet\vbnet_win_simplepreviewreport\WorldSalesReport.rpt")
CrystalReportViewer1.ReportSource=crReportDocument
'--------------------------------------------------------------------
-使用非类型的Report组件(通过文本路径和ReportDocumentreportdocument1)
Dimreportdocument1AsNewCrystalDecisions.CrystalReports.Engine.ReportDocument()
reportdocument1.Load("C:
\Crystal\crnet\vbnet_win_simplepreviewreport\WorldSalesReport.rpt")
CrystalReportViewer1.ReportSource=reportdocument1
'--------------------------------------------------------------------
-使用Report对象(通过已添加到项目的报表文件,如:
WorldSalesReport.rpt)字串7
CrystalReportViewer1.ReportSource=NewWorld_Sales_Report()
'--------------------------------------------------------------------
-使用强类型的Report组件()(通过ReportDocumentworld_Sales_Report1)
CrystalReportViewer1.ReportSource=world_Sales_Report1
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VB 水晶 报表 使用 讲解 学习