/** * This updater changes all records found on the {@link Ext.pivot.result.Base matrix result} * using the specified value as a percentage. * * Let's say that the result object contains the following records (each record is a * {@link Ext.data.Model model} in fact but we use json representation for this example): * * [ * { product: 'Phone', country: 'USA', order: 100 }, * { product: 'Tablet', country: 'USA', order: 200 } * ] * * And we want to increase all orders by 150%. This is how the updater config looks like: * * { * type: 'percentage', * leftKey: resultLeftKey, * topKey: resultTopKey, * matrix: matrix, * dataIndex: 'order', * value: 150 * } * * And this is how the records look after the update: * * [ * { product: 'Phone', country: 'USA', order: 150 }, * { product: 'Tablet', country: 'USA', order: 300 } * ] * */Ext.define('Ext.pivot.update.Percentage', { extend: 'Ext.pivot.update.Base', alias: 'pivotupdate.percentage', onUpdate: function(result, resolve, reject){ var dataIndex = this.getDataIndex(), value = parseFloat(this.getValue()), records = result.records, len, i; if(records) { len = records.length; for (i = 0; i < len; i++) { records[i].set(dataIndex, Math.floor(records[i].get(dataIndex) * value / 100)); } } this.callParent([result, resolve, reject]); }});