コード例 #1
0
        /// <summary>
        /// Build the Pages for this report.
        /// </summary>
        /// <returns></returns>
        public Pages BuildPages()
        {
            PageNumber = 1;                     // reset page numbers
            TotalPages = 1;

            Pages pgs = new Pages(this);

            pgs.PageHeight = _Report.PageHeight.Points;
            pgs.PageWidth  = _Report.PageWidth.Points;
            try
            {
                Page p = new Page(1);                                           // kick it off with a new page
                pgs.AddPage(p);

                // Create all the pages
                _Report.Body.RunPage(pgs);

                if (pgs.LastPage.IsEmpty() && pgs.PageCount > 1)                // get rid of extraneous pages which
                {
                    pgs.RemoveLastPage();                                       //   can be caused by region page break at end
                }
                // Now create the headers and footers for all the pages (as needed)
                if (_Report.PageHeader != null)
                {
                    _Report.PageHeader.RunPage(pgs);
                }
                if (_Report.PageFooter != null)
                {
                    _Report.PageFooter.RunPage(pgs);
                }
                // clear out any runtime clutter
                foreach (Page pg in pgs)
                {
                    pg.ResetPageExpressions();
                }

                pgs.SortPageItems();             // Handle ZIndex ordering of pages
            }
            catch (Exception e)
            {
                rl.LogError(8, "Exception running report\r\n" + e.Message + "\r\n" + e.StackTrace);
            }
            finally
            {
                pgs.CleanUp();                          // always want to make sure we clean this up since
                _Cache = new RCache();
            }

            return(pgs);
        }
コード例 #2
0
ファイル: ReportDefn.cs プロジェクト: steev90/opendental
        internal void RunPage(IPresent ip)
        {
            Pages pgs = new Pages(ip.Report());

            try
            {
                Page p = new Page(1);                                           // kick it off with a new page
                pgs.AddPage(p);

                // Create all the pages
                _Body.RunPage(pgs);

                if (pgs.LastPage.IsEmpty())                                     // get rid of extraneous pages which
                {
                    pgs.RemoveLastPage();                                       //   can be caused by region page break at end
                }
                // Now create the headers and footers for all the pages (as needed)
                if (_PageHeader != null)
                {
                    _PageHeader.RunPage(pgs);
                }
                if (_PageFooter != null)
                {
                    _PageFooter.RunPage(pgs);
                }

                pgs.SortPageItems();             // Handle ZIndex ordering of pages

                ip.RunPages(pgs);
            }
            finally
            {
                pgs.CleanUp();                          // always want to make sure we clean this up since
                if (_DataSourcesDefn != null)
                {
                    _DataSourcesDefn.CleanUp(pgs.Report);                       // ensure datasets are cleaned up
                }
            }

            return;
        }
コード例 #3
0
ファイル: Report.cs プロジェクト: guostong/My-FyiReporting
        /// <summary>
        /// Build the Pages for this report.
        /// </summary>
        /// <returns></returns>
        public Pages BuildPages()
        {
            PageNumber = 1;		// reset page numbers
            TotalPages = 1;

            Pages pgs = new Pages(this);
            pgs.PageHeight = _Report.PageHeight.Points;
            pgs.PageWidth = _Report.PageWidth.Points;
            try
            {
                Page p = new Page(1);				// kick it off with a new page
                pgs.AddPage(p);

                // Create all the pages
                _Report.Body.RunPage(pgs);

                if (pgs.LastPage.IsEmpty() && pgs.PageCount > 1) // get rid of extraneous pages which
                    pgs.RemoveLastPage();			//   can be caused by region page break at end

                // Now create the headers and footers for all the pages (as needed)
                if (_Report.PageHeader != null)
                    _Report.PageHeader.RunPage(pgs);
                if (_Report.PageFooter != null)
                    _Report.PageFooter.RunPage(pgs);
                // clear out any runtime clutter
                foreach (Page pg in pgs)
                    pg.ResetPageExpressions();

                pgs.SortPageItems();             // Handle ZIndex ordering of pages
            }
            catch (Exception e)
            {
                rl.LogError(8, "Exception running report\r\n" + e.Message + "\r\n" + e.StackTrace);
            }
            finally
            {
                pgs.CleanUp();		// always want to make sure we clean this up since
                _Cache = new RCache();
            }

            return pgs;
        }
コード例 #4
0
ファイル: ReportDefn.cs プロジェクト: mnisl/OD
		internal void RunPage(IPresent ip)
		{
			Pages pgs = new Pages(ip.Report());
			try
			{
				Page p = new Page(1);				// kick it off with a new page
				pgs.AddPage(p);

				// Create all the pages
				_Body.RunPage(pgs);

				if (pgs.LastPage.IsEmpty())			// get rid of extraneous pages which
					pgs.RemoveLastPage();			//   can be caused by region page break at end

				// Now create the headers and footers for all the pages (as needed)
				if (_PageHeader != null)
					_PageHeader.RunPage(pgs);
				if (_PageFooter != null)
					_PageFooter.RunPage(pgs);

                pgs.SortPageItems();             // Handle ZIndex ordering of pages

				ip.RunPages(pgs);
			}
			finally
			{
				pgs.CleanUp();		// always want to make sure we clean this up since 
				if (_DataSourcesDefn != null)
					_DataSourcesDefn.CleanUp(pgs.Report);	// ensure datasets are cleaned up
			}

			return;
		}