private void CheckReportGeneratorConfiguration(ReportGeneratorConfiguration configuration) { if (configuration.ReportTemplateId == Guid.Empty) { throw new ArgumentEmptyException(nameof(configuration.ReportTemplateId)); } if (configuration.EntitySchemaUId == Guid.Empty) { throw new ArgumentEmptyException(nameof(configuration.EntitySchemaUId)); } }
/// <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" }); } }
/// <inheritdoc cref="BaseAsyncReportGenerator.PrepareReport(UserConnection, ReportGeneratorConfiguration)"/> protected override ReportData PrepareReport(UserConnection userConnection, ReportGeneratorConfiguration configuration) { return(_wordReportGenerator.Generate(userConnection, configuration)); }
/// <summary> /// Generates report before sending to convert service. /// </summary> /// <param name="userConnection"><see cref="UserConnection"/>.</param> /// <param name="configuration">Report generator configuration.</param> /// <returns>Returns generated report data. <see cref="ReportData"/>.</returns> protected abstract ReportData PrepareReport(UserConnection userConnection, ReportGeneratorConfiguration configuration);
public void ConfigureParameters(UserConnection userConnection, Tools.DevExpressReport.DevExpressReport report, ReportGeneratorConfiguration configuration) { if (report.Parameters.Count == 0 || configuration.ReportParameters == null) { return; } foreach (var parameter in configuration.ReportParameters) { if (report.Parameters[parameter.Key] != null && parameter.Key != "Filters") { report.Parameters[parameter.Key].Value = parameter.Value; } else { if (parameter.Value != null) { var filters = Json.Deserialize <Filters>(parameter.Value.ToString()); var esqFilters = filters.BuildEsqFilter(configuration.EntitySchemaUId, userConnection); if (report.Parameters[parameter.Key] != null) { report.Parameters[parameter.Key].Value = esqFilters; } } } } }