internal float HeightOfRow(Report rpt, System.Drawing.Graphics g, Row r) { WorkClass wc = GetWC(rpt); if (this.Visibility != null && Visibility.IsHidden(rpt, r)) { wc.CalcHeight = 0; return(0); } float defnHeight = _Height.Points; if (!_CanGrow) { wc.CalcHeight = defnHeight; return(defnHeight); } TableColumns tcs = this.Table.TableColumns; float height = 0; foreach (Textbox tb in this._GrowList) { int ci = tb.TC.ColIndex; if (tcs[ci].IsHidden(rpt, r)) // if column is hidden don't use in calculation { continue; } height = Math.Max(height, tb.RunTextCalcHeight(rpt, g, r)); } wc.CalcHeight = Math.Max(height, defnHeight); return(wc.CalcHeight); }
internal bool IsHidden(Report rpt, Row r) { if (this._Visibility == null) { return(false); } return(_Visibility.IsHidden(rpt, r)); }
internal float HeightOfRows(Pages pgs, Row r) { if (this.Visibility != null && Visibility.IsHidden(pgs.Report, r)) { return(0); } return(_TableRows.HeightOfRows(pgs, r)); }
internal void Run(IPresent ip, Row row) { if (this.Visibility != null && Visibility.IsHidden(ip.Report(), row)) { return; } ip.TableRowStart(this, row); _TableCells.Run(ip, row); ip.TableRowEnd(this, row); return; }
internal void RunPage(Pages pgs, Row row) { if (this.Visibility != null && Visibility.IsHidden(pgs.Report, row)) { return; } _TableCells.RunPage(pgs, row); WorkClass wc = GetWC(pgs.Report); pgs.CurrentPage.YOffset += wc.CalcHeight; return; }
internal void Run(IPresent ip, Rows rs, int start, int end) { // if no rows output or rows just leave if (rs == null || rs.Data == null) { return; } if (this.Visibility != null && Visibility.IsHidden(ip.Report(), rs.Data[start]) && Visibility.ToggleItem == null) { return; // not visible } for (int r = start; r <= end; r++) { _TableRows.Run(ip, rs.Data[r]); } return; }
internal void RunPage(Pages pgs, Rows rs, int start, int end, float footerHeight) { // if no rows output or rows just leave if (rs == null || rs.Data == null) { return; } if (this.Visibility != null && Visibility.IsHidden(pgs.Report, rs.Data[start])) { return; // not visible } Page p; Row row; for (int r = start; r <= end; r++) { p = pgs.CurrentPage; // this can change after running a row row = rs.Data[r]; float hrows = HeightOfRows(pgs, row); // height of all the rows in the details float height = p.YOffset + hrows; if (r == end) { height += footerHeight; // on last row; may need additional room for footer } if (height > pgs.BottomOfPage) { p = OwnerTable.RunPageNew(pgs, p); OwnerTable.RunPageHeader(pgs, row, false, null); _TableRows.RunPage(pgs, row, true); // force checking since header + hrows might be > BottomOfPage } else { _TableRows.RunPage(pgs, row, hrows > pgs.BottomOfPage); } } return; }