2012-04-04 14 views
5

Quiero tener muchos LineSeries en uno de mis gráficos ExtJS4.Cargando series múltiples en un gráfico

que tienen una tienda que tiene este aspecto:

Ext.define('DayStatistics', { 
    extend:'Ext.data.ArrayStore', 
    fields:[ 'date', 'count_impressions', 'count_clicks', 'count_conversions' ] 
}); 

Y dependiendo de un número de entradas que selecciono en mi opinión de la rejilla, quiero llamar las tres líneas ('count_impressions', 'count_clicks', 'count_conversions') para cada entrada, es decir, cada entrada en la vista de cuadrícula, tendría un par de entradas en la tienda.

Por el momento tengo la siguiente función que es llamada con cada SelectionChange:

loadChart: function (Model, records) { 
    var removeChart = function (chart) { 
     var series = chart.series.items, surface = chart.surface, 
      length = series.length, len = surface.groups.keys.length, 
      array = []; 
     for (var i = 0; i < length; i++) 
      array = Ext.Array.merge(array, series[i].group.keys); 
     chart.series.clear(); 
     for (var j = 0; j < array.length; j++) 
      surface.items.getByKey(array[j]).destroy(); 
     for (var t = 0; t < len; t++) 
      surface.groups.items[t].destroy(); 
    }; 

    var chart = Ext.getCmp('advertiserstatisticlist.advertiserChart'); 
    removeChart(chart); 

    for (var record in records) { 
     chart.series.add({ 
      type:'line', 
      xField:'date', 
      yField:'count_impressions' 
     }); 
     chart.store.loadData(records[record].data.days, true); 
     chart.refresh(); 
    } 
} 

Con que puedo cambiar las que la entrada en la vista de cuadrícula para el gráfico. Pero eso no es lo que me gustaría tener. ¿Cómo puedo mostrar "múltiples tiendas"?

Pensé en una solución, que tengo que probar: "Linearizar" la tienda, haciendo algo como esto {date: 'impresiones_1', 'impresiones_2', ...}. Pero esa solución simplemente cambiaría la complejidad del truco de la creación de gráficos a la tienda.

+0

Brutos Lo sentimos, pero no entendía su problema. Quiere mostrar tres líneas para cada registro seleccionado, ¿verdad? Entonces, si selecciono cuatro registros, ¿se muestran doce líneas en la tabla? Segundo: su gráfico tiene el hacha inferior como fecha y el hacha izquierda como count_impressions: ¿puedo tener un ejemplo de una serie de líneas que desea mostrar? Quiero decir: al hacer clic en un registro de la grilla, ¿qué tipo de datos esperas ver en tu gráfico? – Wilk

Respuesta

1

La primera parte de la pregunta tiene sentido, pero este párrafo tiros fuera:

Con que puedo cambiar las que la entrada en la vista de cuadrícula para el gráfico. Pero eso no es lo que me gustaría tener. ¿Cómo puedo mostrar "múltiples tiendas"?

supongo que te refieres múltiples serie.

Es debe ser bastante simple de hacer que el uso del controlador de selectionchange que incluyó en la pregunta:

loadChart: function (selModel, records) { 

    var chart = Ext.getCmp('advertiserstatisticlist.advertiserChart'); 

    chart.series.clear(); 

    for (var record in records) { 
     chart.series.add({ 
      type:'line', 
      xField:'date', 
      yField: record.get(/*[whatever you named the "series name" field in the grid store]*/) 
     }); 
    } 
    chart.redraw(); 
} 
Cuestiones relacionadas