日期:2012-01-03  浏览次数:20469 次


描述:

  本文介绍另一种流行的一种VB程序打印水晶报表的方法.

 

环境: MS SQL SERVER 2000  /  VB6  /  CRYSTAL REPORT8.5

 

步骤

1: 建立ODBC连接

 

2: 创建一个为Crystal Report报表文件

 

3: 加载Microsoft ActiveX Data Objects Library 至项目的References 中

 

4. 创建VB 设计(Designer) , 通过open existing file的方式把Crystal Report报表文件加载进来.

   如果报表条件从画面输入需要写一些简单程序, 举例

Dim adoRs As ADODB.Recordset

Private Sub Report_Initialize()

 

SQL$ = "select *  from view_XXXX where XXXX "

‘根据画面,重新获得where条件’

 

Set adoRs = CreateObject("adodb.recordset")

adoRs.Open SQL$, "Provider=MSDASQL.1;Persist Security Info=False;Data Source=odbc_sales", adOpenKeyset, adLockBatchOptimistic

Database.SetDataSource adoRs

End Sub

 

Private Sub Report_Terminate()

    Set adoRs = Nothing

End Sub

 

5: 创建VB画面(Form) ,加入Crystal Report Viewer控件

   一些简单程序, 举例

Dim RptReportName As Rpt_ReportName ‘RptReportName is name of designer

   Private Sub Form_Load()

        CRViewer1.ReportSource = RptReportName

       CRViewer1.ViewReport

End Sub

 

总结:

   这个方法实现了VB程序对水晶报表的控制, 但是在可扩展性方面不如前一种有效,任何报表的格式改动,需要编译整个项目L