private void VisitTablixMemberCollection(TablixMemberCollection memberCollection, int rowMemberIndex, bool isTopLevel) { if (memberCollection == null) { return; } for (int i = 0; i < memberCollection.Count; i++) { Microsoft.ReportingServices.OnDemandReportRendering.TablixMember tablixMember = memberCollection[i]; if (tablixMember.IsStatic) { VisitTablixMember(tablixMember, rowMemberIndex, null); continue; } TablixDynamicMemberInstance tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMember.Instance; Stack <int> stack = new Stack <int>(); if (isTopLevel) { tablixDynamicMemberInstance.ResetContext(); } while (tablixDynamicMemberInstance.MoveNext()) { VisitTablixMember(tablixMember, rowMemberIndex, stack); } for (int j = 0; j < stack.Count; j++) { WriteDocumentMapEndContainer(); } } }
private void VisitTablixMemberCollection(TablixMemberCollection memberCollection, int rowMemberIndex, bool isTopLevel) { if (memberCollection != null) { for (int i = 0; i < memberCollection.Count; i++) { AspNetCore.ReportingServices.OnDemandReportRendering.TablixMember tablixMember = ((ReportElementCollectionBase <AspNetCore.ReportingServices.OnDemandReportRendering.TablixMember>)memberCollection)[i]; if (tablixMember.IsStatic) { this.VisitTablixMember(tablixMember, rowMemberIndex, null); } else { TablixDynamicMemberInstance tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMember.Instance; Stack <int> stack = new Stack <int>(); if (isTopLevel) { tablixDynamicMemberInstance.ResetContext(); } while (tablixDynamicMemberInstance.MoveNext()) { this.VisitTablixMember(tablixMember, rowMemberIndex, stack); } for (int j = 0; j < stack.Count; j++) { this.WriteDocumentMapEndContainer(); } } } } }
internal static int AddMembersToCurrentPage(Microsoft.ReportingServices.OnDemandReportRendering.Tablix tablix, TablixMember memberParent, int rowMemberIndexCell, State state, bool createDetail, bool noRows, PageContext context, bool useForPageHFEval, Interactivity interactivity) { TablixMemberCollection tablixMemberCollection = null; if (memberParent == null) { if (state == State.RowMembers) { tablixMemberCollection = tablix.RowHierarchy.MemberCollection; } else { if (state == State.ColMembers) { AddCornerToCurrentPage(tablix.Corner, context, useForPageHFEval, interactivity); } tablixMemberCollection = tablix.ColumnHierarchy.MemberCollection; } } else { tablixMemberCollection = memberParent.Children; } if (tablixMemberCollection == null) { if (state == State.RowMembers) { AddMembersToCurrentPage(tablix, null, memberParent.MemberCellIndex, State.DetailRows, createDetail, noRows, context, useForPageHFEval, interactivity); } else if (createDetail) { AddDetailCellToCurrentPage(tablix, memberParent.MemberCellIndex, rowMemberIndexCell, context, useForPageHFEval, interactivity); } if (!useForPageHFEval) { return(0); } return(1); } bool flag = true; bool flag2 = true; TablixMember tablixMember = null; TablixMemberInstance tablixMemberInstance = null; TablixDynamicMemberInstance tablixDynamicMemberInstance = null; int num = 0; bool flag3 = useForPageHFEval; for (int i = 0; i < tablixMemberCollection.Count; i++) { flag3 = useForPageHFEval; tablixMember = tablixMemberCollection[i]; if (noRows && tablixMember.HideIfNoRows) { if (interactivity == null) { continue; } flag3 = false; } flag = true; tablixMemberInstance = tablixMember.Instance; if (tablixMember.IsStatic) { flag2 = WalkTablixMember(tablixMember, ref flag3, interactivity); } else { tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMemberInstance; tablixDynamicMemberInstance.ResetContext(); flag = tablixDynamicMemberInstance.MoveNext(); if (flag) { flag2 = WalkTablixMember(tablixMember, ref flag3, interactivity); } } while (flag) { if (flag2) { int num2 = AddMembersToCurrentPage(tablix, tablixMember, rowMemberIndexCell, state, createDetail, noRows, context, flag3, interactivity); if (state != State.DetailRows) { interactivity?.RegisterGroupLabel(tablixMember.Group, context); if (tablixMember.TablixHeader != null) { if (num2 > 0) { RegisterItem.RegisterHiddenItem(tablixMember.TablixHeader.CellContents.ReportItem, context, flag3, interactivity); num++; } else if (interactivity != null) { RegisterItem.RegisterHiddenItem(tablixMember.TablixHeader.CellContents.ReportItem, context, useForPageHFEval: false, interactivity); } } } } if (tablixMember.IsStatic) { flag = false; continue; } flag = tablixDynamicMemberInstance.MoveNext(); if (flag) { flag3 = useForPageHFEval; flag2 = WalkTablixMember(tablixMember, ref flag3, interactivity); } } tablixMemberInstance = null; } return(num); }
private static int CollectTablixMembersContents(Microsoft.ReportingServices.OnDemandReportRendering.Tablix tablix, TablixMember memberParent, int rowMemberIndexCell, TablixState state, bool noRows, PageContext context, bool useForPageHFEval, Dictionary <string, List <object> > textBoxes) { TablixMemberCollection tablixMemberCollection = null; if (memberParent == null) { if (state == TablixState.RowMembers) { tablixMemberCollection = tablix.RowHierarchy.MemberCollection; } else { if (state == TablixState.ColMembers) { CollectTablixCornerContents(tablix.Corner, context, useForPageHFEval, textBoxes); } tablixMemberCollection = tablix.ColumnHierarchy.MemberCollection; } } else { tablixMemberCollection = memberParent.Children; } if (tablixMemberCollection == null) { if (state == TablixState.RowMembers) { CollectTablixMembersContents(tablix, null, memberParent.MemberCellIndex, TablixState.DetailRows, noRows, context, useForPageHFEval, textBoxes); } else { CollectDetailCellContents(tablix, memberParent.MemberCellIndex, rowMemberIndexCell, context, useForPageHFEval, textBoxes); } if (!useForPageHFEval) { return(0); } return(1); } bool flag = true; bool flag2 = true; TablixMember tablixMember = null; TablixMemberInstance tablixMemberInstance = null; TablixDynamicMemberInstance tablixDynamicMemberInstance = null; int num = 0; bool flag3 = useForPageHFEval; for (int i = 0; i < tablixMemberCollection.Count; i++) { flag3 = useForPageHFEval; tablixMember = tablixMemberCollection[i]; if (noRows && tablixMember.HideIfNoRows) { continue; } flag = true; tablixMemberInstance = tablixMember.Instance; if (tablixMember.IsStatic) { flag2 = ShouldBeCollected(tablixMember, ref flag3); } else { tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMemberInstance; tablixDynamicMemberInstance.ResetContext(); flag = tablixDynamicMemberInstance.MoveNext(); if (flag) { flag2 = ShouldBeCollected(tablixMember, ref flag3); } } while (flag) { if (flag2) { int num2 = CollectTablixMembersContents(tablix, tablixMember, rowMemberIndexCell, state, noRows, context, flag3, textBoxes); if (state != TablixState.DetailRows && tablixMember.TablixHeader != null && num2 > 0) { CollectTextBoxes(tablixMember.TablixHeader.CellContents.ReportItem, context, flag3, textBoxes); num++; } } if (tablixMember.IsStatic) { flag = false; continue; } flag = tablixDynamicMemberInstance.MoveNext(); if (flag) { flag3 = useForPageHFEval; flag2 = ShouldBeCollected(tablixMember, ref flag3); } } tablixMemberInstance = null; } return(num); }
private static int CollectTablixMembersContents(AspNetCore.ReportingServices.OnDemandReportRendering.Tablix tablix, TablixMember memberParent, int rowMemberIndexCell, TablixState state, bool noRows, PageContext context, bool useForPageHFEval, Dictionary <string, List <object> > textBoxes) { TablixMemberCollection tablixMemberCollection = null; if (memberParent == null) { switch (state) { case TablixState.RowMembers: tablixMemberCollection = tablix.RowHierarchy.MemberCollection; break; case TablixState.ColMembers: HeaderFooterEval.CollectTablixCornerContents(tablix.Corner, context, useForPageHFEval, textBoxes); goto default; default: tablixMemberCollection = tablix.ColumnHierarchy.MemberCollection; break; } } else { tablixMemberCollection = memberParent.Children; } if (tablixMemberCollection == null) { if (state == TablixState.RowMembers) { HeaderFooterEval.CollectTablixMembersContents(tablix, null, memberParent.MemberCellIndex, TablixState.DetailRows, noRows, context, useForPageHFEval, textBoxes); } else { HeaderFooterEval.CollectDetailCellContents(tablix, memberParent.MemberCellIndex, rowMemberIndexCell, context, useForPageHFEval, textBoxes); } if (!useForPageHFEval) { return(0); } return(1); } bool flag = true; bool flag2 = true; TablixMember tablixMember = null; TablixMemberInstance tablixMemberInstance = null; TablixDynamicMemberInstance tablixDynamicMemberInstance = null; int num = 0; bool useForPageHFEval2 = useForPageHFEval; for (int i = 0; i < tablixMemberCollection.Count; i++) { useForPageHFEval2 = useForPageHFEval; tablixMember = ((ReportElementCollectionBase <TablixMember>)tablixMemberCollection)[i]; if (!noRows || !tablixMember.HideIfNoRows) { flag = true; tablixMemberInstance = tablixMember.Instance; if (tablixMember.IsStatic) { flag2 = HeaderFooterEval.ShouldBeCollected(tablixMember, ref useForPageHFEval2); } else { tablixDynamicMemberInstance = (TablixDynamicMemberInstance)tablixMemberInstance; tablixDynamicMemberInstance.ResetContext(); flag = tablixDynamicMemberInstance.MoveNext(); if (flag) { flag2 = HeaderFooterEval.ShouldBeCollected(tablixMember, ref useForPageHFEval2); } } while (flag) { if (flag2) { int num2 = HeaderFooterEval.CollectTablixMembersContents(tablix, tablixMember, rowMemberIndexCell, state, noRows, context, useForPageHFEval2, textBoxes); if (state != TablixState.DetailRows && tablixMember.TablixHeader != null && num2 > 0) { HeaderFooterEval.CollectTextBoxes(tablixMember.TablixHeader.CellContents.ReportItem, context, useForPageHFEval2, textBoxes); num++; } } if (tablixMember.IsStatic) { flag = false; } else { flag = tablixDynamicMemberInstance.MoveNext(); if (flag) { useForPageHFEval2 = useForPageHFEval; flag2 = HeaderFooterEval.ShouldBeCollected(tablixMember, ref useForPageHFEval2); } } } tablixMemberInstance = null; } } return(num); }