Ejemplo n.º 1
0
        /// <summary>
        /// 导出报表内容到文件
        /// </summary>
        /// <param name="exportTypeSetting"></param>
        /// <param name="deviceInfoXml"></param>
        /// <param name="_dataSet"></param>
        /// <param name="path"></param>
        /// <returns></returns>
        public string ExportToFile(BaseDeviceInfoSettings exportTypeSetting, string deviceInfoXml, DataTable _dataSet, string path)
        {
            IReportExporter winFormsReportExporter;
            LocalReport localReport;
            MemoryStream content = ExportRDLC(exportTypeSetting, deviceInfoXml, _dataSet, out winFormsReportExporter, out localReport);
            string fileExtension = winFormsReportExporter.Extension;

            string fileFullPath = path + "\\" + localReport.DisplayName + "." + fileExtension;
            if (Directory.Exists(fileFullPath))
            {
                File.Delete(fileFullPath);
            }
            File.WriteAllBytes(fileFullPath, content.ToArray());
            return fileFullPath;
        }
Ejemplo n.º 2
0
 public void ExportToResponse(BaseDeviceInfoSettings exportTypeSetting, DataTable _dataSet)
 {
     ExportToResponse(exportTypeSetting, null, _dataSet);
 }
Ejemplo n.º 3
0
 private MemoryStream ExportRDLC(BaseDeviceInfoSettings exportTypeSetting, string deviceInfoXml, out IReportExporter winFormsReportExporter, out LocalReport localReport)
 {
     return ExportRDLC(exportTypeSetting, deviceInfoXml, null, out winFormsReportExporter, out localReport);
 }
Ejemplo n.º 4
0
        private MemoryStream ExportRDLC(BaseDeviceInfoSettings exportTypeSetting, string deviceInfoXml, DataTable _dataSet, out IReportExporter winFormsReportExporter, out LocalReport localReport)
        {
            if (_dataSet != null)
            {
                this.m_dataSet = _dataSet;
            }

            GetColumns();
            DateTime startTime = DateTime.Now;
            localReport = new LocalReport();
            localReport.DisplayName = string.IsNullOrEmpty(Rdl.PageHeaderText) ? "Report" : Rdl.PageHeaderText;
            localReport.LoadReportDefinition(m_rdl);
            localReport.DataSources.Add(new ReportDataSource("MyData", m_dataSet));
            winFormsReportExporter = new WinFormsReportExporter(localReport);
            MemoryStream content;

            if (exportTypeSetting is ExcelDeviceInfoSettings)
            {
                content = winFormsReportExporter.ExportToXls(deviceInfoXml);
            }
            else if (exportTypeSetting is PdfDeviceInfoSettings)
            {
                content = winFormsReportExporter.ExportToPdf(deviceInfoXml);
            }
            else if (exportTypeSetting is ImageDeviceInfoSettings)
            {
                content = winFormsReportExporter.ExportToImage(deviceInfoXml);
            }
            else if (exportTypeSetting is WordDeviceInfoSettings)
            {
                content = winFormsReportExporter.ExportToWord(deviceInfoXml);
            }
            else
            {
                throw new ApplicationException("Unknown export type format");
            }

            TimeSpan totalTime = DateTime.Now - startTime;
            return content;
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 导出报表内容直接在Respons输出到客户端
        /// </summary>
        /// <param name="exportTypeSetting"></param>
        /// <param name="deviceInfoXml"></param>
        /// <param name="_dataSet"></param>
        /// <param name="response"></param>
        public void ExportToResponse(BaseDeviceInfoSettings exportTypeSetting, string deviceInfoXml, DataTable _dataSet)
        {
            IReportExporter winFormsReportExporter;
            LocalReport localReport;
            MemoryStream content = ExportRDLC(exportTypeSetting, deviceInfoXml, _dataSet, out winFormsReportExporter, out localReport);
            string fileExtension = winFormsReportExporter.Extension;

            //HttpContext.Current.Response.ContentType = "application/octet-stream";
            HttpResponse response = HttpContext.Current.Response;
            HttpContext.Current.Response.Clear();
            HttpContext.Current.Response.ContentType = "application/octet-stream";
            response.AppendHeader("Content-disposition", "attachment;filename=" + HttpUtility.UrlEncode(localReport.DisplayName + "." + fileExtension));
            StreamToResponse(content, winFormsReportExporter.MimeType, response);
            response.Flush();
        }