@@ -88,13 +88,13 @@ export class PivotUtil {
88
88
}
89
89
90
90
public static flattenGroupsHorizontally ( data : IPivotGridRecord [ ] ,
91
- dimension : IPivotDimension ,
92
- expansionStates ,
93
- defaultExpand : boolean ,
94
- visibleDimensions : IPivotDimension [ ] ,
95
- summariesPosition : PivotSummaryPosition ,
96
- parent ?: IPivotDimension ,
97
- parentRec ?: IPivotGridRecord ) {
91
+ dimension : IPivotDimension ,
92
+ expansionStates ,
93
+ defaultExpand : boolean ,
94
+ visibleDimensions : IPivotDimension [ ] ,
95
+ summariesPosition : PivotSummaryPosition ,
96
+ parent ?: IPivotDimension ,
97
+ parentRec ?: IPivotGridRecord ) {
98
98
for ( let i = 0 ; i < data . length ; i ++ ) {
99
99
const rec = data [ i ] ;
100
100
const field = dimension . memberName ;
@@ -316,7 +316,7 @@ export class PivotUtil {
316
316
const aggregationKey = groupName ? groupName + pivotKeys . columnDimensionSeparator + key : key ;
317
317
rec . aggregationValues . set ( aggregationKey , aggregationData [ key ] ) ;
318
318
} ) ;
319
- } else if ( aggregationKeys . length === 1 ) {
319
+ } else if ( aggregationKeys . length === 1 ) {
320
320
const aggregationKey = aggregationKeys [ 0 ] ;
321
321
rec . aggregationValues . set ( groupName || aggregationKey , aggregationData [ aggregationKey ] ) ;
322
322
}
@@ -508,28 +508,24 @@ export class PivotUtil {
508
508
}
509
509
}
510
510
511
- public static handleCountAggregator ( columns : ColumnType [ ] , value : IPivotValue , isSingleValue : boolean ) : void {
511
+ public static updateColumnTypeByAggregator ( columns : any [ ] , value : IPivotValue , isSingleValue : boolean ) : void {
512
+ const targetColumnType = PivotUtil . getColumnDataTypeForValue ( value ) ;
513
+ columns . forEach ( column => {
514
+ if ( column . field ?. includes ( value . member ) || isSingleValue ) {
515
+ column . dataType = targetColumnType ;
516
+ }
517
+ } )
518
+ }
519
+
520
+ private static getColumnDataTypeForValue ( value : IPivotValue ) : GridColumnDataType {
512
521
const isCountAggregator = value . aggregate . aggregator ?. name ?. toLowerCase ( ) === 'count' || value . aggregate . aggregatorName ?. toLowerCase ( ) === 'count' ;
513
522
514
523
if ( ( value . dataType === GridColumnDataType . Currency || value . dataType === GridColumnDataType . Percent ) && isCountAggregator ) {
515
- columns . forEach ( column => {
516
- console . log ( column . field ?. includes ( value . member ) )
517
- if ( column . field ?. includes ( value . member ) || isSingleValue ) {
518
- column . dataType = GridColumnDataType . Number ;
519
- }
520
- } ) ;
524
+ return GridColumnDataType . Number ;
521
525
} else if ( value . dataType === GridColumnDataType . Currency && ! isCountAggregator ) {
522
- columns . forEach ( column => {
523
- if ( column . field ?. includes ( value . member ) || isSingleValue ) {
524
- column . dataType = GridColumnDataType . Currency ;
525
- }
526
- } ) ;
526
+ return GridColumnDataType . Currency ;
527
527
} else if ( value . dataType === GridColumnDataType . Percent && ! isCountAggregator ) {
528
- columns . forEach ( column => {
529
- if ( column . field ?. includes ( value . member ) || isSingleValue ) {
530
- column . dataType = GridColumnDataType . Percent ;
531
- }
532
- } ) ;
528
+ return GridColumnDataType . Percent ;
533
529
}
534
530
}
535
531
}
0 commit comments