Exemplo n.º 1
0
        /// <summary>
        /// Creates an OverlayBand in the specified ReportPage.
        /// </summary>
        /// <param name="page">The ReportPage instance.</param>
        /// <returns>The OverlayBand instance.</returns>
        public static OverlayBand CreateOverlayBand(ReportPage page)
        {
            OverlayBand overlay = new OverlayBand();

            page.Bands.Add(overlay);
            overlay.CreateUniqueName();
            return(overlay);
        }
Exemplo n.º 2
0
        public void EditPage()
        {
            if (Disabled)
            {
                return;
            }

            using (Report report = new Report())
            {
                ReportPage page = FPreparedPages.GetPage(PageNo - 1);

                OverlayBand overlay = new OverlayBand();
                overlay.Name   = "Overlay";
                overlay.Width  = (page.PaperWidth - page.LeftMargin - page.RightMargin) * Units.Millimeters;
                overlay.Height = (page.PaperHeight - page.TopMargin - page.BottomMargin) * Units.Millimeters;

                // remove bands, convert them to Text objects if necessary
                ObjectCollection allObjects = page.AllObjects;
                foreach (Base c in allObjects)
                {
                    if (c is BandBase)
                    {
                        BandBase band = c as BandBase;
                        if (band.HasBorder || band.HasFill)
                        {
                            TextObject textObj = new TextObject();
                            textObj.Bounds = band.Bounds;
                            textObj.Border = band.Border.Clone();
                            textObj.Fill   = band.Fill.Clone();
                            overlay.Objects.Add(textObj);
                        }

                        for (int i = 0; i < band.Objects.Count; i++)
                        {
                            ReportComponentBase obj = band.Objects[i];
                            if (!(obj is BandBase))
                            {
                                obj.Anchor = AnchorStyles.Left | AnchorStyles.Top;
                                obj.Dock   = DockStyle.None;
                                obj.Left   = obj.AbsLeft;
                                obj.Top    = obj.AbsTop;
                                overlay.Objects.Add(obj);
                                i--;
                            }
                        }
                    }
                }

                page.Clear();
                page.Overlay = overlay;
                report.Pages.Add(page);
                page.SetReport(report);
                page.SetRunning(false);

                if (report.DesignPreviewPage())
                {
                    page = report.Pages[0] as ReportPage;
                    FPreparedPages.ModifyPage(PageNo - 1, page);
                    Refresh();
                }
            }
        }