Esempio n. 1
0
        public Stream GetExcelStream(JournalExportEventArgs args)
        {
            string docLocation = string.Empty;

            if (args.ViewJournalUrl != null && args.ViewJournalUrl.Length > 0)
            {
                docLocation = args.ViewJournalUrl.ToString();
                var startIndex = docLocation.IndexOf("?", StringComparison.Ordinal);
                var pluginName = startIndex > -1 ? docLocation.Substring(0, startIndex) : docLocation;
                DBDataContext.AddViewReports(
                    User.GetSID(),
                    HttpContext.Current.User.Identity.Name,
                    HttpContext.Current.User.Identity.Name,
                    docLocation,
                    HttpContext.Current.Request.Url.GetLeftPart(UriPartial.Authority),
                    Environment.MachineName,
                    true,
                    pluginName,
                    LocalizationHelper.IsCultureKZ ? null : args.Header,
                    LocalizationHelper.IsCultureKZ ? args.Header : null);
            }

            var export = new ExporterXslxByArgs();
            var stream = export.GetExcel(args);

            if (args.ExportLog != 0)
            {
                args.LogMonitor.Log(
                    args.ExportLog,
                    () =>
                {
                    var message = new StringBuilder();
                    message.Append(args.Header);
                    if (args.FilterValues != null)
                    {
                        message.Append("; Фильтры: \r\n");
                        foreach (var value in args.FilterValues)
                        {
                            message.Append(value);
                            message.Append(";\r\n");
                        }
                    }

                    message.AddHyperLink(docLocation, Resources.SViewJournal, string.Empty);
                    return(new LogMessageEntry(User.GetSID(), args.ExportLog, message.ToString()));
                });
            }

            return(stream);
        }
Esempio n. 2
0
        public ExportResultArgs GetExcelResult(JournalExportEventArgs args)
        {
            try
            {
                var export = new ExporterXslxByArgs();
                var stream = export.GetExcel(args);
                if (args.ExportLog != 0)
                {
                    args.LogMonitor.Log(
                        args.ExportLog,
                        () =>
                    {
                        var message = new StringBuilder();
                        message.Append(args.Header);
                        if (args.FilterValues != null)
                        {
                            message.Append("; Фильтры: \r\n");
                            foreach (var value in args.FilterValues)
                            {
                                message.Append(value);
                                message.Append(";\r\n");
                            }
                        }

                        return(new LogMessageEntry(User.GetSID(), args.ExportLog, message.ToString()));
                    });
                }
                return(new ExportResultArgs
                {
                    Stream = stream
                });
            }
            catch (Exception e)
            {
                return(new ExportResultArgs
                {
                    Exception = e,
                    ErrorMessage = e.ToString()
                });
            }
        }
        public void ExportDataToXlsx(DataTable table, string reportName)
        {
            var exporter   = new ExporterXslxByArgs();
            var logMonitor = InitializerSection.GetSection().LogMonitor;

            logMonitor.Init();
            exporter.LogMonitor = logMonitor;
            var args = new JournalExportEventArgs
            {
                Header         = reportName,
                CheckPermit    = false,
                Columns        = GetColumns(table),
                Data           = table.Rows,
                FilterValues   = new List <string>(),
                FixedRowsCount = 3,
            };

            using (var stream = exporter.GetExcel(args))
            {
                PageHelper.DownloadFile(stream, reportName + ".xlsx", HttpContext.Current.Response);
            }
        }