private void Form1_Load(object sender, EventArgs e)
        {
            string        s          = "XtraPrinting Library";
            BrickGraphics brickGraph = printingSystem1.Graph;
            VisualBrick   visBrick   = new VisualBrick();

            // Specify the style
            BrickStyle bStyle = new BrickStyle(BorderSide.Bottom, 2, Color.Gold, Color.Navy,
                                               Color.DodgerBlue, new Font("Arial", 14, FontStyle.Bold | FontStyle.Italic),
                                               new BrickStringFormat(StringAlignment.Far, StringAlignment.Near));

            // Start the report generation.
            printingSystem1.Begin();

            // Create bricks.
            brickGraph.Modifier = BrickModifier.Detail;
            visBrick            = brickGraph.DrawString(s, new RectangleF(0, 0, 250, 40));
            visBrick            = brickGraph.DrawString(s, new RectangleF(0, 40, 250, 40));

            // Apply the style to the current brick.
            visBrick.Style = bStyle;

            // Finish the report generation.
            printingSystem1.End();
        }
        protected override VisualBrick CreateCellBrick(XRDataContainerControl control, VisualBrick parentBrick, XRDataRecord record, int fieldIndex, bool isHeader)
        {
            VisualBrick valueBrick = base.CreateCellBrick(control, parentBrick, record, fieldIndex, isHeader);

            float columnWidth = ((XRTreeListColumn)control.VisibleHeaders[fieldIndex]).Width;
            float columnPos   = 0;

            if (fieldIndex > 0)
            {
                columnPos -= ((XRTreeListNode)record).Level * TreeList.NodeIndent;
            }

            for (int j = 0; j < fieldIndex; j++)
            {
                columnPos += ((XRTreeListColumn)control.VisibleHeaders[j]).Width;
            }

            float curColWidth = fieldIndex == 0 ? columnWidth - ((XRTreeListNode)record).Level * TreeList.NodeIndent : columnWidth;

            valueBrick.Style = CreateBrickStyle(control, parentBrick, valueBrick, record, fieldIndex, isHeader);

            float brickHeight = GetBrickHeight(valueBrick, columnWidth, isHeader);

            valueBrick.Rect = new RectangleF(columnPos, 0, curColWidth, brickHeight);

            return(valueBrick);
        }
コード例 #3
0
        static void DrawPopulationInfo(PanelBrick panel, RectangleF r, string text, double portion, double scale)
        {
            RectangleF barRect = GetBarRect(r, portion, scale);

            r.Height = barRect.Top - r.Top;

            TextBrick textBrick = new TextBrick();

            textBrick.Sides        = BorderSide.None;
            textBrick.BackColor    = panel.BackColor;
            textBrick.Rect         = r;
            textBrick.ForeColor    = panel.Style.ForeColor;
            textBrick.Text         = text;
            textBrick.Font         = panel.Style.Font;
            textBrick.Padding      = new PaddingInfo(1, 0, 0, 0);
            textBrick.StringFormat = panel.Style.StringFormat;
            panel.Bricks.Add(textBrick);

            VisualBrick barBrick = new VisualBrick();

            barBrick.Sides       = BorderSide.All;
            barBrick.BackColor   = Color.FromArgb(232, 216, 195);
            barBrick.Rect        = barRect;
            barBrick.BorderColor = Color.FromArgb(173, 148, 116);
            barBrick.BorderStyle = BrickBorderStyle.Inset;
            panel.Bricks.Add(barBrick);
        }
コード例 #4
0
        static void DrawPopulationInfo(PanelBrick panel, RectangleF r, string text, double portion, double scale)
        {
            RectangleF barRect = GetBarRect(r, portion, scale);

            r.Height = barRect.Top - r.Top;

            BrickStyle textStyle = new BrickStyle()
            {
                ForeColor = panel.Style.ForeColor,
                BackColor = Color.Transparent,
                Font      = panel.Style.Font
            };

            textStyle.ChangeAlignment(TextAlignment.BottomLeft);
            TextBrick textBrick = new TextBrick(textStyle);

            textBrick.Rect = r;
            textBrick.Text = text;
            panel.Bricks.Add(textBrick);

            BrickStyle barStyle = new BrickStyle()
            {
                Sides       = BorderSide.All,
                BorderColor = Color.FromArgb(173, 148, 116),
                BorderStyle = BrickBorderStyle.Inset,
                BorderWidth = 1,
                BackColor   = Color.FromArgb(232, 216, 195),
            };
            VisualBrick barBrick = new VisualBrick(barStyle);

            barBrick.Rect = barRect;
            panel.Bricks.Add(barBrick);
        }
コード例 #5
0
        protected override bool AfterPrintOnPage(IList <int> indices, RectangleF brickBounds, RectangleF clipRect, Page page, int pageIndex, int pageCount, Action <Brick, RectangleF> callback)
        {
            if (!IsHeaderBrick)
            {
                RecordPrintCache headerCache = parentBrick.PrintCache.HeaderCache;
                VisualBrick      headerBrick = headerCache.Brick;

                RectangleF headerBrickBounds = page.GetBrickBounds(headerBrick);
                RectangleF brickRect         = page.GetBrickBounds(this);

                RecordPrintCache currentCache = parentBrick.PrintCache.GetCacheByBrick(this);
                int cacheIndex = parentBrick.PrintCache.RecordsCache.IndexOf(currentCache);

                float delta = brickRect.Top - headerBrickBounds.Bottom;

                RecordPrintCache prevCache      = null;
                float            prevNodeHeight = 1;
                if (cacheIndex > 0)
                {
                    prevCache      = parentBrick.PrintCache.RecordsCache[cacheIndex - 1] as RecordPrintCache;
                    prevNodeHeight = prevCache.Brick.Rect.Height;
                }

                if (delta >= 0 && delta < prevNodeHeight)
                {
                    this.AddCellPosition(XRDataCellPosition.FirstOnPage);

                    if (prevCache != null)
                    {
                        ((DataRecordBrick)prevCache.Brick).AddCellPosition(XRDataCellPosition.LastOnPage);
                    }
                }
            }
            return(base.AfterPrintOnPage(indices, brickBounds, clipRect, page, pageIndex, pageCount, callback));
        }
        protected override void CreateBricksForRecord(XRDataRecord record, PanelBrick parentBrick, bool isHeader, ref float actualHeight)
        {
            XRTreeListNode     node = record as XRTreeListNode;
            PrintNodeEventArgs args = new PrintNodeEventArgs(node);

            if (!isHeader)
            {
                TreeList.OnPrintNode(args);
            }

            if (args.SuppressType == NodeSuppressType.Leave)
            {
                int nodeLevel = node.Level;

                TreeListNodeBrick nodeBrick = new TreeListNodeBrick(TreeList, (DataContainerBrick)parentBrick, isHeader);
                nodeBrick.Style     = XRControlStyle.Default.Clone() as XRControlStyle;
                nodeBrick.Separable = false;

                RecordPrintCache cache = new TreeListNodePrintCache(nodeBrick, node.Level);

                List <VisualBrick>   childBricks    = new List <VisualBrick>();
                List <XRFieldHeader> visibleHeaders = TreeList.VisibleHeaders;

                for (int i = 0; i < visibleHeaders.Count; i++)
                {
                    VisualBrick valueBrick = CreateCellBrick(TreeList, parentBrick, node, i, isHeader);
                    childBricks.Add(valueBrick);
                }

                CorrectBrickBounds(nodeBrick, childBricks, nodeLevel * TreeList.NodeIndent, actualHeight);
                float nodeHeight = nodeBrick.Rect.Height;

                VisualBrickHelper.SetBrickBounds(nodeBrick, nodeBrick.Rect, TreeList.Dpi);

                parentBrick.Bricks.Add(nodeBrick);

                actualHeight += nodeHeight;

                if (!IsDesignMode)
                {
                    if (isHeader)
                    {
                        ((DataContainerBrick)parentBrick).PrintCache.HeaderCache = cache;
                    }
                    else
                    {
                        ((DataContainerBrick)parentBrick).PrintCache.RecordsCache.Add(cache);
                    }
                }
            }

            if (args.SuppressType != NodeSuppressType.SuppressWithChildren)
            {
                foreach (XRTreeListNode childNode in node.Nodes)
                {
                    CreateBricksForRecord(childNode, parentBrick, isHeader, ref actualHeight);
                }
            }
        }
コード例 #7
0
        // Override the XRControl.PutStateToBrick method.
        protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            // Call the PutStateToBrick method of the base class.            
            base.PutStateToBrick(brick, ps);

            // Get the Panel brick which represents the current progress receiveBar control.
            PanelBrick panel = (PanelBrick)brick;
            panel.BackColor = Color.Transparent;
            int width = Convert.ToInt32(Math.Round(panel.Rect.Width));
            int height = Convert.ToInt32(Math.Round(panel.Rect.Height));

            Bitmap bitmap = new Bitmap(width, height);
            bitmap.SetResolution(300, 300);
            GdiGraphics gBmp = new GdiGraphics(Graphics.FromImage(bitmap), ps);

            //int colorWidth = Convert.ToInt32(Math.Round(width * (Position / MaxValue)));

            //int colorWid = Convert.ToInt32(Math.Round((MaxValue-width) * (Position / MaxValue)));

            gBmp.FillEllipse(new SolidBrush(panel.Style.ForeColor), new Rectangle(0, 0, width, height));
           

            //gBmp.FillRectangle(new SolidBrush(panel.Style.ForeColor), new Rectangle(0, 0, colorWidth, height));


            // gBmp.FillRectangle(new SolidBrush(panel.Style.BackColor), new Rectangle(0,colorWidth, colorWid, height));



            //String drawString = Position.ToString();
            ////
            //drawString += " %";
            //Font drawFont = new Font("Frutiger LT Arabic 55", 9);
            //SolidBrush drawBrush = new SolidBrush(Color.Black);

            //StringFormat drawFormat = new StringFormat();
            //drawFormat.Alignment = StringAlignment.Center;
            //drawFormat.LineAlignment = StringAlignment.Center;

            //gBmp.DrawString(drawString, drawFont, drawBrush, new Rectangle(0, 0, width, height), drawFormat);

            gBmp.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias;

            ImageBrick image = new ImageBrick();
            image.Rect = new RectangleF(0, 0, panel.Rect.Width, panel.Rect.Height);
            image.SizeMode = ImageSizeMode.Squeeze;
            image.Image = bitmap;
            image.BackColor = Color.Transparent;

            image.Sides = BorderSide.None;
            

            panel.Bricks.Add(image);
            panel.BackColor = Color.Transparent;
        }
コード例 #8
0
        private static void CreateLinks(XtraReport report)
        {
            List <VisualBrick> linkBricks   = new List <VisualBrick>();
            List <VisualBrick> pageBricks   = new List <VisualBrick>();
            List <TargetBrick> targetBricks = new List <TargetBrick>();

            foreach (Page page in report.Pages)
            {
                NestedBrickIterator iterator = new NestedBrickIterator(page.InnerBricks);
                while (iterator.MoveNext())
                {
                    VisualBrick brick = iterator.CurrentBrick as VisualBrick;
                    if (brick != null && brick.Value != null)
                    {
                        string valueString = brick.Value.ToString();

                        if (valueString.StartsWith("Link_"))
                        {
                            linkBricks.Add(brick);
                        }

                        if (valueString.StartsWith("Target_"))
                        {
                            targetBricks.Add(new TargetBrick()
                            {
                                Brick = brick, Page = page
                            });
                        }

                        if (valueString.StartsWith("PageBrick_"))
                        {
                            pageBricks.Add(brick);
                        }
                    }
                }
            }

            foreach (VisualBrick link in linkBricks)
            {
                string      key    = link.Value.ToString().Substring(5);
                TargetBrick target = targetBricks.Find(targetBrick => (string)targetBrick.Brick.Value == String.Concat("Target_", key));
                if (target != null)
                {
                    target.Brick.AnchorName = key;
                    link.Url            = key;
                    link.NavigationPair = BrickPagePair.Create(target.Brick, target.Page);
                    VisualBrick pageBrick = pageBricks.Find(brick => (string)brick.Value == String.Concat("PageBrick_", key));
                    if (pageBrick != null)
                    {
                        pageBrick.Text = (target.Page.Index + 1).ToString();
                    }
                }
            }
        }
        protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            base.PutStateToBrick(brick, ps);
            PanelBrick  panel       = (PanelBrick)brick;
            VisualBrick progressBar = new VisualBrick(this);

            progressBar.Sides     = BorderSide.None;
            progressBar.BackColor = panel.Style.ForeColor;
            progressBar.Rect      = new RectangleF(0, 0, panel.Rect.Width * (Position / MaxValue),
                                                   panel.Rect.Height);
            panel.Bricks.Add(progressBar);
        }
        public RecordPrintCache GetCacheByBrick(VisualBrick brick)
        {
            foreach (RecordPrintCache recordCache in RecordsCache)
            {
                if (recordCache.Brick == brick)
                {
                    return(recordCache);
                }
            }

            return(null);
        }
コード例 #11
0
        protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            base.PutStateToBrick(brick, ps);
            float      itemHeight = GetItemHeight(brick.Rect);
            RectangleF r          = GetGraphicsRect(brick.Rect, itemHeight);
            double     scale      = GetScale();

            for (int i = 0; i <= controlData.GetUpperBound(0); i++)
            {
                DrawPopulationInfo((PanelBrick)brick, r, (string)controlData[i, 0], (double)controlData[i, 1], scale);
                r.Offset(0, itemHeight);
            }
        }
コード例 #12
0
        protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            base.PutStateToBrick(brick, ps);
            PanelBrick panelBrick = (PanelBrick)brick;

            Graphics gr = Graphics.FromHwnd(new IntPtr(0));

            gr.PageUnit = GraphicsUnit.Document;
            RectangleF rect = RectangleF.Empty;

            try {
                if (displayTitle && !string.IsNullOrEmpty(TitleText) && titleFont != null)
                {
                    rect.Size = gr.MeasureString(TitleText, titleFont, (int)panelBrick.Rect.Width);
                    TextBrick textBrick = CreateTextBrick(panelBrick);
                    textBrick.Rect      = rect;
                    textBrick.ForeColor = TitleColor;
                    textBrick.Font      = TitleFont;
                    textBrick.Text      = TitleText;
                }
                if (!string.IsNullOrEmpty(this.Text))
                {
                    TextBrick textBrick2 = CreateTextBrick(panelBrick);
                    textBrick2.ForeColor = this.ForeColor;
                    textBrick2.Font      = this.Font;
                    textBrick2.Text      = this.Text;

                    if (this.contextTextAlignment == ContextTextAlignmentEnum.NextToTitleText)
                    {
                        float width = Math.Max(0, panelBrick.Rect.Width - rect.Width);
                        SizeF size  = gr.MeasureString(this.Text, this.Font, (int)width);
                        textBrick2.Rect = new RectangleF(rect.Right + 10f, rect.Top, width, size.Height);
                    }
                    else
                    {
                        StringFormat sf = new StringFormat();
                        sf.LineAlignment = GraphicsConvertHelper.ToVertStringAlignment(this.TextAlignment);
                        sf.Alignment     = GraphicsConvertHelper.ToHorzStringAlignment(this.TextAlignment);

                        SizeF size = gr.MeasureString(this.Text, this.Font, (int)panelBrick.Rect.Width, sf);
                        textBrick2.Rect         = new RectangleF(rect.Left, rect.Bottom + 10f, panelBrick.Rect.Width, size.Height);
                        textBrick2.StringFormat = new BrickStringFormat(sf);
                    }
                }
            }
            catch {
            }
            finally {
                gr.Dispose();
            }
        }
コード例 #13
0
        public override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            if (brick is PanelBrick)
            {
                float actualHeight = 0f;

                brick.PrintingSystem = ps;

                CreateHeaders((PanelBrick)brick, ref actualHeight);
                CreateDetails((PanelBrick)brick, ref actualHeight);

                CorrectBrickBounds(brick, actualHeight);
            }
        }
コード例 #14
0
 void Viewer_DocumentPreviewMouseClick(DependencyObject d, DocumentPreviewMouseEventArgs e)
 {
     if (e.Brick is LabelBrick)
     {
         VisualBrick brick = e.Brick as VisualBrick;
         if (e.Brick.Value != null && e.Brick.Value.ToString() != String.Empty)
         {
             Sort(e.Brick.Value.ToString(), Viewer.DocumentSource as XtraReport);
         }
         else
         {
             MessageBox.Show(String.Format("Cell value: {0}", brick.TextValue.ToString()));
         }
     }
 }
コード例 #15
0
        protected virtual void CorrectBrickBounds(VisualBrick brick, float actualHeight)
        {
            RectangleF actualBounds;

            if (IsDesignMode)
            {
                actualBounds = ContainerControl.BoundsF;
            }
            else
            {
                actualBounds = new RectangleF(0, 0, ContainerControl.BoundsF.Width, actualHeight);
            }

            VisualBrickHelper.SetBrickBounds(brick, actualBounds, ContainerControl.Dpi);
        }
        protected override void CreateBricksForRecord(XRDataRecord record, PanelBrick parentBrick, bool isHeader, ref float actualHeight)
        {
            PrintRecordEventArgs args = new PrintRecordEventArgs(record);

            if (!isHeader)
            {
                Grid.OnPrintRecord(args);
            }

            if (!args.Cancel)
            {
                GridRecordBrick recordBrick = new GridRecordBrick(Grid, (DataContainerBrick)parentBrick, isHeader);
                recordBrick.Style     = XRControlStyle.Default.Clone() as XRControlStyle;
                recordBrick.Separable = false;

                RecordPrintCache cache = new RecordPrintCache(recordBrick);

                List <VisualBrick>   childBricks    = new List <VisualBrick>();
                List <XRFieldHeader> visibleHeaders = Grid.VisibleHeaders;

                for (int i = 0; i < visibleHeaders.Count; i++)
                {
                    VisualBrick valueBrick = CreateCellBrick(Grid, parentBrick, record, i, isHeader);
                    childBricks.Add(valueBrick);
                }

                CorrectBrickBounds(recordBrick, childBricks, 0, actualHeight);
                float recordHeight = recordBrick.Rect.Height;

                VisualBrickHelper.SetBrickBounds(recordBrick, recordBrick.Rect, Grid.Dpi);

                parentBrick.Bricks.Add(recordBrick);

                actualHeight += recordHeight;

                if (!IsDesignMode)
                {
                    if (isHeader)
                    {
                        ((DataContainerBrick)parentBrick).PrintCache.HeaderCache = cache;
                    }
                    else
                    {
                        ((DataContainerBrick)parentBrick).PrintCache.RecordsCache.Add(cache);
                    }
                }
            }
        }
        protected float GetBrickHeight(VisualBrick valueBrick, float columnWidth, bool isHeader)
        {
            float brickHeight;

            if ((!isHeader && TableControl.CellAutoHeight) || (isHeader && TableControl.HeaderAutoHeight))
            {
                SizeF tempSize = this.MeasureTextSize(valueBrick.Text, columnWidth, TableControl.Dpi, valueBrick.Style, TableControl.RootReport.PrintingSystem);
                brickHeight = tempSize.Height;
            }
            else
            {
                brickHeight = GraphicsUnitConverter.Convert(isHeader ? TableControl.HeaderHeight : TableControl.CellHeight, GraphicsDpi.HundredthsOfAnInch, TableControl.Dpi);
            }

            return(brickHeight);
        }
 protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
 {
     if (this.LineStyle != System.Drawing.Drawing2D.DashStyle.Custom)
     {
         base.PutStateToBrick(brick, ps);
     }
     else
     {
         PanelBrick panel = (PanelBrick)brick;
         panel.BackColor = Color.Transparent;
         panel.Sides     = BorderSide.None;
         int i;
         if (this.LineDirection == LineDirection.Horizontal)
         {
             for (i = 0; i < Convert.ToInt32(panel.Rect.Width / (this.Dash + this.Space)); i++)
             {
                 LineBrick dashBrick = new LineBrick();
                 dashBrick.Sides     = BorderSide.None;
                 dashBrick.BackColor = panel.Style.ForeColor;
                 dashBrick.Rect      = new RectangleF(i * (this.Dash + this.Space), panel.Rect.Height / 2 - this.LineWidth / 2, this.dash, this.LineWidth);
                 panel.Bricks.Add(dashBrick);
             }
             LineBrick endBrick = new LineBrick();
             endBrick.Sides     = BorderSide.None;
             endBrick.BackColor = panel.Style.ForeColor;
             endBrick.Rect      = new RectangleF(i * (this.Dash + this.Space), panel.Rect.Height / 2 - this.LineWidth / 2, panel.Rect.Width - i * (this.Dash + this.Space), this.LineWidth);
             panel.Bricks.Add(endBrick);
         }
         else if (this.LineDirection == LineDirection.Vertical)
         {
             for (i = 0; i < Convert.ToInt32(panel.Rect.Height / (this.Dash + this.Space)); i++)
             {
                 LineBrick dashBrick = new LineBrick();
                 dashBrick.Sides     = BorderSide.None;
                 dashBrick.BackColor = panel.Style.ForeColor;
                 dashBrick.Rect      = new RectangleF(panel.Rect.Width / 2 - this.LineWidth / 2, i * (this.Dash + this.Space), this.LineWidth, this.Dash);
                 panel.Bricks.Add(dashBrick);
             }
             LineBrick endBrick = new LineBrick();
             endBrick.Sides     = BorderSide.None;
             endBrick.BackColor = panel.Style.ForeColor;
             endBrick.Rect      = new RectangleF(panel.Rect.Width / 2 - this.LineWidth / 2, i * (this.Dash + this.Space), this.LineWidth, panel.Rect.Height - i * (this.Dash + this.Space));
             panel.Bricks.Add(endBrick);
         }
     }
 }
コード例 #19
0
        private static List <ReportControlDescriptor> GetControlsOnPage(XtraReport r, int pageNumber)
        {
            Dictionary <string, ReportControlDescriptor> controls = new Dictionary <string, ReportControlDescriptor>();
            Page            p  = r.PrintingSystem.Document.Pages[pageNumber - 1];
            BrickEnumerator be = p.GetEnumerator();

            while (be.MoveNext())
            {
                VisualBrick             vb = be.Current as VisualBrick;
                ReportControlDescriptor mo = new ReportControlDescriptor(((XRControl)vb.BrickOwner).Name, ((XRControl)vb.BrickOwner).Report.ToString());
                if (!controls.ContainsKey(mo.FullName))
                {
                    controls.Add(mo.FullName, mo);
                }
            }
            return(controls.Values.ToList());
        }
        protected override void WriteContentTo(XRWriteInfo writeInfo, VisualBrick brick)
        {
            if ((writeInfo != null) && (brick is SubreportBrick))
            {
                XRDataContainerPrintCache printCache  = new XRDataContainerPrintCache(this);
                SubreportDocumentBand     controlBand = new SubreportDocumentBand(brick.Rect);

                ((SubreportBrick)brick).DocumentBand = controlBand;

                InitializeControlArea(DocumentBandKind.PageHeader, controlBand, writeInfo, printCache);
                InitializeControlArea(DocumentBandKind.Detail, controlBand, writeInfo, printCache);
                this.WriteContentToCore(writeInfo, brick);
            }
            else
            {
                base.WriteContentTo(writeInfo, brick);
            }
        }
        protected override VisualBrick CreateCellBrick(XRDataContainerControl control, VisualBrick parentBrick, XRDataRecord record, int fieldIndex, bool isHeader)
        {
            VisualBrick valueBrick = base.CreateCellBrick(control, parentBrick, record, fieldIndex, isHeader);

            float columnWidth = ((XRGridColumn)control.VisibleHeaders[fieldIndex]).Width;
            float columnPos   = 0;

            for (int j = 0; j < fieldIndex; j++)
            {
                columnPos += ((XRGridColumn)control.VisibleHeaders[j]).Width;
            }

            valueBrick.Style = CreateBrickStyle(control, parentBrick, valueBrick, record, fieldIndex, isHeader);

            float brickHeight = GetBrickHeight(valueBrick, columnWidth, isHeader);

            valueBrick.Rect = new RectangleF(columnPos, 0, columnWidth, brickHeight);

            return(valueBrick);
        }
コード例 #22
0
ファイル: Util.cs プロジェクト: ewin66/dev
        public static void GenerateSinglePageReport(XtraReport report, bool createDocument, int additionHeight)
        {
            float sumHeight = 0;

            if (createDocument)
            {
                report.CreateDocument();
            }

            XtraPageSettingsBase pageSettings = report.PrintingSystem.PageSettings;

            XtraPageSettingsBase.ApplyPageSettings(pageSettings, PaperKind.Custom,
                                                   new Size(pageSettings.Bounds.Width, pageSettings.Bounds.Height * report.Pages.Count),
                                                   pageSettings.Margins, pageSettings.MinMargins, pageSettings.Landscape);

            NestedBrickIterator iterator = new NestedBrickIterator(report.Pages[0].InnerBricks);

            while (iterator.MoveNext())
            {
                if (iterator.CurrentBrick is VisualBrick)
                {
                    VisualBrick brick     = (VisualBrick)iterator.CurrentBrick;
                    float       bottomPos = brick.Rect.Bottom;

                    if (bottomPos > sumHeight)
                    {
                        sumHeight = bottomPos;
                    }
                }
            }

            sumHeight = GraphicsUnitConverter.Convert(sumHeight, GraphicsUnit.Document, GraphicsUnit.Inch) * 100;

            int totalPageHeight = pageSettings.Margins.Top + pageSettings.Margins.Bottom + Convert.ToInt32(sumHeight);

            totalPageHeight += additionHeight;

            XtraPageSettingsBase.ApplyPageSettings(pageSettings, PaperKind.Custom,
                                                   new Size(pageSettings.Bounds.Width, totalPageHeight),
                                                   pageSettings.Margins, pageSettings.MinMargins, pageSettings.Landscape);
        }
        public float GetTopIndent()
        {
            float               sumHeight  = 0;
            XtraReportMain      mainReport = documentViewer1.DocumentSource as XtraReportMain;
            NestedBrickIterator iterator   = new NestedBrickIterator(mainReport.Pages[mainReport.Pages.Count - 1].InnerBricks);

            while (iterator.MoveNext())
            {
                if (iterator.CurrentBrick is VisualBrick)
                {
                    VisualBrick brick     = (VisualBrick)iterator.CurrentBrick;
                    float       bottomPos = brick.Rect.Bottom;

                    if (bottomPos > sumHeight)
                    {
                        sumHeight = bottomPos;
                    }
                }
            }
            sumHeight = GraphicsUnitConverter.Convert(sumHeight, GraphicsUnit.Document, GraphicsUnit.Inch) * 100;
            return(sumHeight);
        }
コード例 #24
0
        protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            base.PutStateToBrick(brick, ps);
            UpdateData();
            if (!isCompatible.HasValue)
            {
                isCompatible = CheckCompatibility();
            }
            if (controlData.Count == 0 || !isCompatible.Value)
            {
                return;
            }
            float      itemHeight = GetItemHeight(brick.Rect);
            RectangleF r          = GetGraphicsRect(brick.Rect, itemHeight);
            double     scale      = GetScale();

            for (int i = 0; i < controlData.Count; i++)
            {
                DrawPopulationInfo((PanelBrick)brick, r, controlData[i].Item1, controlData[i].Item2, scale);
                r.Offset(0, itemHeight);
            }
        }
        // Override the XRControl.PutStateToBrick method.
        protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
        {
            // Call the PutStateToBrick method of the base class.
            base.PutStateToBrick(brick, ps);

            // Get the Panel brick which represents the current progress bar control.
            PanelBrick panel = (PanelBrick)brick;

            // Create a new VisualBrick to be inserted into the panel brick.
            VisualBrick progressBar = new VisualBrick(this);

            // Hide borders.
            progressBar.Sides = BorderSide.None;

            // Set the foreground color to fill the completed area of a progress bar.
            progressBar.BackColor = panel.Style.ForeColor;

            // Calculate the rectangle to be filled by the foreground color.
            progressBar.Rect = new RectangleF(0, 0, panel.Rect.Width * (Position / MaxValue),
                                              panel.Rect.Height);

            // Add the VisualBrick to the panel.
            panel.Bricks.Add(progressBar);
        }
 public PrintNodeCellEventArgs(XRTreeListNode currentNode, XRTreeListColumn column, VisualBrick brick, BrickStyle style) : base(column, brick, style)
 {
     this.node = currentNode;
 }
コード例 #27
0
        protected virtual VisualBrick CreateCellBrick(XRDataContainerControl control, VisualBrick parentBrick, XRDataRecord record, int fieldIndex, bool isHeader)
        {
            VisualBrick valueBrick;

            int absoluteIndex = fieldIndex;

            if (!isHeader && !IsDesignMode)
            {
                XRFieldHeader header = control.VisibleHeaders[fieldIndex];
                absoluteIndex = control.Headers.IndexOf(header);
            }

            object value = record[absoluteIndex];

            if (value is bool)
            {
                valueBrick = new DataCellCheckBrick(ContainerControl);
                ((DataCellCheckBrick)valueBrick).Checked = Convert.ToBoolean(value);
            }
            else
            {
                valueBrick      = new DataCellTextBrick(ContainerControl);
                valueBrick.Text = Convert.ToString(value);
            }

            valueBrick.TextValue = value;

            if (fieldIndex == 0)
            {
                ((IDataCellBrick)valueBrick).CellPosition |= XRDataCellPosition.LeftMost;
            }
            if (fieldIndex == control.VisibleHeaders.Count - 1)
            {
                ((IDataCellBrick)valueBrick).CellPosition |= XRDataCellPosition.RightMost;
            }

            return(valueBrick);
        }
        protected override BrickStyle CreateBrickStyle(XRDataContainerControl control, VisualBrick parentBrick, VisualBrick valueBrick, XRDataRecord record, int fieldIndex, bool isHeader)
        {
            BrickStyle style = base.CreateBrickStyle(control, parentBrick, valueBrick, record, fieldIndex, isHeader);

            if (!isHeader)
            {
                PrintCellEventArgs printCellArgs = new PrintNodeCellEventArgs((XRTreeListNode)record, (XRTreeListColumn)control.VisibleHeaders[fieldIndex], valueBrick, style);
                TreeList.OnPrintNodeCell((PrintNodeCellEventArgs)printCellArgs);
            }

            return(style);
        }
コード例 #29
0
 public TreeListNodePrintCache(VisualBrick brick, int nodeLevel) : base(brick)
 {
     this.nodeLevel = nodeLevel;
 }
 // Render the control in the Designer's Preview and in the document.
 protected override void PutStateToBrick(VisualBrick brick, PrintingSystemBase ps)
 {
     base.PutStateToBrick(brick, ps);
     brick.Text = this.Number.ToString();
 }