예제 #1
0
파일: RptTableInst.cs 프로젝트: Daoting/dt
        /// <summary>
        /// 切换页面时在新页重复表头
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void OnPageBegin(object sender, RptPage e)
        {
            if (_header != null && (_item as RptTable).RepeatHeader)
            {
                int index             = _data.Current;
                RptTblHeaderInst inst = _header.Clone() as RptTblHeaderInst;

                RptRegion region = new RptRegion(
                    e.Rows.Start,
                    _region.Col,
                    inst.Item.RowSpan,
                    inst.Item.ColSpan);
                inst.Region = region;

                double height = _item.Part.GetRowHeight(region.Row + region.RowSpan - e.Rows.Start);
                if (e.Rows.Size.Count > 0 && height != e.Rows.Size[0])
                {
                    e.Rows.Size[0] = height;
                }
                inst.Output();
                _data.Current = index;

                // 顺次下移
                if (_curPart != null)
                {
                    _curPart.Region.Row = region.Row + region.RowSpan;
                }
            }
        }