Exemplo n.º 1
0
        /// <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());
        }
Exemplo n.º 2
0
        /// <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;
                }
            }
        }