Пример #1
0
        /// <summary>
        /// Saves operation.
        /// </summary>
        /// <param name="generator">Reports generator.</param>
        /// <param name="descriptions">Report state description.</param>
        private void _DoSave(ReportsGenerator generator, IList <ReportStateDescription> descriptions)
        {
            Debug.Assert(null != generator);
            Debug.Assert(null != descriptions);
            Debug.Assert(0 < descriptions.Count);

            try
            {
                string exportDir = null;
                string fileName  = null;
                string fileExt   = null;

                // get export settings
                if (1 == descriptions.Count)
                {   // get settings for one file
                    _GetExportOutputSettings(descriptions[0].ReportName,
                                             out exportDir,
                                             out fileName,
                                             out fileExt);
                }
                else
                {   // get settings for files
                    Debug.Assert(1 < descriptions.Count);
                    _GetExportOutputSettings(out exportDir, out fileExt);
                }

                // export reports
                if (!string.IsNullOrEmpty(exportDir) && !string.IsNullOrEmpty(fileExt))
                {
                    IDocumentExport exporter = ReportsHelpers.GetExporterByFileExtension(fileExt);
                    // do save export files
                    List <MessageDetail> details = new List <MessageDetail>();
                    for (int index = 0; index < descriptions.Count; ++index)
                    {
                        ReportStateDescription description = descriptions[index];
                        MessageDetail          detail      = _DoSaveReport(exporter, exportDir, fileName, fileExt,
                                                                           generator, description);
                        if (null != detail)
                        {
                            details.Add(detail);
                        }
                    }

                    // export done - show messages
                    string infoMessage  = App.Current.FindString("ReportPreviewTopLevelSaveDone");
                    string errorMessage = App.Current.FindString("ReportPreviewTopLevelSaveFail");
                    _PopulateMessages(errorMessage, infoMessage, details);
                }
            }
            catch (Exception ex)
            {
                _DoSaveInitExceptionRoutine(ex);
            }
        }
Пример #2
0
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////
        ///////////////////////////////////////////////////////////////////////////////////////////

        /// <summary>
        /// Gets exporter object by identificator.
        /// </summary>
        /// <param name="identificator">Export type identificator (name or file extension).</param>
        /// <returns>Unifed document exporter.</returns>
        private static IDocumentExport _GetExporter(string identificator)
        {
            Debug.Assert(!string.IsNullOrEmpty(identificator));

            IDocumentExport export = null;

            // select export format type
            switch (identificator)
            {
            case EXPORT_EXTENSION_HTM:
            case EXPORT_TYPE_NAME_HTM:
                export = new HtmlExport();
                break;

            case EXPORT_EXTENSION_PDF:
            case EXPORT_TYPE_NAME_PDF:
                export = new PdfExport();
                break;

            case EXPORT_EXTENSION_RTF:
            case EXPORT_TYPE_NAME_RTF:
                export = new RtfExport();
                break;

            case EXPORT_EXTENSION_TIF:
            case EXPORT_TYPE_NAME_TIF:
                export = new TiffExport();
                break;

            case EXPORT_EXTENSION_TXT:
            case EXPORT_TYPE_NAME_TXT:
                export = new TextExport();
                break;

            case EXPORT_EXTENSION_XLS:
            case EXPORT_TYPE_NAME_XLS:
                export = new XlsExport();
                break;

            default:
                Debug.Assert(false);     // NOTE: not supported
                break;
            }

            return(export);
        }
Пример #3
0
        /// <summary>
        /// Saves report routine.
        /// </summary>
        /// <param name="exporter">Exporter object.</param>
        /// <param name="exportDir">Export directory.</param>
        /// <param name="fileName">Export report file name (can be null).</param>
        /// <param name="fileExt">Export file extension.</param>
        /// <param name="generator">Report generator.</param>
        /// <param name="description">Report state descriiption.</param>
        /// <returns>Status messages.</returns>
        private MessageDetail _DoSaveReport(IDocumentExport exporter,
                                            string exportDir,
                                            string fileName,
                                            string fileExt,
                                            ReportsGenerator generator,
                                            ReportStateDescription description)
        {
            Debug.Assert(null != exporter);
            Debug.Assert(null != generator);
            Debug.Assert(null != description);
            Debug.Assert((null != exportDir) && (null != fileExt));

            MessageDetail detail       = null;
            string        fullFileName = null;

            try
            {
                string filename = (string.IsNullOrEmpty(fileName)) ?
                                  _ValidateFileName(description.ReportName) : fileName;
                fullFileName = Path.Combine(exportDir, filename + fileExt);

                if (null == description.Report)
                {
                    generator.RunReport(description);
                }

                exporter.Export(description.Report.Document, fullFileName);
                string message = App.Current.GetString("ReportPreviewSaveDoneFormat",
                                                       description.ReportName, fullFileName);
                detail = new MessageDetail(MessageType.Information, message);
            }
            catch (Exception ex)
            {
                string message = App.Current.GetString("ReportPreviewSaveFailFormat",
                                                       description.ReportName, fullFileName);
                detail = _DoExceptionRoutine(message, ex, generator, description);
            }

            return(detail);
        }
Пример #4
0
 public ExportWrapper(IDocumentExport docExp, string name)
 {
     _docExp = docExp;
     _name   = name;
 }
        /// <summary>
        /// Saves report routine.
        /// </summary>
        /// <param name="exporter">Exporter object.</param>
        /// <param name="exportDir">Export directory.</param>
        /// <param name="fileName">Export report file name (can be null).</param>
        /// <param name="fileExt">Export file extension.</param>
        /// <param name="generator">Report generator.</param>
        /// <param name="description">Report state descriiption.</param>
        /// <returns>Status messages.</returns>
        private MessageDetail _DoSaveReport(IDocumentExport exporter,
                                            string exportDir,
                                            string fileName,
                                            string fileExt,
                                            ReportsGenerator generator,
                                            ReportStateDescription description)
        {
            Debug.Assert(null != exporter);
            Debug.Assert(null != generator);
            Debug.Assert(null != description);
            Debug.Assert((null != exportDir) && (null != fileExt));

            MessageDetail detail = null;
            string fullFileName = null;
            try
            {
                string filename = (string.IsNullOrEmpty(fileName)) ?
                                    _ValidateFileName(description.ReportName) : fileName;
                fullFileName = Path.Combine(exportDir, filename + fileExt);

                if (null == description.Report)
                    generator.RunReport(description);

                exporter.Export(description.Report.Document, fullFileName);
                string message = App.Current.GetString("ReportPreviewSaveDoneFormat",
                                                       description.ReportName, fullFileName);
                detail = new MessageDetail(MessageType.Information, message);
            }
            catch (Exception ex)
            {
                string message = App.Current.GetString("ReportPreviewSaveFailFormat",
                                                       description.ReportName, fullFileName);
                detail = _DoExceptionRoutine(message, ex, generator, description);
            }

            return detail;
        }