Click here to Skip to main content
15,895,142 members

Creating Pdf without report viewer in rdlc

Pratika05 asked:

Open original thread
Hey
I am working on rdlc reports I have a button on my page and when this is clicked pdf is shown not the report in report viewer.It works fine but when i add parameters to report it works well in report viewer pdf is also generated but when i try to generate pdf without report viewer code gives error: An error ocuured while local report processing.

Code given below:

C#
private void CreatePDF(string id, string pid)
       {
           string issalaried = "";
           DataSet DsRep = getemplyeebasicdetail(id, pid);
           DataSet dssalaryDetails = getemplyeesalarydetail(id, pid);
           DataSet dsEmployeeCount = GetEmplyoeeCount(id, pid);
           int rowcount = dssalaryDetails.Tables[0].Rows.Count;
           if (rowcount == 0)
           {
               DataRow dr = dssalaryDetails.Tables[0].NewRow();
               dssalaryDetails.Tables[0].Rows.Add(dr);
           }
           else
           {
               Boolean salaried = false;
               foreach (DataRow dr in dssalaryDetails.Tables[0].Rows)
               {
                   if (dr["issalaried"].ToString() == "Y")
                   {
                       salaried = true;
                   }
               }
               if (salaried == false)
               {
                   issalaried = "N";
               }
               else
               {
                   issalaried = "Y";
               }
           }
           ReportDataSource datasource = new ReportDataSource("DS1", DsRep.Tables[0]);
           ReportDataSource datasourcefamily = new ReportDataSource("DS2", dssalaryDetails.Tables[0]);
           ReportDataSource datasourcecount = new ReportDataSource("DS3", dsEmployeeCount.Tables[0]);
           ReportParameter[] Param = new ReportParameter[1];
           Param[0] = new ReportParameter("Param_IsSalaried", issalaried);
           Warning[] warnings;
           string[] streamIds;
           string mimeType = string.Empty;
           string encoding = string.Empty;
           string extension = string.Empty;
           // Setup the report viewer object and get the array of bytes
           ReportViewer viewer = new ReportViewer();
           viewer.ProcessingMode = ProcessingMode.Local;
           viewer.LocalReport.ReportPath = Server.MapPath("~\\Employee.rdlc");
           //Datasource
           viewer.LocalReport.DataSources.Add(datasource);
           viewer.LocalReport.SetParameters(Param);
           viewer.LocalReport.EnableExternalImages = true;
           byte[] bytes = viewer.LocalReport.Render("PDF", null, out mimeType, out encoding, out extension, out streamIds, out warnings);

           // Now that you have all the bytes representing the PDF report, buffer it and send it to the client.
           Response.Buffer = true;
           Response.Clear();
           Response.ContentType = mimeType;
           Response.AddHeader("content-disposition", "attachment; filename=" + "Employee" + "." + extension);
           Response.BinaryWrite(bytes); // create the file
           Response.Flush(); // send it to the client to download
           //Page settings for PDF File.

       }
Tags: ASP.NET

Plain Text
ASM
ASP
ASP.NET
BASIC
BAT
C#
C++
COBOL
CoffeeScript
CSS
Dart
dbase
F#
FORTRAN
HTML
Java
Javascript
Kotlin
Lua
MIDL
MSIL
ObjectiveC
Pascal
PERL
PHP
PowerShell
Python
Razor
Ruby
Scala
Shell
SLN
SQL
Swift
T4
Terminal
TypeScript
VB
VBScript
XML
YAML

Preview



When answering a question please:
  1. Read the question carefully.
  2. Understand that English isn't everyone's first language so be lenient of bad spelling and grammar.
  3. If a question is poorly phrased then either ask for clarification, ignore it, or edit the question and fix the problem. Insults are not welcome.
  4. Don't tell someone to read the manual. Chances are they have and don't get it. Provide an answer or move on to the next question.
Let's work to help developers, not make them feel stupid.
Please note that all posts will be submitted under the http://www.codeproject.com/info/cpol10.aspx.



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900