在VB中使用水晶报表的一种简易编程方法之二(转)


   第二步:

   点击Crystal Report设计器的"数据库字段",选定"数据库专家…",然后点"创建新连接",再点"仅字段定义",创建"数据库定义"文件,字段名和宽度和原数据库表保持一致。最后,在数据库字段中获得了相应字段,将其置于报表上,按水晶报表的要求配置。
   第三步:

   该步骤非常关键,添加一个Modual到工程文件中,定义全局的ADODB变量,实现数据库和水晶报表的动态连接。代码如下:

Public conn As New ADODB.Connection
Public rs As New ADODB.Recordset

   第四步:

   关于VB程序的ADO数据库连接注意事项,请看下面的打印按钮例程。

Private Sub Command1_Click()

  Dim connstr As String

  If conn.State = adStateOpen Then conn.Close

   connstr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "prtest.mdb;Persist Security Info=False" 'prtest.mdb是程序当前目录的测试Access数据库

   conn.ConnectionString = connstr
   conn.Open
   conn.CursorLocation = adUseClient

   If rs.State = adStateOpen Then rs.Close
    rs.Open "test", conn, adOpenKeyset, adLockReadOnly
    ' Report.Database.SetDataSource rs, 3, 1
    Form2.Show 1 '数据库连接完成后,调用Form2水晶报表工程
End Sub

   需要提请大家注意的是,上面代码中的Report.Database.SetDataSource rs, 3, 1是初用水晶报表的程序员容易犯的错误,使用该语句后将造成数据库和水晶报表的连接失败。如何动态调用水晶报表呢?请看第四步。

   第五步:

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

Option Explicit
'dim Report as New Cystal1
'上面一行取消

Private Sub Form_Load()

  Dim oApp As New CRAXDRT.Application
  Dim oRpt As CRAXDRT.Report
  Dim reportName As String
  '上面三行是新增加的

  Screen.MousePointer = vbHourglass
  reportName = " ptPr1.rpt"   '定义要引用的rpt文件

  Set oRpt = oApp.OpenReport(App.Path & reportName, 1)

  oRpt.Database.SetDataSource rs '连接水晶报表和数据源
  oRpt.ReadRecords

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

  CRViewer91.ViewReport
  Screen.MousePointer = vbDefault

End Sub

Private Sub Form_Resize()

  CRViewer91.Top = 0
  CRViewer91.Left = 0
  CRViewer91.Height = ScaleHeight
  CRViewer91.Width = ScaleWidth

End Sub

Private Sub Form_Unload(Cancel As Integer)

  'Set Report = Nothing

  Set rs = Nothing
  Set conn = Nothing
  Unload Form2
End Sub

   上面介绍了在VB中使用水晶报表进行报表开发的一种方法,该方法简单易用,适合初学者上手。大家熟悉以后,还可以继续学习Crystal Report提供的API函数(Lib库 Crpe32.dll)进行水晶报表开发,可以获得更大的灵活性[@more@]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8781179/viewspace-925249/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8781179/viewspace-925249/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值