public void SetupReport(XtraReport report, ReportParametersObjectBase parametersObject, CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty) { SetupReportDataSource(report, criteria, canApplyCriteria, sortProperty, canApplySortProperty); SetXafReportParametersObject(report, parametersObject); RegisterObjectSpaceProviderService(report); RegisterReportEnumLocalizer(report); AttachCriteriaWithReportParametersManager(report); }
public abstract void CustomShowPreview( string reportContainerHandle, ReportParametersObjectBase parametersObject, CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty, ShowViewParameters showViewParameters, bool isSinglePage);
private void Controller_Accepting(object sender, DialogControllerAcceptingEventArgs e) { string reportContainerHandle = (string)((WindowController)sender).Tag; ((DialogController)sender).Accepting -= Controller_Accepting; ReportParametersObjectBase reportParametersObject = (ReportParametersObjectBase)e.AcceptActionArgs.CurrentObject; PrintReport(reportParametersObject); }
public virtual void SetXafReportParametersObject(XtraReport report, ReportParametersObjectBase parametersObject) { if (parametersObject != null) { DevExpress.XtraReports.Parameters.Parameter xafReportParameter = new DevExpress.XtraReports.Parameters.Parameter() { Name = XafReportParametersObjectName, Value = parametersObject, Type = typeof(ReportParametersObjectBase), Visible = false }; report.Parameters.Add(xafReportParameter); } }
/// <summary> /// Показать окно предпросмотра отчета /// </summary> /// <param name="controller">Контроллер</param> /// <param name="reportType">Тип отчета</param> /// <param name="parametersObject">Объект параметров</param> /// <param name="showViewParameters">Объект DevExpress.ExpressApp.ShowViewParameters</param> public static void ShowPreview(this ReportServiceController controller, Type reportType, ReportParametersObjectBase parametersObject, ShowViewParameters showViewParameters) { var objectSpace = ReportDataProvider.ReportObjectSpaceProvider.CreateObjectSpace(typeof(ReportDataV2)); var reportData1 = objectSpace.FindObject<ReportDataV2>(new BinaryOperator("PredefinedReportType", reportType)); var reportData2 = (IReportDataV2)objectSpace.FindObject<XtraReportData>(new BinaryOperator("PredefinedReportType", reportType)); var report = ReportDataProvider.ReportsStorage.LoadReport(reportData1 ?? reportData2); var reportContainerHandler = ReportDataProvider.ReportsStorage.GetReportContainerHandle(reportData1 ?? reportData2); controller.ShowPreview(reportContainerHandler, parametersObject, parametersObject.GetCriteria(), true, parametersObject.GetSorting(), true, showViewParameters); }
public override void CustomShowPreview( string reportContainerHandle, ReportParametersObjectBase parametersObject, DevExpress.Data.Filtering.CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty, ShowViewParameters showViewParameters, bool isSinglePage) { IReportContainer reportContainer = ReportDataProvider.ReportsStorage.GetReportContainerByHandle(reportContainerHandle); Guard.ArgumentNotNull(reportContainer, "reportContainer"); Type dataType = GetReportDataSourceObjectType(reportContainer.Report); objectSpace = Application.CreateObjectSpace(dataType); DetailView previewDetailView = new DetailView((IModelDetailView)Application.Model.Views[ReportsAspNetModuleV2.ReportViewDetailViewWebName], objectSpace, null, Application, false); ReportViewerContainer reportViewContainer = new ReportViewerContainer(parametersObject, criteria, canApplyCriteria, sortProperty, canApplySortProperty); DevExpress.ExpressApp.ReportsV2.Web.ReportViewerDetailItem reportViewer = new DevExpress.ExpressApp.ReportsV2.Web.ReportViewerDetailItem( reportContainerHandle, reportViewContainer, "ReportViewer"); reportViewer.QueryReport += this.HandleQueryReportEvent; reportViewer.CustomParameterEditors += HandleCustomParameterEditorsEvent; previewDetailView.AddItem(reportViewer); previewDetailView.Caption = reportContainer.Report.DisplayName; if (isSinglePage) { Namoly.Module.Common.Utility.SinglePageHelper.GenerateSinglePageReport(reportContainer.Report, true, 6); } PreviewReportDialogController windowController = Application.CreateController <PreviewReportDialogController>(); windowController.AcceptAction.Active["ReportPreview"] = false; if (showViewParameters == null) { showViewParameters = new ShowViewParameters(); showViewParameters.Controllers.Add(windowController); showViewParameters.CreatedView = previewDetailView; showViewParameters.TargetWindow = TargetWindow.NewWindow; Application.ShowViewStrategy.ShowView(showViewParameters, new ShowViewSource(Frame, null)); } else { showViewParameters.Controllers.Add(windowController); showViewParameters.CreatedView = previewDetailView; showViewParameters.TargetWindow = TargetWindow.NewWindow; } }
/// <summary> /// Показать окно предпросмотра отчета /// </summary> /// <param name="reportController">Контроллер</param> /// <param name="reportContainerHandle">Дескриптор</param> /// <param name="parametersObject">Объект параметров</param> /// <param name="criteria">Критерий</param> /// <param name="canApplyCriteria">Можно ли применить критерий</param> /// <param name="sortProperty">Сортировка</param> /// <param name="canApplySortProperty">Можно ли применить сортировку</param> /// <param name="showViewParameters">Объект DevExpress.ExpressApp.ShowViewParameters</param> public static void ShowPreview(this ReportServiceController reportController, string reportContainerHandle, ReportParametersObjectBase parametersObject, CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty, ShowViewParameters showViewParameters) { var objectSpace = ReportDataProvider.ReportObjectSpaceProvider.CreateObjectSpace(typeof(ReportDataV2)); Audit.ReportTrail.LogOperation(objectSpace, reportContainerHandle, parametersObject); var type = reportController.GetType().BaseType; var method = type.GetMethod("ShowReportPreview", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance, null, new Type[] { typeof(string), typeof(ReportParametersObjectBase), typeof(CriteriaOperator), typeof(bool), typeof(SortProperty[]), typeof(bool), typeof(ShowViewParameters) }, null); if (method != null) { method.Invoke(reportController, new object[] { reportContainerHandle, parametersObject, criteria, canApplyCriteria, sortProperty, canApplySortProperty, showViewParameters }); } }
protected DetailView CreateParametersDetailView(ReportParametersObjectBase reportParametersObject) { Guard.ArgumentNotNull(reportParametersObject, "reportParametersObject"); DetailView detailView = Application.CreateDetailView( reportParametersObject.ObjectSpace, reportParametersObject, false); if (detailView != null && detailView.Items.Count == 0) { detailView.Dispose(); detailView = null; } return(detailView); }
private void ShowParametersDetailView(Type parametersObjectType) { ReportParametersObjectBase reportParametersObject = CreateReportParametersObject(parametersObjectType, ApplicationReportObjectSpaceProvider.Instance); if (reportParametersObject != null) { DetailView parametersDetailView = CreateParametersDetailView(reportParametersObject); if (parametersDetailView != null && reportParametersObject != null) { parametersDetailView.ViewEditMode = ViewEditMode.Edit; parametersDetailView.Caption = currentReport.DisplayName; DialogController controller = CreatePreviewReportDialogController(); controller.Tag = currentReport.DisplayName; controller.Accepting += Controller_Accepting; ShowViewParameters showViewParameters = new ShowViewParameters(); showViewParameters.Controllers.Add(controller); showViewParameters.CreatedView = parametersDetailView; showViewParameters.TargetWindow = TargetWindow.NewWindow; showViewParameters.Context = TemplateContext.PopupWindow; Application.ShowViewStrategy.ShowView(showViewParameters, new ShowViewSource(Frame, null)); } } }
public void SetupBeforePrint(XtraReport report, ReportParametersObjectBase parametersObject, CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty) { SetupReport(report, parametersObject, criteria, canApplyCriteria, sortProperty, canApplySortProperty); OnBeforeShowPreview(report); }
/// <summary> /// Вызов приватного метода ReportServiceController.ShowReportPreview() /// Public Morozov /// </summary> /// <param name="reportContainerHandle"></param> /// <param name="parametersObject"></param> /// <param name="criteria"></param> /// <param name="canApplyCriteria"></param> /// <param name="sortProperty"></param> /// <param name="canApplySortProperty"></param> /// <param name="showViewParameters"></param> private void ShowReportPreview(string reportContainerHandle, ReportParametersObjectBase parametersObject, CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty, ShowViewParameters showViewParameters) { var reportController = Frame.GetController<ReportServiceController>(); Guard.ArgumentNotNull(reportController, "reportController"); reportController.ShowPreview(reportContainerHandle, parametersObject, criteria, canApplyCriteria, sortProperty, canApplySortProperty, showViewParameters); }
private DetailView CreateParametersDetailView(ReportParametersObjectBase reportParametersObject) { Guard.ArgumentNotNull(reportParametersObject, "reportParametersObject"); CreateCustomParametersDetailViewEventArgs args = new CreateCustomParametersDetailViewEventArgs(reportParametersObject, Application); OnCreateCustomParametersDetail(args); DetailView detailView = null; if (args.Handled) { detailView = args.DetailView; } else { detailView = Application.CreateDetailView(reportParametersObject.ObjectSpace, reportParametersObject, false); } if (detailView != null && detailView.Items.Count == 0) { detailView.Dispose(); detailView = null; } return detailView; }
private void PrintReport(ReportParametersObjectBase GetReportParametersObject) { var fileName = String.Empty; ProcessedfileNameAddress = String.Empty; try { using (SaveFileDialog sfd = new SaveFileDialog()) { var agora = DateTime.Now.ToString("yyyy-MM-dd-HH-mm-ss"); fileName = $"{currentReport.DisplayName} {agora}"; sfd.FileName = fileName; sfd.Filter = "Formato Excel (*.xlsx)|*.xlsx"; if (sfd.ShowDialog() == DialogResult.OK) { CriteriaOperator filter = string.Empty; if (GetReportParametersObject != null) { filter = XpoObjectInCriteriaProcessingHelper.ParseCriteria(((XPObjectSpace)ObjectSpace).Session, GetReportParametersObject?.GetCriteria()?.LegacyToString()); } else { filter = string.Empty; } var sorting = GetReportParametersObject?.GetSorting(); XtraReport report = ReportDataProvider.ReportsStorage.LoadReport(currentReport); ReportsModuleV2 reportsModule = ReportsModuleV2.FindReportsModule(Application.Modules); if (reportsModule != null && reportsModule.ReportsDataSourceHelper != null) { if (GetReportParametersObject == null) { reportsModule.ReportsDataSourceHelper.SetupBeforePrint(report, null, null, true, null, true); } else { reportsModule.ReportsDataSourceHelper.SetupBeforePrint(report, null, filter, true, sorting, true); } XtraForm form = new XtraForm() { FormBorderStyle = FormBorderStyle.None, Size = new System.Drawing.Size(400, 20), ShowInTaskbar = false, StartPosition = FormStartPosition.CenterScreen, TopMost = true }; ProgressBarControl progressBar = new ProgressBarControl(); ReflectorBar reflectorBar = new ReflectorBar(progressBar); form.Controls.Add(progressBar); progressBar.Dock = DockStyle.Fill; XlsxExportOptions options = new XlsxExportOptions { ExportMode = XlsxExportMode.SingleFile, ShowGridLines = true, RawDataMode = false }; form.Show(); report.PrintingSystem.ProgressReflector = reflectorBar; report.ExportToXlsx(sfd.FileName, options); report.PrintingSystem.ResetProgressReflector(); form.Close(); form.Dispose(); ProcessedfileNameAddress = sfd.FileName; } } } } catch (Exception) { } if (!String.IsNullOrEmpty(ProcessedfileNameAddress)) { FileInfo fi = new FileInfo(ProcessedfileNameAddress); if (fi.Exists) { Form mainForm = (Form)Application.MainWindow.Template; AlertInfo info = new AlertInfo("Processo Finalizado!", $"{fileName} (Clique aqui para abrir"); alertControlCore.Show(mainForm, info); } } }
/// <summary> /// Инъекция выбранного объекта в параметры отчета /// </summary> /// <param name="reportParametersObject"></param> /// <param name="selectedObjects"></param> private void injectSelectedObjects(ReportParametersObjectBase reportParametersObject, System.Collections.IList selectedObjects) { if (reportParametersObject == null) return; if (selectedObjects == null) return; if (selectedObjects.Count > 0 && selectedObjects[0] != null) { object o = selectedObjects[0]; Type type = o.GetType(); bool any = false; foreach (var prop in reportParametersObject.GetType().GetProperties()) { if (prop.PropertyType == type && prop.CanWrite) { any = true; if (o is XPBaseObject) { o = reportParametersObject.ObjectSpace.GetObject(o); } prop.SetValue(reportParametersObject, o); } } if (!any) { throw new InvalidOperationException(); } } }
public void ShowPreview(string reportContainerHandle, ReportParametersObjectBase parametersObject, CriteriaOperator criteria, bool canApplyCriteria, SortProperty[] sortProperty, bool canApplySortProperty, ShowViewParameters showViewParameters) { base.ShowReportPreviewCore(reportContainerHandle, parametersObject, criteria, canApplyCriteria, sortProperty, canApplySortProperty, showViewParameters); }