示例#1
0
        private DevExpressReportMetadata GetTemplateMetadata(UserConnection userConnection, Guid reportTemplateId)
        {
            var entity = new DevExpressReportMetadata(userConnection);

            if (entity.FetchFromDB(reportTemplateId))
            {
                return(entity);
            }
            throw new ItemNotFoundException(userConnection, reportTemplateId.ToString(),
                                            nameof(DevExpressReportMetadata));
        }
示例#2
0
        /// <summary>
        /// Generates DevExpress report.
        /// </summary>
        /// <param name="userConnection">User connection.</param>
        /// <param name="configuration">Provides configuration for report generator.</param>
        /// <returns>Returns prepared report.</returns>
        public ReportData Generate(UserConnection userConnection, ReportGeneratorConfiguration configuration)
        {
            CheckReportGeneratorConfiguration(configuration);
            DevExpressReportMetadata templateMetadata =
                GetTemplateMetadata(userConnection, configuration.ReportTemplateId);
            string templateSourceCode       = DecodeTemplateSourceCode(templateMetadata);
            var    reportProvider           = GetReportProvider(userConnection);
            DevExpressReportTemplate report = reportProvider.CreateReport(templateSourceCode, templateMetadata.Name);

            report.UserConnection = userConnection;
            var reportParametersConfigurator = GetReportParametersConfigurator();

            reportParametersConfigurator.ConfigureParameters(userConnection, report, configuration);
            using (var reportStream = new MemoryStream()) {
                report.ExportToPdf(reportStream);
                return(new ReportData {
                    Caption = templateMetadata.Caption,
                    Data = reportStream.ToArray(),
                    Format = "pdf"
                });
            }
        }
 public DevExpressReport(DevExpressReport source)
     : base(source)
 {
 }
示例#4
0
        private string DecodeTemplateSourceCode(DevExpressReportMetadata templateMetadata)
        {
            ReportMessage reportMessage = ReportMessage.FromStream(templateMetadata.GetStreamValue("Data"));

            return(reportMessage.Body);
        }