在VB中使用水晶报表的一种简易编程方法

在VB中使用水晶报表的一种简易编程方法,第1张

在VB中使用水晶报表的一种简易编程方法,第2张

第一步:
在VB项目的项目菜单中添加“添加水晶报表9”,默认可以使用报表名称。此时,Form2(由Crystal Rerport自动添加的表单,假设其名称为Form2)被自动分配以下代码:

option Explicit
dim Report as New cystal 1

私有子窗体_Load()

屏幕。mouseporter = vbhourglass '在调用crystal report时将鼠标设置为沙漏形状。

CRViewer91。“ReportSource = Report”稍后将修改此语句的赋值。

crviewer 91 . view report
screen . mouse porter = VB default '调用crystal report后,后面的鼠标是默认形状。

末端接头

私有子窗体_Resize()

CRViewer91。Top = 0
CRViewer91。Left = 0
CRViewer91。height = scale height
Cr viewer 91。宽度=缩放宽度

End Sub


第二步:
在Crystal Report Designer中单击“数据库字段”,选择“数据库专家...”,然后单击“创建新连接”,然后单击“仅字段定义”来创建一个“数据库定义”文件。字段名称和宽度与原始数据库表一致。最后,从数据库字段中获取相应的字段,放在报表上,并根据crystal报表的要求进行配置。

第三步:
这一步很关键。在项目文件中添加一个模块,定义全局ADODB变量,实现数据库与水晶报表的动态连接。代码如下:

作为新ADODB的公共连接。连接
Public rs作为新ADODB。记录集


第四步:
VB程序的ADO数据库连接请参考下面的打印按钮例程。

私有子命令1_Click()

Dim连接字符串

如果conn.State = adStateOpen,则conn . Close

connstr = " Provider = Microsoft。Jet . OLEDB.4.0数据源=" & App。路径& " \ pr test . MDB;persistsecurityinfo = false " ' pr test . MDB是程序当前目录的测试访问数据库

conn . connectionstring = connstr

conn . open

conn . cursor location = adUseClient

If RS。State = adStateOpen Then rs。关闭

rs。打开“test”,conn,adOpenKeyset,Adlockreadonly

' report . database . setdata sources,3,1 '这一行被取消

2.show1 '数据库连接完成后,调用Form2水晶报表项目


End Sub


需要注意的是,上面代码中的report.database.setdatasources,3,1是初学使用Crystal Report的程序员容易犯的错误,使用该语句后数据库与Crystal Report的连接会失败。如何动态调用水晶报表?请看第五步。

第五步:
要创建水晶报表与数据库数据源的连接,需要修改上面Form2的代码。

前一行中的选项explicit
' dim report as new cyst 1
'被取消。

私有子窗体_Load()

' dimo app as new crax DRT . application
dimo RPT as crax DRT . report
dim report name as string
'以上三行是新增加的。

屏幕。MousePointer =沙漏


reportName = "\rpt\Pr1.rpt " '定义要引用的rpt文件。

设置oRpt = oApp。OpenReport(App。路径&报告名称,1)

ORpt。Database.SetDataSource rs '将水晶报表与数据源
orpt.readrecords连接起来。

CRViewer91。' ReportSource = oRpt '启用水晶报表的预览功能。

CRViewer91。查看报告
屏幕。鼠标指针= vbDefault


结束Sub

私有子窗体_Resize()

CRViewer91。Top = 0
CRViewer91。Left = 0
CRViewer91。height = scale height
Cr viewer 91。宽度=缩放宽度

末端接头

private Sub Form _ Unload(Cancel As Integer)

' Set Report = Nothing

Set RS = Nothing


Unload Form 2

End Sub


以上介绍了一种在VB中使用crystal report进行报表开发的方法,简单易用,适合初学者。

位律师回复
DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
白度搜_经验知识百科全书 » 在VB中使用水晶报表的一种简易编程方法

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情