在VB中使用水晶报表的一种简易编程方法
第一步:
在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进行报表开发的方法,简单易用,适合初学者。
0条评论