VB中水晶报表使用讲解学习.docx

上传人:b****6 文档编号:7057280 上传时间:2023-01-16 格式:DOCX 页数:9 大小:20.10KB
下载 相关 举报
VB中水晶报表使用讲解学习.docx_第1页
第1页 / 共9页
VB中水晶报表使用讲解学习.docx_第2页
第2页 / 共9页
VB中水晶报表使用讲解学习.docx_第3页
第3页 / 共9页
VB中水晶报表使用讲解学习.docx_第4页
第4页 / 共9页
VB中水晶报表使用讲解学习.docx_第5页
第5页 / 共9页
点击查看更多>>
下载资源
资源描述

VB中水晶报表使用讲解学习.docx

《VB中水晶报表使用讲解学习.docx》由会员分享,可在线阅读,更多相关《VB中水晶报表使用讲解学习.docx(9页珍藏版)》请在冰豆网上搜索。

VB中水晶报表使用讲解学习.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 畜牧兽医

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1