Exemple #1
0
        void ReportExportBegin(IGRExportOption Sender)
        {
            //ExportBegin 事件在将报表导出之前会触发到,无论是调用 ExportDirect 与 Export 方法,
            //还是从打印预览窗口等地方执行导出,都会触发到 ExportBegin 事件。
            //通常在 ExportBegin 事件中设置导出选项参数,改变默认导出行为

            Sender.AbortOpenFile = true;  //导出后不用关联程序打开导出文件,如导出Excel文件之后不用Excel打开
                                          // Sender.AbortShowOptionDlg = !ckbShowOptionDlg.Checked;  //导出之前不显示导出选项设置对话框
        }
        void ReportExportBegin(IGRExportOption Sender)
        {
            //ExportBegin 事件在将报表导出之前会触发到,无论是调用 ExportDirect 与 Export 方法
            //还是从打印预览窗口等地方执行导出,都会触发到 ExportBegin 事件。
            //通常在 ExportBegin 事件中设置导出选项参数,改变默认导出行为

            //指定导出文件的完整路径与文件名称
            string fileName = txtWorkFolder.Text + "\\" + _printFileName + ".png";

            Sender.FileName = fileName;

            //根据导出类型设置其特有的选项参数,有关选项参数的具体信息清参考帮助文档。
            //IGRExportOption是导出选项的基类,其它具体导出选项的接口名称都以IGRE2为前缀
            Sender.AsE2IMGOption.DPI       = 300;
            Sender.AsE2IMGOption.ImageType = GRExportImageType.greitPNG;
        }
Exemple #3
0
        /// <summary>
        /// 导出PDF
        /// </summary>
        /// <typeparam name="T">列表对象类型</typeparam>
        /// <param name="list">列表对象</param>
        /// <param name="filePath">存储路径</param>
        /// <param name="context"></param>
        /// <returns></returns>
        public bool ExportPdf(string json, string filePath, HttpContextBase context)
        {
            //从对应文件中载入报表模板数据
            Report.LoadFromFile(this.ReportPath);

            //加载JSON对象
            Report.LoadDataFromXML(json);

            IGRExportOption ExportOption = Report.PrepareExport(GRExportType.gretPDF);
            var             exportPdf    = Report.ExportToBinaryObject();

            Report.UnprepareExport();

            var succeeded = exportPdf.SaveToFile(filePath);

            return(succeeded);
        }
        private void ReportExportBegin(IGRExportOption Sender)
        {
            switch (Sender.ExportType)
            {
            case GRExportType.gretXLS:
                Sender.AsE2XLSOption.MailExportFile         = false;
                Sender.AsE2XLSOption.ExportPageBreak        = false;
                Sender.AsE2XLSOption.ColumnAsDetailGrid     = false;
                Sender.AsE2XLSOption.SameAsPrint            = false;
                Sender.AsE2XLSOption.ExportPageHeaderFooter = false;
                Sender.AsE2XLSOption.OnlyExportPureText     = false;
                Sender.AsE2XLSOption.ExpandRowHeight        = false;
                Sender.AsE2XLSOption.OnlyExportDetailGrid   = true;
                Sender.AsE2XLSOption.SupressEmptyLines      = false;
                Sender.AsE2XLSOption.ExpandRowHeight        = false;
                break;

            case GRExportType.gretTXT:
                Sender.AsE2TXTOption.MailExportFile       = false;
                Sender.AsE2TXTOption.OnlyExportDetailGrid = true;
                break;

            case GRExportType.gretHTM:
                Sender.AsE2HTMOption.OnlyExportDetailGrid = true;
                break;

            case GRExportType.gretRTF:
                Sender.AsE2RTFOption.ExportPageBreak        = false;
                Sender.AsE2RTFOption.SameAsPrint            = false;
                Sender.AsE2RTFOption.ExportPageHeaderFooter = false;
                Sender.AsE2RTFOption.OnlyExportDetailGrid   = true;
                break;

            case GRExportType.gretPDF:
                break;

            case GRExportType.gretCSV:
                Sender.AsE2CSVOption.OnlyExportDetailGrid = true;
                break;

            case GRExportType.gretIMG:
                Sender.AsE2IMGOption.ImageType = GRExportImageType.greitJPEG;
                break;
            }
        }
Exemple #5
0
        /// <summary>
        /// 导出PDF
        /// </summary>
        /// <param name="obj">对象</param>
        /// <param name="filePath">存储路径</param>
        /// <param name="context"></param>
        /// <returns></returns>
        public bool ExportPdf(object obj, string filePath, HttpContextBase context)
        {
            //从对应文件中载入报表模板数据
            Report.LoadFromFile(this.ReportPath);

            //构建一个合法格式的对象,进行序列化
            var json = JsonConvert.SerializeObject(obj, Formatting.Indented);

            Report.LoadDataFromXML(json);

            IGRExportOption ExportOption = Report.PrepareExport(GRExportType.gretPDF);
            var             exportPdf    = Report.ExportToBinaryObject();

            Report.UnprepareExport();

            var succeeded = exportPdf.SaveToFile(filePath);

            return(succeeded);
        }
        public DataResult Document(ReportParam param)
        {
            paramModel = param;

            if (param.grfUrl != null)
            {
                // 从指定的 URL 地址载入报表模板数据
                loadGrf = report.LoadFromURL(param.grfUrl);
            }
            else
            {
                // 从字符串中载入报表模板数据
                loadGrf = report.LoadFromStr(param.grfStr);
            }

            if (!loadGrf)
            {
                return(request.Error("载入报表文件出错,请检查报表模板数据是否正确!"));
            }

            if (param.grfDataUrl != null)
            {
                // 从指定的 URL 地址载入报表明细数据
                loadData = report.LoadDataFromURL(param.grfDataUrl);
            }
            else
            {
                // 从 XML 或 JSON 文字串中载入报表明细记录集数据,数据应符合约定的形式。
                loadData = report.LoadDataFromXML(paramModel.grfData);
            }

            if (!loadData)
            {
                return(request.Error("载入报表数据出错,请检查报表数据地址是否正确!"));
            }


            //确定导出数据类型及数据的ContentType
            GenerateInfo.Build(param.type, "png");

            IGRBinaryObject ResultDataObject;

            if (GenerateInfo.IsGRD)
            {
                ResultDataObject = report.GenerateDocumentData();
            }
            else
            {
                IGRExportOption ExportOption = report.PrepareExport(GenerateInfo.ExportType);

                if (GenerateInfo.ExportType == GRExportType.gretIMG)
                {
                    IGRE2IMGOption E2IMGOption = ExportOption.AsE2IMGOption;
                    E2IMGOption.ImageType   = GenerateInfo.ImageType;
                    E2IMGOption.AllInOne    = true;      //所有页产生在一个图像文件中
                    E2IMGOption.DPI         = param.dpi; //指定导出图像的分辨率DPI
                    E2IMGOption.DrawPageBox = false;     //指定是否在导出的图像上绘制一个页边框
                    //E2IMGOption.VertGap = 20;    //页之间设置20个像素的间距
                }
                else if (GenerateInfo.ExportType == GRExportType.gretPDF)
                {
                    IGRE2PDFOption E2PDFOption = ExportOption.AsE2PDFOption;
                    E2PDFOption.AnsiTextMode = false; //指定是否将文本数据编码为ANSI字符方式
                    E2PDFOption.Compressed   = false; //指定是否对 PDF 页面数据进行压缩
                }

                ResultDataObject = report.ExportToBinaryObject();
                report.UnprepareExport();
            }

            object Data         = ResultDataObject.SaveToVariant();
            string DocumentData = Convert.ToBase64String((byte[])Data);

            return(request.Succes(DocumentData, "生成数据成功"));
        }
Exemple #7
0
        void ReportExportBegin(IGRExportOption Sender)
        {
            //ExportBegin 事件在将报表导出之前会触发到,无论是调用 ExportDirect 与 Export 方法,
            //还是从打印预览窗口等地方执行导出,都会触发到 ExportBegin 事件。
            //通常在 ExportBegin 事件中设置导出选项参数,改变默认导出行为

            Sender.AbortOpenFile      = true;                      //导出后不用关联程序打开导出文件,如导出Excel文件之后不用Excel打开
            Sender.AbortShowOptionDlg = !ckbShowOptionDlg.Checked; //导出之前不显示导出选项设置对话框

            //指定导出文件的完整路径与文件名称
            string FileName = GetExportFileName(false);

            Sender.FileName = FileName; //"d:\\export\\my.dat";

            //根据导出类型设置其特有的选项参数,有关选项参数的具体信息清参考帮助文档。
            //IGRExportOption是导出选项的基类,其它具体导出选项的接口名称都以IGRE2为前缀
            bool OnlyExportDetailGrid = ckbOnlyDetailGrid.Checked;
            bool SupressEmptyLines    = ckbSupressEmptyLines.Checked;

            switch (Sender.ExportType)
            {
            case GRExportType.gretXLS:
                Sender.AsE2XLSOption.OnlyExportDetailGrid = OnlyExportDetailGrid;
                Sender.AsE2XLSOption.SupressEmptyLines    = SupressEmptyLines;

                Sender.AsE2XLSOption.ExportPageHeaderFooter = false;
                Sender.AsE2XLSOption.SameAsPrint            = false;
                Sender.AsE2XLSOption.ExportPageBreak        = false;
                break;

            case GRExportType.gretRTF:
                Sender.AsE2RTFOption.OnlyExportDetailGrid = OnlyExportDetailGrid;
                Sender.AsE2RTFOption.SupressEmptyLines    = SupressEmptyLines;
                break;

            case GRExportType.gretPDF:
                Sender.AsE2PDFOption.Author  = "My Author";
                Sender.AsE2PDFOption.Subject = "My Subject";
                break;

            case GRExportType.gretHTM:
                Sender.AsE2HTMOption.OnlyExportDetailGrid = OnlyExportDetailGrid;
                Sender.AsE2HTMOption.SupressEmptyLines    = SupressEmptyLines;
                break;

            case GRExportType.gretIMG:
                Sender.AsE2IMGOption.DPI       = 300;
                Sender.AsE2IMGOption.ImageType = GRExportImageType.greitPNG;
                break;

            case GRExportType.gretTXT:
                Sender.AsE2TXTOption.OnlyExportDetailGrid = OnlyExportDetailGrid;
                Sender.AsE2TXTOption.SupressEmptyLines    = SupressEmptyLines;
                break;

            default:
                Sender.AsE2CSVOption.OnlyExportDetailGrid = OnlyExportDetailGrid;
                Sender.AsE2CSVOption.SupressEmptyLines    = SupressEmptyLines;
                break;
            }

            if (m_ExportToEmail)
            {
                //指定导出后发送EMail并设定发送EMail的参数
                Sender.MailExportFile = true;
                Sender.MailTo         = "*****@*****.**";
                Sender.MailSubject    = "报表导出并发送Email";
                Sender.MailText       = "报表导出并发送Email的相关说明...";
            }
        }