2012-04-24 135 views
-1

我在使用vb 6.0调用水晶报表8.5时遇到问题。我不知道如何使用VB调用该报告。这是一个例子的代码,我有写VB +水晶报表

Private Sub Command1_Click() 
    openConnection 

    If Me.cmbMonth = "" And Me.cmbYear = "" Then 
     MsgBox "Please select MONTH and YEAR" 
     Exit Sub 
     End If 

    Set rs = New ADODB.Recordset 
    With crp 
     .ReportFileName App.Path & "\Report\VariableReport.rpt" 
     .WindowTitle "Report" 

    End With 

End Sub 
+1

哇...... vb 6.0自从高中之后我还没有碰过... – Michael 2012-04-24 08:12:02

回答

0
Dim tbl As CRAXDDRT.DatabaseTable 
Dim cn As New ADODB.Connection 
Dim rs As New ADODB.Recordset 
Dim m_rpt As String 

m_rpt = rs("Path") + "AnalysisCodeList2.rpt" 

crystalrpt.reportfilename = m_rpt 
crystalrpt.connect = rs("RptConnect") 

crystalrpt.ParameterFields(0) = "PrintUser;" & m_curUser & ";true" 
crystalrpt.ParameterFields(1) = "AnalysisCategory;" & CStr(Nz(cboAnalysisCategory.Value, "")) & ";true" 

If Nz(cboAccountCodeTo.Value, "") <> "" And Nz(cboAccountCodeFm.Value, "") = "" Then 
    crystalrpt.ParameterFields(2) = "AnalysisCodeRangeStart;" & CStr(Nz(cboAccountCodeFm.ItemData(0), "")) & ";true" 
    crystalrpt.ParameterFields(3) = "AnalysisCodeRangeEnd;" & CStr(Nz(cboAccountCodeTo.Value, "")) & ";true" 
Else 
    crystalrpt.ParameterFields(2) = "AnalysisCodeRangeStart;" & CStr(Nz(cboAccountCodeFm.Value, "")) & ";true" 
    crystalrpt.ParameterFields(3) = "AnalysisCodeRangeEnd;" & CStr(Nz(cboAccountCodeTo.Value, "")) & ";true" 
End If 

crystalrpt.ParameterFields(4) = "AnalysisCodeFilter;" & CStr(Replace(Nz(txtAccountCodeFilter.Value, ""), "*", "~")) & ";true" 
crystalrpt.ParameterFields(5) = "MatchCase;" & CStr(Nz(txtMatchCase.Value, "")) & ";true" 
crystalrpt.ParameterFields(6) = "Description;" & CStr(Nz(txtDescription.Value, "")) & ";true" 

crystalrpt.Action = 1 
+0

感谢Martin,但是你能否给我一点关于这个编码的解释。 – user692495 2012-04-24 07:05:20

0

进口CrystalDecisions.CrystalReports.Engine 昏暗RPT作为新的ReportDocument rpt.Load(Application.StartupPath + “\报告\ VariableReport.rpt”) rpt.SetDataSource(rs)