2016-06-10 2 views
0

버튼을 클릭하면 현재의 rdlc 보고서를 pdf 형식으로 저장하고 saveallog를 통해 원하는 위치에 파일을 저장하도록 요청하는 간단한 코드가 필요합니다. 이미 모든 곳에서 수색했으며 어떤 해결책도 찾을 수 없습니다.버튼 클릭시 RDLC에서 PDF 보고서 생성

내 ShowReport 버튼 코드는 여기에 있습니다 :

SqlConnection S_Conn = new SqlConnection(strConnString); 
     S_Conn.Open(); 
     string query_1 = ""; 
     query_1 = "SELECT Record_Id, Select_Ward, Mr_No, Patient_Name, Date_Of_Admission, Date_Of_Dsch_Death, Disease from EO_System_RecordRoomData WHERE Date_Of_Admission = '" + txtbx_DateForReport.Text.Trim() + "'"; 
     SqlCommand Command_1 = new SqlCommand(query_1, S_Conn); 
     SqlDataAdapter Data_Adapter = new SqlDataAdapter(Command_1); 
     DataSet1 Data_Set = new DataSet1(); 
     Data_Adapter.Fill(Data_Set); 
     reportViewer1.LocalReport.DataSources.Clear(); 
     reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", Data_Set.Tables[1])); 
     this.reportViewer1.RefreshReport(); 

도움이 높게 평가 될 것입니다. 당신은 아래 링크에서 주어진 방법을 사용하여 PDF 파일을 만들 수 있습니다 ItextSharp

:

+1

[배경에서 RDLC 보고서에서 PDF 만들기]의 가능한 복제본 (http://stackoverflow.com/questions/2684221/creating-a-pdf-from-a-rdlc-report-in-the-background) –

+0

파일을 저장할 위치를 표시하지 않습니다. 사용자가 원할 때마다 파일을 저장하기 위해 saveasdialog를 보여주고 싶습니다. –

답변

0

이 시도 :

SqlConnection S_Conn = new SqlConnection(strConnString); 
S_Conn.Open(); 
string query_1 = ""; 
query_1 = "SELECT Record_Id, Select_Ward, Mr_No, Patient_Name, Date_Of_Admission, Date_Of_Dsch_Death, Disease " 
     + "from EO_System_RecordRoomData WHERE Date_Of_Admission = '" + txtbx_DateForReport.Text.Trim() + "'"; 
SqlCommand Command_1 = new SqlCommand(query_1, S_Conn); 
SqlDataAdapter Data_Adapter = new SqlDataAdapter(Command_1); 
DataSet1 Data_Set = new DataSet1(); 
Data_Adapter.Fill(Data_Set); 
reportViewer1.LocalReport.DataSources.Clear(); 
reportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", Data_Set.Tables[1])); 
reportViewer1.RefreshReport(); 

SaveFileDialog saveFileDialogPDF = new SaveFileDialog(); 
saveFileDialogPDF.Filter = "PDF|*.pdf"; 
saveFileDialogPDF.Title = "Save report to PDF"; 
saveFileDialogPDF.ShowDialog(); 

if (saveFileDialogPDF.FileName != "") 
{ 
    Warning[] warnings; 
    string[] streamids; 
    string mimeType; 
    string encoding; 
    string filenameExtension; 
    byte[] bytes = reportViewer.LocalReport.Render(
       "PDF", null, out mimeType, out encoding, out filenameExtension, 
       out streamids, out warnings); 
    using (FileStream fs = new FileStream(saveFileDialogPDF.FileName, FileMode.Create)) 
    { 
     fs.Write(bytes, 0, bytes.Length); 
    } 
} 

출처 :

https://msdn.microsoft.com/en-us/library/sfezx97z(v=vs.110).aspx

Creating a PDF from a RDLC Report in the Background