|
分類:[VB.NET/VB2005]
開発環境:WinXp(仮想OS環境:VMWare)、VS2005、Crystal Reports 2008、Oracle8i
使用言語:VB
Crystal Reports 2008での印刷処理についての質問です。
下記のコードを実行したところ、
プレビュー表示は出来るのですが「PrintToPrinter」を実行して直接印刷処理を行うと
「CrystalDecisions.ReportAppServer.DataSetConversion - 接続を開けませんでした。」と
エラー表示されます。プレビュー表示できることから接続情報等は問題ないはずです。
よろしくお願い致します。
▼以下コードになります。----------------------------------------------------------------
' CrystalReportsオブジェクトの生成
Dim Report As CrystalDecisions.CrystalReports.Engine.ReportDocument
Report = New CrystalDecisions.CrystalReports.Engine.ReportDocument
Dim sReportFile As String = ReportsDir & "\" & "@@@" & ".rpt"
Report.Load(sReportFile, CrystalDecisions.Shared.OpenReportMethod.OpenReportByTempCopy)
If frmZUK500.cmbDestination.SelectedIndex = 0 Then
'// プレビュー表示 //
Dim frmPreview As New frmPreview
frmPreview.crViewer.SelectionFormula = strWHERE
frmPreview.crViewer.ReportSource = sReportFile
' レポート内のテーブルの接続情報を設定
Dim logOnInfo As New CrystalDecisions.Shared.TableLogOnInfo
logOnInfo.ConnectionInfo.ServerName = "@@@"
logOnInfo.ConnectionInfo.DatabaseName = "@@@"
logOnInfo.ConnectionInfo.UserID = "@@@"
logOnInfo.ConnectionInfo.Password = "@@@"
logOnInfo.TableName = "@@@"
' logOnInfosコレクションにlogOnInfoオブジェクトを追加します。
frmPreview.crViewer.LogOnInfo.Add(logOnInfo)
For Each Table As CrystalDecisions.CrystalReports.Engine.Table In Report.Database.Tables
' logOnInfosコレクションにlogOnInfoを追加
Table.ApplyLogOnInfo(logOnInfo)
Next
Report.RecordSelectionFormula = strWHERE
' ビューアーの表示
frmPreview.Show()
Else
'// 直接印刷 //
' レポート内のテーブルの接続情報を設定
Dim logOnInfo As New CrystalDecisions.Shared.TableLogOnInfo
logOnInfo.ConnectionInfo.ServerName = "@@@"
logOnInfo.ConnectionInfo.DatabaseName = "@@@"
logOnInfo.ConnectionInfo.UserID = "@@@"
logOnInfo.ConnectionInfo.Password = "@@@"
logOnInfo.TableName = "@@@"
frmPreview.crViewer.LogOnInfo.Add(logOnInfo)
For Each Table As CrystalDecisions.CrystalReports.Engine.Table In Report.Database.Tables
' logOnInfosコレクションにlogOnInfoを追加
Table.ApplyLogOnInfo(logOnInfo)
Next
Report.RecordSelectionFormula = strWHERE
' 印刷部数
Dim Copies As Integer = 1
'PrintDocumentの作成
Dim pd As New System.Drawing.Printing.PrintDocument
'プリンタ名の取得
Dim defaultPrinterName As String = pd.PrinterSettings.PrinterName
Report.PrintOptions.PrinterName = defaultPrinterName
Report.PrintToPrinter(Copies, True, 0, 0) ← ※この行を実行するとエラーになります。
End If
|