Skip to content

Commit faf2e99

Browse files
MKirovaMKirova
authored andcommitted
Add support for multiple measures.
1 parent e264a3f commit faf2e99

File tree

3 files changed

+26
-20
lines changed

3 files changed

+26
-20
lines changed

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -260,13 +260,16 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
260260
let columns = [];
261261
fields.forEach((value, key) => {
262262
if (value.children == null || value.children.length === 0 || value.children.size === 0) {
263-
const ref = factoryColumn.create(this.viewRef.injector);
263+
const ref = factoryColumnGroup.create(this.viewRef.injector);
264264
ref.instance.header = parent != null ? key.split(parent.header + '-')[1] : key;
265265
ref.instance.field = key;
266-
ref.instance.dataType = this.resolveDataTypes(data[0][key]);
267266
ref.instance.parent = parent;
268267
ref.changeDetectorRef.detectChanges();
268+
269+
const children = this.getMeasureChildren(factoryColumn, data , ref.instance);
270+
ref.instance.children.reset(children);
269271
columns.push(ref.instance);
272+
columns = columns.concat(children);
270273
} else {
271274
const ref = factoryColumnGroup.create(this.viewRef.injector);
272275
ref.instance.parent = parent;
@@ -295,5 +298,19 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
295298
return columns;
296299
}
297300

301+
protected getMeasureChildren(colFactory, data, parent){
302+
const cols = [];
303+
this.pivotConfiguration.values.forEach(val => {
304+
const ref = colFactory.create(this.viewRef.injector);
305+
ref.instance.header = val.member;
306+
ref.instance.field = parent.field + '-' + val.member;
307+
ref.instance.parent = parent;
308+
ref.instance.dataType = this.resolveDataTypes(data[0][val.member]);
309+
ref.changeDetectorRef.detectChanges();
310+
cols.push(ref.instance);
311+
});
312+
return cols;
313+
}
314+
298315

299316
}

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-util.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ export class PivotUtil {
110110
const obj = {};
111111
for (const value of values) {
112112
if(h[pivotKeys.aggregations]) {
113-
obj[key] = h[pivotKeys.aggregations][value.member];
113+
obj[key + '-' + value.member] = h[pivotKeys.aggregations][value.member];
114114
}
115115
obj[pivotKeys.records] = h[pivotKeys.records];
116116
flatData.push(obj);

src/app/pivot-grid/pivot-grid.sample.ts

Lines changed: 6 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -47,24 +47,8 @@ export class PivotGridSampleComponent {
4747
columns: [{
4848
member: 'Country',
4949
enabled: true,
50-
childLevels: [{
51-
member: 'SellerName',
52-
enabled: true,
53-
childLevels: [
54-
{
55-
member: 'Date',
56-
enabled: true,
57-
childLevels: []
58-
},
59-
]
60-
}]
61-
},
62-
63-
{
64-
member: 'ProductCategory',
65-
enabled: true,
6650
childLevels: []
67-
}
51+
},
6852
]
6953
,
7054
rows: [{
@@ -84,6 +68,11 @@ export class PivotGridSampleComponent {
8468
member: 'UnitsSold',
8569
aggregate: IgxNumberSummaryOperand.sum,
8670
enabled: true
71+
},
72+
{
73+
member: 'UnitPrice',
74+
aggregate: IgxNumberSummaryOperand.sum,
75+
enabled: true
8776
}
8877
],
8978
filters: null

0 commit comments

Comments
 (0)