/// <summary> /// 构造报表项实例 /// </summary> public override Task Build() { RptRootInst inst = Root.Inst; RptTblFooterInst footer = new RptTblFooterInst(this); if (inst.CurrentTable != null) { inst.CurrentTable.Footer = footer; } inst.CurrentParent = footer; return(BuildChild()); }
/// <summary> /// 切换页面时在旧页重复表尾 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnPageEnd(object sender, PageDefine e) { if (_footer != null && (_item as RptTable).RepeatFooter) { int index = _data.Current; RptTblFooterInst inst = _footer.Clone() as RptTblFooterInst; RptRegion region = new RptRegion( e.Start + e.Count, _region.Col, inst.Item.RowSpan, inst.Item.ColSpan); inst.Region = region; inst.Output(); _data.Current = index; // 顺次下移 if (_curPart != null) { _curPart.Region.Row = region.Row + region.RowSpan; } } }