コード例 #1
0
        List<TableRow> _Items; // list of TableRow

        #endregion Fields

        #region Constructors

        internal TableRows(ReportDefn r, ReportLink p, XmlNode xNode)
            : base(r, p)
        {
            TableRow t;
            _Items = new List<TableRow>();
            _CanGrow = false;
            // Loop thru all the child nodes
            foreach(XmlNode xNodeLoop in xNode.ChildNodes)
            {
                if (xNodeLoop.NodeType != XmlNodeType.Element)
                    continue;
                switch (xNodeLoop.Name)
                {
                    case "TableRow":
                        t = new TableRow(r, this, xNodeLoop);
                        break;
                    default:
                        t=null;		// don't know what this is
                        // don't know this element - log it
                        OwnerReport.rl.LogError(4, "Unknown TableRows element '" + xNodeLoop.Name + "' ignored.");
                        break;
                }
                if (t != null)
                    _Items.Add(t);
            }
            if (_Items.Count == 0)
                OwnerReport.rl.LogError(8, "For TableRows at least one TableRow is required.");
            else
                _Items.TrimExcess();
        }
コード例 #2
0
 public void TableRowStart(TableRow tr, Row row)
 {
 }
コード例 #3
0
 public void TableRowEnd(TableRow tr, Row row)
 {
 }
コード例 #4
0
        public void TableRowStart(TableRow tr, Row row)
        {
            tw.Write("\t<tr");
            ReportLink rl = tr.Parent.Parent;
            Visibility v = null;
            Textbox togText = null; // holds the toggle text box if any
            if (rl is Details)
            {
                var d = (Details) rl;
                v = d.Visibility;
                togText = d.ToggleTextbox;
            }
            else if (rl.Parent is TableGroup)
            {
                var tg = (TableGroup) rl.Parent;
                v = tg.Visibility;
                togText = tg.ToggleTextbox;
            }

            if (v != null &&
                v.Hidden != null)
            {
                bool bHide = v.Hidden.EvaluateBoolean(r, row);
                if (bHide)
                    tw.Write(" style=\"display:none;\"");
            }

            if (togText != null && togText.Name != null)
            {
                string name = togText.Name.Nm + "_" + togText.RunCount(r).ToString();
                tw.Write(" id='{0}'", name);
            }

            tw.Write(">");
        }
コード例 #5
0
 public void TableRowEnd(TableRow tr, Row row)
 {
     tw.WriteLine("</tr>");
 }
コード例 #6
0
 public void TableRowStart(TableRow tr, Row row)
 {
     _ExcelRow++;
     _Excel.SetRowHeight(_ExcelRow, tr.HeightOfRow(r, this.GetGraphics, row));
     _ExcelCol = -1;
 }
コード例 #7
0
        public void TableRowStart(TableRow tr, Row row)
        {
            Table t = null;
            Header head = null;
            for (ReportLink rl = tr.Parent.Parent; rl != null; rl = rl.Parent)
            {
                if (rl is Table)
                {
                    t = rl as Table;
                    break;
                }
                else if (rl is Header)
                    head = rl as Header;
            }
            if (t == null)
                return;

            tw.Write(@"\trowd \trql\trgaph108\trrh0\trleft236");
            if (head != null && head.RepeatOnNewPage)       // repeat table header on multiple pages
                tw.Write(@"\trhdr");

            int pos=0;

            int ci=0;

            int columnIndex = 0;

            for (int i = 0; i < tr.TableCells.Items.Count; i++)
            {
                var cell = tr.TableCells.Items[i];

                for (int offset = 0; offset < cell.ColSpan; offset++)
                {
                    var column = t.TableColumns[columnIndex];
                    pos += column.Width.Twips;
                }

                string border = @"\clbrdrt\brdrth\clbrdrl\brdrs\clbrdrb\brdrs\clbrdrr\brdrs";

                var style = cell.ReportItems[0].Style;

                if (style != null)
                {
                    StyleInfo si = style.GetStyleInfo(r, row);
                    border = string.Format(@"\clbrdrt\{0}\clbrdrl\{1}\clbrdrb\{2}\clbrdrr\{3}",
                        GetBorderStyle(si.BStyleTop),
                        GetBorderStyle(si.BStyleLeft),
                        GetBorderStyle(si.BStyleBottom),
                        GetBorderStyle(si.BStyleRight));
                }

                tw.Write(@"{1}\cellx{0}", pos, border);
            }

            tw.Write(@"\pard \intbl");
        }
コード例 #8
0
 public void TableRowEnd(TableRow tr, Row row)
 {
     tw.WriteLine(@"\row");
 }
コード例 #9
0
        string TableGetRowElementName(TableRow tr)
        {
            for (ReportLink rl = tr.Parent; !(rl is Table); rl = rl.Parent)
            {
                if (rl is Header || rl is Footer)
                    return null;

                if (rl is TableGroup)
                {
                    TableGroup tg = rl as TableGroup;
                    Grouping g = tg.Grouping;
                    return g.DataElementName;
                }

                if (rl is Details)
                {
                    Table t = (Table) stkReportItem.Peek();

                    return t.DetailDataElementOutput == DataElementOutputEnum.NoOutput?
                        null: t.DetailDataElementName;
                }
            }

            return null;
        }
コード例 #10
0
 public void TableRowStart(TableRow tr, Row row)
 {
     string n = TableGetRowElementName(tr);
     if (n == null)
         return;
     PushContainer(n);
 }
コード例 #11
0
 public void TableRowEnd(TableRow tr, Row row)
 {
     string n = TableGetRowElementName(tr);
     if (n == null)
         return;
     this.PopContainer(n);
 }
コード例 #12
0
            internal float CalcHeight; // dynamic when CanGrow true

            #endregion Fields

            #region Constructors

            internal WorkClass(TableRow tr)
            {
                CalcHeight = tr.Height.Points;
            }
コード例 #13
0
 public void TableRowEnd(TableRow tr, Row r)
 {
     tw.WriteLine();
 }