2016-09-20 22 views
1

私はボタンをクリックすると、Crystalを使用して作成された請求書の添付された.pdfレポート。私は電子メール機能が働いている、私は正しい情報を取得し、リスト内の各顧客に電子メールを送信することができますが、私は物事の添付の側で問題を抱えています。ReportViewerを使用せずに.rptを.pdfに変換して変換する

同じプロジェクトでは、個別のレポートを生成して表示するためにReportViewerを使用しているウィンドウがありますが、大量のレポートが潜在的に作成され、一度に送信されるため、このウィンドウを使わずに作成する必要があります。

ReportViewerを使用せずにレポートを生成して.pdfに変換することはできますか?もしそうなら、どうすればいいですか?

SQLを使用して必要なすべてのデータを選択し、DataSetに格納すると思ったかもしれませんが、後で何が必要なのか分かりません。

+0

レポートを物理的に表示する必要はありません。 –

+0

@redsはい、表示する必要はなく、作成して電子メールの添付ファイルとして設定するだけです –

答えて

0

実際にはあなたが想像しているよりも簡単です。

必要なデータベースのログイン情報を設定してから、SQLを使用してデータベースからデータを取得し、に設定したDataSetに格納してエクスポートします。明らかに、あなたはさまざまなやり方をしているかもしれませんが、これは大雑把に行うべきです。

Dim report As New ReportDocument 

       Dim dest As String = ` This is where you put your file destination 
       report.Load(dest) 

       Dim info As CrystalDecisions.Shared.TableLogOnInfo 
       info = New CrystalDecisions.Shared.TableLogOnInfo() 

       info.ConnectionInfo.DatabaseName = ' Your DB name 
       info.ConnectionInfo.ServerName =' Your DB server name 
       info.ConnectionInfo.Password = ' Your DB password 
       info.ConnectionInfo.UserID = ' Your DB UserID 
       report.Database.Tables(0).ApplyLogOnInfo(info) 

       sql = "SELECT * FROM your_table" 
       Dim rda As New OleDb.OleDbDataAdapter(sql, connectionstring) 
       Dim rds As New DataSet 
       rda.Fill(rds) 

       report.SetDataSource(rds) 

       CrDiskFileDestinationOptions.DiskFileName = ' Your directory path and chosen file name 
       CrExportOptions = report.ExportOptions 

       With CrExportOptions 
        .ExportDestinationType = ExportDestinationType.DiskFile 
        .ExportFormatType = ExportFormatType.PortableDocFormat 
        .DestinationOptions = CrDiskFileDestinationOptions 
        .FormatOptions = CrFormatTypeOptions 
       End With 

       report.Export() 
関連する問題