private static KeepWithGroup DetermineKeepWithGroup(bool isHeader, TableHeaderFooterRows rows, bool noKeepWith) { if (noKeepWith || rows == null || !rows.RepeatOnNewPage) { return(KeepWithGroup.None); } if (isHeader) { return(KeepWithGroup.After); } return(KeepWithGroup.Before); }
private void CreateHeaderFooter(List <ShimTableMember> rowGroups, TableHeaderFooterRows headerFooterRows, KeepWithGroup keepWithGroup, Tablix owner, ShimTableMember parent, bool isFixedTableHeader) { if (headerFooterRows != null) { int count = headerFooterRows.Count; int num = rowGroups.Count; for (int i = 0; i < count; i++) { rowGroups.Add(new ShimTableMember(this, owner, parent, num, headerFooterRows[i], keepWithGroup, isFixedTableHeader)); num++; } } }
internal void UpdateHeaderFooter(TableHeaderFooterRows headerRows, TableHeaderFooterRows footerRows) { if (m_children != null && (headerRows != null || footerRows != null)) { int num = headerRows?.Count ?? 0; int num2 = footerRows?.Count ?? 0; int num3 = m_children.Length; for (int i = 0; i < num; i++) { ((ShimTableMember)m_children[i]).UpdateRow(headerRows[i]); } for (int num4 = num2; num4 > 0; num4--) { ((ShimTableMember)m_children[num3 - num4]).UpdateRow(footerRows[num2 - num4]); } } }
public void UpdateHeaderFooter(TableHeaderFooterRows headerRows, TableHeaderFooterRows footerRows) { if (base.m_children != null) { if (headerRows == null && footerRows == null) { return; } int num = (headerRows != null) ? headerRows.Count : 0; int num2 = (footerRows != null) ? footerRows.Count : 0; int num3 = base.m_children.Length; for (int i = 0; i < num; i++) { ((ShimTableMember)base.m_children[i]).UpdateRow(((TableRowCollection)headerRows)[i]); } for (int num4 = num2; num4 > 0; num4--) { ((ShimTableMember)base.m_children[num3 - num4]).UpdateRow(((TableRowCollection)footerRows)[num2 - num4]); } } }
private TablixMember[] CreateInnerHierarchy(Tablix owner, ShimTableMember parent, TableHeaderFooterRows headerRows, TableHeaderFooterRows footerRows, TableGroupCollection subGroups, TableRowsCollection detailRows, ref int dynamicSubgroupChildIndex) { List <ShimTableMember> list = new List <ShimTableMember>(); bool noKeepWith = subGroups == null && detailRows == null; CreateHeaderFooter(list, headerRows, DetermineKeepWithGroup(isHeader: true, headerRows, noKeepWith), owner, parent, parent == null && owner.RenderTable.FixedHeader); if (subGroups != null) { dynamicSubgroupChildIndex = list.Count; CreateInnerDynamicGroups(list, subGroups, owner, parent); } else if (detailRows != null) { dynamicSubgroupChildIndex = list.Count; list.Add(new ShimTableMember(this, owner, parent, dynamicSubgroupChildIndex, detailRows)); } CreateHeaderFooter(list, footerRows, DetermineKeepWithGroup(isHeader: false, footerRows, noKeepWith), owner, parent, isFixedTableHeader: false); return(list.ToArray()); }