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));
                }
            }
        }
Пример #10
0
 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();
                }
            }
        }
Пример #15
0
 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);
 }