Open romanalfaro opened 7 years ago
I have found a bug. When we have more than one field on Value. The summary types "count" and "average" don´t work well.
If found the source of that problem on this function Syncfusion.PivotAnalysis._isMemberExist
Original:
case "calc": for (s = !1, this._tableKeysCalcValues.length == 0 && this._tableKeysCalcValues.push(t), e = 0; e < this._tableKeysCalcValues.length; e++) if (t.uniqueName == this._tableKeysCalcValues[e].uniqueName) { s = !0; f = e; break } if (s) for (u = 0; u < i.keys.length; u++) if (this._tableKeysCalcValues[f].value == null) { for (this._tableKeysCalcValues[f].value = i, this._tableKeysCalcValues[f].value.count = 1, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[f].value.keys[o] = this._tableKeysCalcValues[f].value.count); break } else this._tableKeysCalcValues[f].value.count++, r.values[u].isCalculatedField != !0 && (this._tableKeysCalcValues[f].value.keys[u] = this._getSummaryValue(this._tableKeysCalcValues[f].value.keys[u], i.keys[u], this._tableKeysCalcValues[f].value.count, this._summaryTypes[u], r.values[u].format, r.values[u].formatString)); else for (this._tableKeysCalcValues.push(t), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value = i, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.keys[o] = 1), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.count = 1
Fixed:
case "calc": for (s = !1, this._tableKeysCalcValues.length == 0 && this._tableKeysCalcValues.push(t), e = 0; e < this._tableKeysCalcValues.length; e++) if (t.uniqueName == this._tableKeysCalcValues[e].uniqueName) { s = !0; f = e; break } if (s) for (u = 0; u < i.keys.length; u++) if (this._tableKeysCalcValues[f].value == null) { for (this._tableKeysCalcValues[f].value = i, this._tableKeysCalcValues[f].value.count = 1, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[f].value.keys[o] = this._tableKeysCalcValues[f].value.count); break } else { if(u==0) this._tableKeysCalcValues[f].value.count++; r.values[u].isCalculatedField != !0 && (this._tableKeysCalcValues[f].value.keys[u] = this._getSummaryValue(this._tableKeysCalcValues[f].value.keys[u], i.keys[u], this._tableKeysCalcValues[f].value.count, this._summaryTypes[u], r.values[u].format, r.values[u].formatString)); } else for (this._tableKeysCalcValues.push(t), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value = i, o = 0; o < i.keys.length; o++) this._summaryTypes[o] == ej.PivotAnalysis.SummaryType.Count && (this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.keys[o] = 1), this._tableKeysCalcValues[this._tableKeysCalcValues.length - 1].value.count = 1
As can be appreciated I have added
if(u==0) this._tableKeysCalcValues[f].value.count++;
Version 15.4.0.17 solves this issue.
I have found a bug. When we have more than one field on Value. The summary types "count" and "average" don´t work well.
If found the source of that problem on this function Syncfusion.PivotAnalysis._isMemberExist
Original:
Fixed:
As can be appreciated I have added