2016-09-20 2 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()