Exemplo n.º 1
0
        // set parameter for export to CrystalReports PDF
        public ExportParameter.PDF SetReportParameter(string filename, string pathCrystalReport, IEnumerable <object> listObject, Dictionary <string, object> parameter)
        {
            try
            {
                if (string.IsNullOrEmpty(filename))
                {
                    throw new Exception("Filename to export is not null or empty.");
                }

                if (string.IsNullOrEmpty(pathCrystalReport))
                {
                    throw new Exception("Path CrystalReport is not null or empty.");
                }

                if (listObject == null)
                {
                    throw new Exception("Data to export is not null.");
                }

                var reportParameter = new ExportParameter.PDF();

                IList <ExportParameter.Parameter> parameters = new List <ExportParameter.Parameter>();
                foreach (var p in parameter)
                {
                    parameters.Add(new ExportParameter.Parameter()
                    {
                        Name  = p.Key,
                        Value = p.Value
                    });
                }

                reportParameter.FileName          = filename;
                reportParameter.PathCrystalReport = pathCrystalReport;
                reportParameter.DataSource        = listObject;
                reportParameter.Parameter         = parameters;

                return(reportParameter);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemplo n.º 2
0
        // Export to CrystalReports PDF
        public void ExportToPDF(ExportParameter.PDF ReportParameter)
        {
            var report = new ReportDocument();

            try
            {
                if (ReportParameter == null)
                {
                    throw new Exception("parameter to export is not null.");
                }

                HttpContext.Current.Response.Buffer = false;
                HttpContext.Current.Response.ClearContent();
                HttpContext.Current.Response.ClearHeaders();

                report.Load(HttpContext.Current.Server.MapPath(ReportParameter.PathCrystalReport));
                report.SetDataSource(ReportParameter.DataSource);

                foreach (var parameter in ReportParameter.Parameter)
                {
                    report.SetParameterValue(parameter.Name, parameter.Value);
                }

                report.ExportToHttpResponse(ExportFormatType.PortableDocFormat, HttpContext.Current.Response, true, ReportParameter.FileName);
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                report.Close();
                report.Dispose();
                GC.Collect();
            }
        }