Exemple #1
0
        internal void RunPhase2()
        {
            try
            {
                Config.ReportSettings.OnStartProgress(Report);
                PrepareToFirstPass(false);
                RunReportPages();

                ResetLogicalPageNumber();
                if (Report.DoublePass && !Report.Aborted)
                {
                    finalPass = true;
                    PrepareToSecondPass();
                    RunReportPages();
                }
            }
            finally
            {
                Report.OnFinishReport(EventArgs.Empty);
                Config.ReportSettings.OnFinishProgress(Report);
                Report.SetOperation(ReportOperation.None);

                // limit the prepared pages
                if (Report.MaxPages > 0)
                {
                    while (PreparedPages.Count > Report.MaxPages)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }
            }
        }
Exemple #2
0
        internal bool Run(bool runDialogs, bool append, bool resetDataState, ReportPage page)
        {
            date = SystemFake.DateTime.Now;
            Report.SetOperation(ReportOperation.Running);
            ResetDesigningFlag();

            // don't reset the data state if we run the hyperlink's detail page or refresh a report.
            // This is necessary to keep data filtering settings alive
            if (resetDataState)
            {
                InitializeData();
            }
            Report.OnStartReport(EventArgs.Empty);

            try
            {
                if (runDialogs && !RunDialogs())
                {
                    return(false);
                }

                Config.ReportSettings.OnStartProgress(Report);
                PrepareToFirstPass(append);
                RunReportPages(page);

                ResetLogicalPageNumber();
                if (Report.DoublePass && !Report.Aborted)
                {
                    finalPass = true;
                    PrepareToSecondPass();
                    RunReportPages(page);
                }
            }
            finally
            {
                Report.OnFinishReport(EventArgs.Empty);
                Config.ReportSettings.OnFinishProgress(Report);
                Report.SetOperation(ReportOperation.None);

                // limit the prepared pages
                if (Report.MaxPages > 0)
                {
                    while (PreparedPages.Count > Report.MaxPages)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }

                // Limit the prepared pages again because pagesLimit has better priority than Report.MaxPages.
                if (pagesLimit > 0)
                {
                    while (PreparedPages.Count > pagesLimit)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }
            }
            return(true);
        }
Exemple #3
0
        internal bool Run(bool runDialogs, bool append, bool resetDataState, ReportPage page)
        {
            RunPhase1(resetDataState);

            try
            {
                if (runDialogs && !RunDialogs())
                {
                    return(false);
                }

                Config.ReportSettings.OnStartProgress(Report);
                PrepareToFirstPass(append);
                RunReportPages(page);

                ResetLogicalPageNumber();
                if (Report.DoublePass && !Report.Aborted)
                {
                    finalPass = true;
                    PrepareToSecondPass();
                    RunReportPages(page);
                }
            }
            finally
            {
                RestoreTemplate();
                Report.OnFinishReport(EventArgs.Empty);
                Config.ReportSettings.OnFinishProgress(Report);
                Report.SetOperation(ReportOperation.None);

                // limit the prepared pages
                if (Report.MaxPages > 0)
                {
                    while (PreparedPages.Count > Report.MaxPages)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }

                // Limit the prepared pages again because pagesLimit has better priority than Report.MaxPages.
                if (pagesLimit > 0)
                {
                    while (PreparedPages.Count > pagesLimit)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }
            }
            return(true);
        }
Exemple #4
0
        internal void RunPhase2(int?pagesLimit = null)
        {
            if (pagesLimit != null)
            {
                this.pagesLimit = pagesLimit.Value;
            }
            try
            {
                Config.ReportSettings.OnStartProgress(Report);
                PrepareToFirstPass(false);
                RunReportPages();

                ResetLogicalPageNumber();
                if (Report.DoublePass && !Report.Aborted)
                {
                    finalPass = true;
                    PrepareToSecondPass();
                    RunReportPages();
                }
            }
            finally
            {
                Report.OnFinishReport(EventArgs.Empty);
                Config.ReportSettings.OnFinishProgress(Report);
                Report.SetOperation(ReportOperation.None);

                // limit the prepared pages
                if (Report.MaxPages > 0)
                {
                    while (PreparedPages.Count > Report.MaxPages)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }

                // Limit the prepared pages again because pagesLimit has better priority than Report.MaxPages.
                if (pagesLimit > 0)
                {
                    while (PreparedPages.Count > pagesLimit)
                    {
                        PreparedPages.RemovePage(PreparedPages.Count - 1);
                    }
                }
            }
        }