@@ -294,7 +294,7 @@ private string BuildWithRowHierarchy()
294294 // At the top-level, each of the <TablixMember> elements will be their own row. We then look in each member to determine grouping, searching and nested row relationships.
295295 for ( var i = 0 ; i < this . Tablix . TablixRowHierarchy . TablixMembers . Count ; i ++ )
296296 {
297- rowIdx = this . ProcessTablixMembers (
297+ rowIdx = this . ProcessRowHierarchyTablixMembers (
298298 rowsSb ,
299299 null ,
300300 null ,
@@ -332,7 +332,7 @@ private string BuildWithRowHierarchy()
332332 var membersUptoHierarchy = new List < TablixMember > ( ) ;
333333 this . FindAllMembersUptoAtHierarchyLevel ( this . Tablix . TablixColumnHierarchy . TablixMembers [ j ] , membersUptoHierarchy , i + 1 ) ;
334334
335- this . ProcessTablixColumnMembers (
335+ this . ProcessColumnHierarchyTablixMembers (
336336 colsSb ,
337337 null ,
338338 null ,
@@ -370,7 +370,7 @@ private string BuildWithRowHierarchy()
370370 break ;
371371 }
372372
373- colIdx = this . ProcessTablixColumnMembers (
373+ colIdx = this . ProcessColumnHierarchyTablixMembers (
374374 colsSb ,
375375 null ,
376376 null ,
@@ -453,7 +453,7 @@ private void FindAllSubGroupHeaders(TablixMember currentMember, List<TablixMembe
453453 }
454454 }
455455
456- private int ProcessTablixColumnMembers (
456+ private int ProcessColumnHierarchyTablixMembers (
457457 StringBuilder sb ,
458458 List < IDictionary < string , object > > dataSetResults ,
459459 IGrouping < object , IDictionary < string , object > > groupResults ,
@@ -503,26 +503,8 @@ int currentColumnIndx
503503
504504 this . FindAllSubGroupHeaders ( tablixMember , headers ) ;
505505
506- //if (tablixMember.TablixMembers.Any())
507- //{
508- // // Do we have enough rows to print this member and its children?
509- // if (this.TablixColumns.Count > currentColumnIndx + tablixMember.TablixMembers.Count + 1)
510- // {
511- // currentColumnIndx = this.ProcessColumnResults(currentColumnIndx, tablixMember, prevTablixMembers, groupResults, sb);
512- // }
513-
514- // foreach (var childMember in tablixMember.TablixMembers)
515- // {
516- // currentColumnIndx = this.ProcessTablixColumnMembers(sb, dataSetResults, groupedResult, childMember, prevTablixMembers, currentColumnIndx);
517-
518- // prevTablixMembers.Remove(childMember);
519- // }
520- //}
521- //else
522- //{
523- currentColumnIndx = this . ProcessColumnResults ( currentColumnIndx , tablixMember , prevTablixMembers , groupResults , sb ) ;
524- //}
525-
506+ currentColumnIndx = this . ProcessColumnHierarchyResults ( currentColumnIndx , tablixMember , prevTablixMembers , groupResults , sb ) ;
507+
526508 this . Tablix . GroupedResultsKeys . Remove ( groupedResult . Key . ToString ( ) . Replace ( " " , "" ) ) ;
527509
528510 // As previous headers will have information stored against them from previous groupings we need to clear that information out.
@@ -549,30 +531,21 @@ int currentColumnIndx
549531 }
550532
551533 currentColumnIndx = after ;
552- }
553- //else if (tablixMember.TablixMembers.Any())
554- //{
555- // prevTablixMembers.Add(tablixMember);
556-
557- // foreach (var childMember in tablixMember.TablixMembers)
558- // {
559- // currentColumnIndx = this.ProcessTablixColumnMembers(sb, dataSetResults, groupResults, childMember, prevTablixMembers, currentColumnIndx);
560- // }
561- //}
534+ }
562535 else
563536 {
564537 if ( tablixMember . ToggleItem != null )
565538 {
566539 tablixMember . ToggleItemKey = string . Join ( '-' , this . Tablix . GroupedResultsKeys ) ;
567540 }
568541
569- currentColumnIndx = this . ProcessColumnResults ( currentColumnIndx , tablixMember , prevTablixMembers , groupResults , sb ) ;
542+ currentColumnIndx = this . ProcessColumnHierarchyResults ( currentColumnIndx , tablixMember , prevTablixMembers , groupResults , sb ) ;
570543 }
571544
572545 return currentColumnIndx ;
573546 }
574547
575- private int ProcessTablixMembers (
548+ private int ProcessRowHierarchyTablixMembers (
576549 StringBuilder sb ,
577550 List < IDictionary < string , object > > dataSetResults ,
578551 IGrouping < object , IDictionary < string , object > > groupResults ,
@@ -692,12 +665,12 @@ private int ProcessTablixMembers(
692665 // Do we have enough rows to print this member and its children?
693666 if ( this . TablixRows . Count > currentRowIndx + tablixMember . TablixMembers . Count && ! tablixMember . TablixMembers . Any ( tm => tm . TablixHeader != null ) )
694667 {
695- currentRowIndx = this . ProcessResults ( currentRowIndx , tablixMember , prevTablixMembers , groupedResult , tablixHierarchyStructure , pageBreak , sb ) ;
668+ currentRowIndx = this . ProcessRowHierarchyResults ( currentRowIndx , tablixMember , prevTablixMembers , groupedResult , tablixHierarchyStructure , pageBreak , sb ) ;
696669 }
697670
698671 foreach ( var childMember in tablixMember . TablixMembers )
699672 {
700- currentRowIndx = this . ProcessTablixMembers ( sb , dataSetResults , groupedResult , childMember , prevTablixMembers , currentRowIndx , pageBreak , tablixHierarchyStructure ) ;
673+ currentRowIndx = this . ProcessRowHierarchyTablixMembers ( sb , dataSetResults , groupedResult , childMember , prevTablixMembers , currentRowIndx , pageBreak , tablixHierarchyStructure ) ;
701674
702675 // Next member might not be group. This prevents polluting NestedCopy with Tablix's grouped results and will ensure
703676 // child GroupedResults calculated by "Group" method is accurate.
@@ -708,7 +681,7 @@ private int ProcessTablixMembers(
708681 }
709682 else
710683 {
711- currentRowIndx = this . ProcessResults ( currentRowIndx , tablixMember , prevTablixMembers , groupedResult , tablixHierarchyStructure , pageBreak , sb ) ;
684+ currentRowIndx = this . ProcessRowHierarchyResults ( currentRowIndx , tablixMember , prevTablixMembers , groupedResult , tablixHierarchyStructure , pageBreak , sb ) ;
712685 }
713686
714687 this . Tablix . GroupedResultsKeys . Remove ( groupedResult . Key . ToString ( ) . Replace ( " " , "" ) ) ;
@@ -749,7 +722,7 @@ private int ProcessTablixMembers(
749722
750723 foreach ( var childMember in tablixMember . TablixMembers )
751724 {
752- currentRowIndx = this . ProcessTablixMembers ( sb , dataSetResults , groupResults , childMember , prevTablixMembers , currentRowIndx , pageBreak , tablixHierarchyStructure ) ;
725+ currentRowIndx = this . ProcessRowHierarchyTablixMembers ( sb , dataSetResults , groupResults , childMember , prevTablixMembers , currentRowIndx , pageBreak , tablixHierarchyStructure ) ;
753726 }
754727 }
755728 else
@@ -759,13 +732,13 @@ private int ProcessTablixMembers(
759732 tablixMember . ToggleItemKey = string . Join ( '-' , this . Tablix . GroupedResultsKeys ) ;
760733 }
761734
762- currentRowIndx = this . ProcessResults ( currentRowIndx , tablixMember , prevTablixMembers , groupResults , tablixHierarchyStructure , pageBreak , sb ) ;
735+ currentRowIndx = this . ProcessRowHierarchyResults ( currentRowIndx , tablixMember , prevTablixMembers , groupResults , tablixHierarchyStructure , pageBreak , sb ) ;
763736 }
764737
765738 return currentRowIndx ;
766739 }
767740
768- private int ProcessColumnResults (
741+ private int ProcessColumnHierarchyResults (
769742 int currentColumnIndx ,
770743 TablixMember tablixMember ,
771744 List < TablixMember > prevTablixMembers ,
@@ -796,18 +769,6 @@ StringBuilder sb
796769 lastHeader . TablixHeader . GroupedResults = groupResults ;
797770 }
798771
799- //if (headersFoundInTablixMembers.Any())
800- //{
801- // foreach (var header in headersFoundInTablixMembers)
802- // {
803- // if (!header.TablixHeader.InsertedKey)
804- // {
805- // sb.AppendLine(header.TablixHeader.Build());
806- // header.TablixHeader.InsertedKey = true;
807- // }
808- // }
809- //}
810- //else
811772 if ( lastHeader != null && lastHeader . TablixHeader != null )
812773 {
813774 sb . AppendLine ( lastHeader . TablixHeader . Build ( ) ) ;
@@ -817,7 +778,7 @@ StringBuilder sb
817778 return currentColumnIndx + 1 ;
818779 }
819780
820- private int ProcessResults (
781+ private int ProcessRowHierarchyResults (
821782 int currentRowIndx ,
822783 TablixMember tablixMember ,
823784 List < TablixMember > prevTablixMembers ,
@@ -941,50 +902,6 @@ StringBuilder sb
941902 return currentRowIndx + 1 ;
942903 }
943904
944- private void ProcessTablixColumnHierarchyMember (
945- IDictionary < string , object > groupResult ,
946- TablixMember lastHeader ,
947- IEnumerable < TablixMember > headersFoundInTablixColumnMembers ,
948- string newKey ,
949- StringBuilder sb
950- )
951- {
952- var createRow = false ;
953-
954- if ( headersFoundInTablixColumnMembers . Any ( tm => ! tm . TablixHeader . InsertedKey ) || lastHeader != null )
955- {
956- createRow = true ;
957- }
958-
959- if ( createRow )
960- {
961- if ( headersFoundInTablixColumnMembers . Any ( ) )
962- {
963- // Then render the cells for the columns.
964- foreach ( var header in headersFoundInTablixColumnMembers )
965- {
966- header . Values = groupResult ;
967- if ( ! header . TablixHeader . InsertedKey )
968- {
969- header . TablixHeader . KeyGuid = newKey ;
970-
971- sb . AppendLine ( header . TablixHeader . Build ( ) ) ;
972-
973- header . TablixHeader . InsertedKey = true ;
974- }
975- }
976- }
977- else if ( lastHeader != null && ! lastHeader . TablixHeader . InsertedKey )
978- {
979- lastHeader . TablixHeader . KeyGuid = newKey ;
980- lastHeader . Values = groupResult ;
981- sb . AppendLine ( lastHeader . TablixHeader . Build ( ) ) ;
982-
983- lastHeader . TablixHeader . InsertedKey = true ;
984- }
985- }
986- }
987-
988905 private void ProcessTablixRowHierarchyMember (
989906 IGrouping < object , IDictionary < string , object > > groupResults ,
990907 TablixMember tablixMember ,
@@ -1230,13 +1147,7 @@ private List<IGrouping<object, IDictionary<string, object>>> Group(TablixMember
12301147 // Have we been provided with group results from further up the tree?
12311148 return new List < IGrouping < object , IDictionary < string , object > > > ( ) { this . SortGroup ( tablixMember , this . Tablix . GroupedResults ) } ;
12321149 }
1233- }
1234- //else if (prevTablixMembers.Any(tm => tm.TablixMemberGroup != null && tm.TablixMemberGroup.GroupExpression != null))
1235- //{
1236- // var lastTm = prevTablixMembers.Last(tm => tm.TablixMemberGroup != null && tm.TablixMemberGroup.GroupExpression != null);
1237-
1238- // return this.Group(lastTm, null);
1239- //}
1150+ }
12401151
12411152 return null ;
12421153 }
0 commit comments