Here's my code:
Private Function GenerateReport(lstrAcctName As String, lstrClientName As String, lstrQuarterSavePath As String, lstrCounselorName As String, lstrFeeStmtIndicator As String, lstrQuarter As String) As Boolean
Const PROC = "GenerateReport"
Dim lstrCrystalReport As String
Dim lRegInfo As AMTS_AQR_DSL.cRuntimeContext
Dim lngErrNum As Long
Dim strErrSrc As String
Dim strErrDsc As String
Dim i As Integer
Dim X As Integer
On Error GoTo ErrorMsg
Set m_objLog = New AQRBatchReporting.cLog
Set mCrystalApplication = CreateObject("CrystalRuntime.Application"
Set lRegInfo = New AMTS_AQR_DSL.cRuntimeContext
lstrCrystalReport = lRegInfo.ReportTemplateSource
'open the report and populate with data
Set mrptCrystalReport = mCrystalApplication.OpenReport(lstrCrystalReport) ', crOpenReportByTempCopy)
If mrptCrystalReport.HasSavedData = True Then
mrptCrystalReport.DiscardSavedData
End If
Set mCrystalDB = mrptCrystalReport.Database
Set mCrystalTables = mCrystalDB.Tables
Set mCrystalTable = mCrystalTables.Item(1)
mCrystalTable.SetDataSource g_rstGetLabelData, 3
'new stuff
Set mrptSections = mrptCrystalReport.Sections
For i = 1 To mrptSections.Count
Set mrptSection = mrptSections.Item(i)
Set mrptReportObjects = mrptSection.ReportObjects
For X = 1 To mrptReportObjects.Count
If mrptReportObjects.Item(X).Kind = crSubreportObject Then
Set mrptSubReport = mrptCrystalReport.OpenSubreport(mrptReportObjects.Item(X).SubreportName)
Set mCrystalDB = mrptSubReport.Database
Set mCrystalTables = mCrystalDB.Tables
Set mCrystalTable = mCrystalTables.Item(1)
Select Case mrptReportObjects.Item(X).SubreportName
Case "OneYearIPH.rpt - 01"
mCrystalTable.SetPrivateData 3, g_rstGetIPHData
Case "PPR.rpt"
mCrystalTable.SetDataSource g_rstGetPPRData, 3
Case "OneYearIPH.rpt - 02"
mCrystalTable.SetPrivateData 3, g_rstGetIPHData
Case "FMI.rpt"
mCrystalTable.SetPrivateData 3, g_rstGetFMIData
Case "PPA"
mCrystalTable.SetPrivateData 3, g_rstGetPPAData
Case "PPAAccount.rpt"
mCrystalTable.SetPrivateData 3, g_rstGetPPAAccountData
Case "Standard"
If lstrFeeStmtIndicator = "F" Then
mCrystalTable.SetPrivateData 3, g_rstGetFEEData
End If
Case "TrustVast"
If lstrFeeStmtIndicator = "F" Then
mCrystalTable.SetPrivateData 3, g_rstGetFEEData
End If
End Select
End If
Next
Next
'here is where we set the export options
Set mCrystalOptions = mrptCrystalReport.ExportOptions
mCrystalOptions.DestinationType = crEDTDiskFile
'mCrystalOptions.FormatType = crEFTCrystalReport
mCrystalOptions.FormatType = crEFTPortableDocFormat
mCrystalOptions.DiskFileName = lstrQuarterSavePath
mrptCrystalReport.DisplayProgressDialog = False
MsgBox "before export"
mrptCrystalReport.Export (False)
MsgBox "after export"