2012-04-04 38 views
5

मैं अपने ExtJS4 चार्ट में से एक में कई LineSeries करना चाहते हैं में एकाधिक श्रृंखला।लोड हो रहा है एक चार्ट

मैं एक दुकान है कि इस तरह दिखता है:

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

और कितने प्रविष्टियों मैं अपने ग्रिड दृश्य में चयन एक, मैं तीन लाइनों ('count_impressions', 'count_clicks' आकर्षित करने के लिए चाहते हैं पर निर्भर करता है, प्रत्येक प्रविष्टि के लिए 'count_conversions'), जिसका अर्थ है ग्रिड व्यू में प्रत्येक प्रविष्टि, स्टोर में कुछ प्रविष्टियां होंगी।

पल मैं निम्नलिखित समारोह हर 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(); 
    } 
} 
इसी के साथ

मैं बदल सकते हैं जो ग्राफ को ग्रिड दृश्य में प्रवेश। लेकिन वह नहीं है जो मैं चाहता हूं। मैं "एकाधिक स्टोर" कैसे दिखा सकता हूं?

मैंने एक समाधान के बारे में सोचा, जिसे मुझे यह प्रयास करना है: स्टोर को "रैखिकरण" करना, इस तरह की कुछ {तारीख: 'इंप्रेशन_1', 'इंप्रेशन_2', ...}। लेकिन वह समाधान सिर्फ हैक की जटिलता को चार्टिंग से स्टोर में बदल देगा।

+0

क्षमा Brutos लेकिन मैं आपकी समस्या को समझ में नहीं आया। आप प्रत्येक चयनित रिकॉर्ड के लिए तीन लाइनों को प्रदर्शित करना चाहते हैं, है ना? तो, यदि मैं चार रिकॉर्ड चुनता हूं, चार्ट में बारह लाइनें दिखाई जाती हैं? दूसरी बात: आपके चार्ट में दिनांक कुल्हाड़ी के रूप में नीचे कुल्हाड़ी है और count_impressions के रूप में बायां कुल्हाड़ी है: क्या मेरे पास एक लाइन श्रृंखला का उदाहरण हो सकता है जिसे आप प्रदर्शित करना चाहते हैं? मेरा मतलब है: ग्रिड के रिकॉर्ड पर क्लिक करके, आप अपने चार्ट पर किस प्रकार का डेटा देखने की उम्मीद करते हैं? – Wilk

उत्तर

1

प्रश्न की पहली छमाही समझ में आता है लेकिन इस पैरा फेंक देता है बंद:

इसी के साथ मैं जो ग्राफ को ग्रिड दृश्य में प्रवेश बदल सकते हैं। लेकिन वह नहीं है जो मैं चाहता हूं। मैं "एकाधिक स्टोर" कैसे दिखा सकता हूं?

मुझे लगता है आप एक से अधिक श्रृंखला मतलब है।

यह बहुत आसान होना चाहिए कि selectionchange हैंडलर आप प्रश्न में शामिल का उपयोग कर रहे हैं:

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(); 
} 
संबंधित मुद्दे