예제 #1
0
        public void SetReport(Report report, Page pages)
        {
            this.pages = pages;
            this.report = report;

            this.MinHeight = (int)report.PageWidthPoints + (rep_padding * 2);
            this.MinWidth = (int)report.PageHeightPoints + (rep_padding * 2);
        }
예제 #2
0
        public void SetReport(Report report, Page pages)
        {
            this.pages = pages;
            this.report = report;

            this.QueueResize();
            GdkWindow.Invalidate();
        }
예제 #3
0
        public void SetReport(Report report, Page pages)
        {
            this.pages = pages;
            this.report = report;

            this.NaturalWidth = (int)report.PageWidthPoints + rep_padding * 2;
            this.NaturalHeight = (int)report.PageHeightPoints + rep_padding * 2;
        }
        private string GenerateXaml(fyiReporting.RDL.Page page)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append("<Canvas xmlns=\"http://schemas.microsoft.com/client/2007\">");
            ProcessPage(sb, page, new Rectangle(0, 0, PixelsX(_Pages.PageWidth), PixelsY(_Pages.PageHeight)));
            sb.Append("</Canvas>");
            return(sb.ToString());
        }
예제 #5
0
        public void SetReport(Report report, Page pages)
        {
            this.pages = pages;
            this.report = report;
            this.WidthRequest = (int)report.PageWidthPoints + rep_padding * 2;
            this.HeightRequest = (int)report.PageHeightPoints + rep_padding * 2;

            GdkWindow.Invalidate ();
        }
예제 #6
0
파일: Pages.cs 프로젝트: mnisl/OD
		public void NextOrNew()
		{
			if (_currentPage == this.LastPage)
				AddPage(new Page(PageCount+1));
			else
			{
				_currentPage = _pages[_currentPage.PageNumber];  
				_currentPage.SetEmpty();			
			}
		}
예제 #7
0
		public void NextOrNew()
		{
			if (_currentPage == this.LastPage)
				AddPage(new Page(PageCount+1));
			else
			{
				_currentPage = _pages[_currentPage.PageNumber];  
				_currentPage.SetEmpty();			
			}
			//Allows using PageNumber in report body.
			//Important! This feature is NOT included in RDL specification!
			//PageNumber will be wrong if element using it will cause carry to next page after render.
			Report.PageNumber = _currentPage.PageNumber;
		}
예제 #8
0
        public void RunPage(Page pgs)
        {
            //TODO : Why Cairo is broken when CurrentThread.CurrentCulture is set to local ?
            //At Linux when CurrentCulture is set to local culture, Cairo rendering is serious broken
            CultureInfo oldci = Thread.CurrentThread.CurrentCulture;
            Thread.CurrentThread.CurrentCulture = CultureInfo.InvariantCulture;

            try
            {
                ProcessPage (g, pgs);
            } finally {
                Thread.CurrentThread.CurrentCulture = oldci;
            }
        }
        private string CreateXamlFromPage(int pageNo)
        {
            try
            {
                if (_XamlPages[pageNo] == null)           // if already built don't do again
                {
                    // Need to build the Xaml
                    fyiReporting.RDL.Page page = _Pages[pageNo];

                    _XamlPages[pageNo] = GenerateXaml(page);
                }
                return(_XamlPages[pageNo]);
            }
            finally
            {
                _Pages.CleanUp();
            }
        }
예제 #10
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;
        }
예제 #11
0
 /// <summary>
 /// Draw: accounting for scrolling and zoom factors
 /// </summary>
 /// <param name="_pgs"></param>
 /// <remarks>This the equivalent of RdlViewer.PageDrawing.Draw</remarks>
 public void RunPage(Page _pgs)
 {
     ProcessPage(g, _pgs);
 }
예제 #12
0
			internal Page CurrentPage;		// the page this reportitem was last put on; 
			internal WorkClass()
			{
				MC=null;
				BottomPosition=float.NaN;
				CurrentPage=null;
			}
예제 #13
0
		// routine to determine if text is considered to be a duplicate;
		//  ie: same as previous text and on same page
		private bool RunTextIsDuplicate(TextboxRuntime tbr, string t, Page p)
		{
			if (this._HideDuplicates == null)
				return false;
			if (t == tbr.PreviousText && p == tbr.PreviousPage)
				return true;

			return false;
		}
예제 #14
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;
		}
예제 #15
0
		internal void RecordPageReference(Report rpt, Page p, Row r)
		{
			if (_ExprReferences == null)
				return;
			foreach (string refr in _ExprReferences)
			{
				p.AddPageExpressionRow(rpt, refr, r);
			}
		}
예제 #16
0
		internal void RunPage(IPresent ip)
		{
			Pages pgs = new Pages(this);
			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);

				ip.RunPages(pgs);
			}
			finally
			{
				pgs.CleanUp();		// always want to make sure we clean this up since 
			}

			return;
		}
예제 #17
0
		public Pages BuildPages()
		{
			PageNumber.RuntimePageNumber = 1;		// reset page numbers
			TotalPages.RuntimePageCount = 1;

			Pages pgs = new Pages(this);
			pgs.PageHeight = this.PageHeight.Points;
			pgs.PageWidth = this.PageWidth.Points;
			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() && 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 (_PageHeader != null)
					_PageHeader.RunPage(pgs);
				if (_PageFooter != null)
					_PageFooter.RunPage(pgs);
			}
			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 
			}

			return pgs;
		}
		internal Page RunPageNew(Pages pgs, Page p)
		{
			if (p.IsEmpty())			// if the page is empty it won't help to create another one
				return p;

			// Do we need a new page or have should we fill out more body columns
			Body b = OwnerReport.Body;
			int ccol = b.IncrCurrentColumn(pgs.Report);	// bump to next column

			float top = OwnerReport.TopOfPage;	// calc top of page

			if (ccol < b.Columns)
			{		// Stay on same page but move to new column
				p.XOffset = 
					((OwnerReport.Width.Points + b.ColumnSpacing.Points) * ccol);
				p.YOffset = top;
				p.SetEmpty();			// consider this page empty
			}
			else
			{		// Go to new page
				b.SetCurrentColumn(pgs.Report, 0);
				pgs.NextOrNew();
				p = pgs.CurrentPage;
				p.YOffset = top;
				p.XOffset = 0;
			}

			return p;
		}
예제 #19
0
            internal Row OutputRow; // the previous outputed row

            #endregion Fields

            #region Constructors

            internal WorkClass()
            {
                OutputRow = null;
                OutputPage = null;
            }
			internal Page CurrentPage;		// the page this reportitem was last put on; 
			internal WorkClass()
			{
				m_Mc=null;
				m_BottomPosition=float.NaN;
				CurrentPage=null;
			}
예제 #21
0
		public void AddPage(Page p)
		{
			_pages.Add(p);
			_currentPage = p;
		}