ExtJS4チャートの1つに多くのLineSeriesを入れたいです。
私はこのような店を持っています:
Ext.define('DayStatistics', {
extend:'Ext.data.ArrayStore',
fields:[ 'date', 'count_impressions', 'count_clicks', 'count_conversions' ]
});
また、グリッドビューで選択したエントリの数に応じて、各エントリに3本の線('count_impressions'、'count_clicks'、'count_conversions')を描画します。つまり、グリッドビューの各エントリには2本の線があります。ストアのエントリ。
現時点では、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();
}
}
これで、グリッドビューのどのエントリをグラフ化するかを変更できます。しかし、それは私が望んでいることではありません。「複数の店舗」を表示するにはどうすればよいですか?
{date:'impressions_1'、'impressions_2'、...}のように、ストアを「線形化」するという1つの解決策を考えました。しかし、その解決策は、ハッキングの複雑さをチャートからストアに移すだけです。