Example #1
0
        public override void Render(RdlRender.Container box)
        {
            base.Render(box);

            RdlRender.FixedContainer rowBox = null;
            bool visible = true;

            if (_visibility != null && _visibility.IsHidden && _visibility.ToggleItem == null)
            {
                visible = false;
            }
            if (box != null && visible)
            {
                rowBox        = box.AddFixedContainer(this, Style);
                rowBox.Name   = "TableRow";
                rowBox.Width  = box.Width;
                rowBox.Height = _height.points;
            }
            decimal cellPos = 0;

            foreach (TableCell tc in _tableCells)
            {
                tc.Render(rowBox, ref cellPos);
            }
        }
Example #2
0
        public void Render(RdlRender.Container box, ref decimal cellPos)
        {
            base.Render(box);

            Table table = FindTable(this);

            RdlRender.FixedContainer cellBox = null;

            bool visible = true;

            if (table.TableColumns[_colIndex].Visibility != null && table.TableColumns[_colIndex].Visibility.IsHidden && table.TableColumns[_colIndex].Visibility.ToggleItem == null)
            {
                visible = false;
            }
            if (box != null && visible)
            {
                cellBox      = box.AddFixedContainer(this, Style);
                cellBox.Name = "TableCell";
                cellBox.Left = cellPos;
                for (int i = 0; i < _colSpan; i++)
                {
                    cellBox.Width += table.TableColumns[_colIndex + i].Width.points;
                }

                cellPos += cellBox.Width;
                cellBox.MatchParentHeight = true;
            }

            _reportItem.Render(cellBox);
        }
Example #3
0
        public override void Render(RdlRender.Container box)
        {
            RdlRender.FixedContainer headerBox  = null;
            RdlRender.FlowContainer  detailsBox = null;
            RdlRender.FixedContainer footerBox  = null;

            base.Render(box);

            bool visible = true;

            if (_visibility != null && _visibility.IsHidden && _visibility.ToggleItem == null)
            {
                visible = false;
            }
            if (box != null && visible)
            {
                _box      = box.AddFlowContainer(this, Style);
                _box.Name = _name;
                if (IsInCell)
                {
                    _box.Width             = box.Width;
                    _box.MatchParentHeight = true;
                }
                else
                {
                    _box.Top    = _top.points;
                    _box.Left   = _left.points;
                    _box.Width  = (_width == null) ? box.Width : _width.points;
                    _box.Height = _height.points;
                }
                _box.CanGrowHorizonally = false;

                if (_header != null)
                {
                    headerBox      = _box.AddFixedContainer(this, _header.Style);
                    headerBox.Name = "TableHeader";
                }
                if (_details != null)
                {
                    detailsBox      = _box.AddFlowContainer(this, _details.Style);
                    detailsBox.Name = "TableDetails";
                }
                if (_footer != null)
                {
                    footerBox      = _box.AddFixedContainer(this, _footer.Style);
                    footerBox.Name = "TableFooter";
                }
            }

            if (_header != null)
            {
                _header.Render(headerBox);
            }
            if (_details != null)
            {
                if (detailsBox != null)
                {
                    detailsBox.Top = headerBox.Height;
                }
                _details.Render(detailsBox);
            }
            if (_footer != null)
            {
                if (footerBox != null)
                {
                    footerBox.Top = detailsBox.Top + detailsBox.Height;
                }
                _footer.Render(footerBox);
            }

            // If the header or footer are reoeated, then add them to the repeat list of the details.
            if (_header != null && _header.RepeatOnNewPage && _box != null)
            {
                detailsBox.RepeatList.Add(headerBox);
            }
            if (_footer != null && _footer.RepeatOnNewPage && _box != null)
            {
                detailsBox.RepeatList.Add(footerBox);
            }
        }
Example #4
0
        public override void Render(RdlRender.Container box)
        {
            bool hidden = false;

            base.Render(box);

            RdlRuntime.Context parentContext = ParentContext(null);
            _context = new RdlRuntime.Context(
                parentContext,
                null,
                null,
                _grouping,
                _sortBy);

            if (_visibility != null && _visibility.ToggleItem == null)
            {
                hidden = _visibility.IsHidden;
            }

            // Loop through all of the rows in the data context
            decimal top = 0;

            while (true)
            {
                if (_grouping == null && _context.CurrentRow == null)
                {
                    break;
                }
                if (_grouping != null && _context.GroupIndex >= _context.GroupCount)
                {
                    break;
                }

                foreach (TableRow tr in _tableRows)
                {
                    RdlRender.FixedContainer rowBox = null;
                    if (box != null && !hidden)
                    {
                        rowBox             = box.AddFixedContainer(this, Style);
                        rowBox.Name        = "RowBox";
                        rowBox.Top         = top;
                        rowBox.Width       = box.Width;
                        rowBox.ContextBase = true;
                    }

                    tr.Render(rowBox);

                    if (box != null && !hidden)
                    {
                        top       += rowBox.Height;
                        box.Height = top;
                    }
                }

                if (_grouping == null)
                {
                    _context.MoveNext();
                }
                else
                {
                    _context.NextGroup();
                }
            }
        }
Example #5
0
        public override void Render(RdlRender.Container box)
        {
            RdlRender.FixedContainer headerBox  = null;
            RdlRender.FlowContainer  detailsBox = null;
            RdlRender.FixedContainer footerBox  = null;
            RdlRender.FlowContainer  groupRow   = null;

            _context = new RdlRuntime.Context(
                ParentContext(null),
                null,
                null,
                _grouping,
                _sortBy);

            base.Render(box);

            if (box != null)
            {
                _box = box.AddFlowContainer(this, Style);
                _box.CanGrowVertically = true;
                _box.Width             = box.Width;
                _box.Name = "TableGroup";
            }

            // Render the header
            decimal groupTop = 0;

            while (_context.GroupIndex < _context.GroupCount)
            {
                if (_box != null)
                {
                    groupRow = _box.AddFlowContainer(this, Style);
                    groupRow.CanGrowVertically = true;
                    groupRow.Width             = _box.Width;
                    groupRow.Top         = groupTop;
                    groupRow.Name        = "GroupRrow";
                    groupRow.ContextBase = true;
                }

                if (_header != null)
                {
                    if (_box != null)
                    {
                        headerBox     = groupRow.AddFixedContainer(this, _header.Style);
                        headerBox.Top = 0;
                        headerBox.CanGrowVertically = true;
                        headerBox.Width             = groupRow.Width;
                        headerBox.Name = "GroupHeader";
                    }

                    _header.Render(headerBox);
                }

                // Create a box to hold the details and tie that
                // box to any repeat lists referencing these details.
                if (_details != null && groupRow != null)
                {
                    detailsBox     = groupRow.AddFlowContainer(this, _details.Style);
                    detailsBox.Top = (headerBox == null)?0:headerBox.Height;
                    detailsBox.CanGrowVertically = true;
                    detailsBox.Width             = groupRow.Width;
                    detailsBox.Name = "GroupDetails";

                    // If the header or footer are repeated, then add them to the repeat list of the details.
                    if (_header != null && _header.RepeatOnNewPage)
                    {
                        detailsBox.RepeatList.Add(headerBox);
                    }
                    if (_footer != null && _footer.RepeatOnNewPage)
                    {
                        detailsBox.RepeatList.Add(footerBox);
                    }
                }

                // Render the details.
                if (_details != null)
                {
                    _details.Render(detailsBox);
                }

                // Render the footer.
                if (_footer != null)
                {
                    if (groupRow != null)
                    {
                        footerBox      = groupRow.AddFixedContainer(this, _footer.Style);
                        footerBox.Name = "GroupFooter";
                        footerBox.CanGrowVertically = true;
                        footerBox.Top = ((headerBox == null) ? 0 : headerBox.Height) +
                                        ((detailsBox == null) ? 0 : detailsBox.Height);
                        footerBox.Width = _box.Width;
                    }
                    _context.RowIndex = 0;
                    _footer.Render(footerBox);
                }

                if (groupRow != null)
                {
                    groupTop += groupRow.Height;
                }

                _context.NextGroup();
            }
        }