簡體   English   中英

單擊按鈕即可從RDLC生成PDF報告

[英]Generate PDF report from RDLC on button click

我需要單擊按鈕的簡單代碼,它將我的當前rdlc報告保存為pdf格式,並要求用戶通過saveialog將文件保存在所需位置。 我已經到處搜索,找不到任何解決方案。

我的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();

非常感謝您的幫助。

您可以使用以下庫:ItextSharp

您可以使用以下鏈接中給出的方法創建pdf。 您可以通過Nuget Package Manager下載itextsharp。

http://www.mikesdotnetting.com/article/86/itextsharp-introducing-tables

嘗試這個:

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/zh-CN/library/sfezx97z(v=vs.110).aspx

在后台從RDLC報告創建PDF

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM