2011-06-01 8 views
5

मैं चार्ट बनाने के लिए Ext4 जेएस का उपयोग कर रहा हूं। मेरे चार्ट समय के दौरान की घटनाओं के विकास दिखाने वाले लाइन चार्ट कर रहे हैं, तो मेरे नीचे अक्ष एक समय अक्ष है:समय अक्ष के साथ ExtJs चार्ट, अद्यतन समस्या

{ 
    type: 'Time', 
    position: 'bottom', 
    grid: grid, 
    fields: 'name', 
    title: false, 
    dateFormat: 'd/m/y', 
    groupBy: 'year,month,day', 

    aggregateOp: 'sum', 
    label: { 
     orientation: 'horizontal', 
     rotate: { 
      degrees: label_rotation 
     } 
    } 

मैं लिंक पैमाने बदलना होगा। उन लिंक में से किसी एक पर क्लिक करने से डेटफॉर्मेट और ग्रुपबी विकल्प बदलना चाहिए। यहाँ कोड:

scaleGroups = { 
    'DAY': { 
    dateFormat: 'd/m/y', 
     groupBy: 'year,month,day' 
    }, 
    'MONTH' :{ 
      dateFormat: 'M Y', 
      groupBy: 'year,month' 
    }, 
    'YEAR' :{ 
      dateFormat: 'Y', 
      groupBy: 'year' 
    } 
}; 


function changeChartScale(chart_id, scale) { 
    var chart = Ext.getCmp(chart_id); 
    var axis = chart.axes.get(1); 
    selectedGroup = scaleGroups[scale]; 
    axis.dateFormat = selectedGroup.dateFormat; 
    axis.groupBy = selectedGroup.groupBy; 

    chart.redraw(); 
} 

समस्या यह है कि उदाहरण के लिए दिनों से महीने के लिए, दूसरे के लिए पैमाने से बदल रहा है, पिछले लेबल रहने के है। तो रेखा सही है, लेकिन मैं दिन के लेबल और महीने के लेबल देखता हूं।

क्या किसी को पता है क्यों?

अग्रिम धन्यवाद, सबरीना

अद्यतन 2011/07/06: एक नमूना html पृष्ठ पर एक ही कोड, केवल इस जावास्क्रिप्ट पुस्तकालय आयात करने, काम करता है।

शायद यह अन्य जावास्क्रिप्ट पुस्तकालयों (Jquery, googlempas ...) के साथ संगतता की समस्या है। क्या किसी को भी एक ही समस्या का अनुभव हुआ?

उत्तर

1

मुझे लगता है कि मुझे एक फिक्स मिल गया है! अक्षरों में न्यूनतम और अधिकतम संपत्ति को उचित मूल्यों पर सेट करें (यानी: प्रति दिन सेट 31, प्रति माह सेट 12)। इससे मेरा काम बनता है!

5

मैं chart.redraw() विधि स्वचालित रूप से अक्ष पैमाने/मूल्यों पुनः बनाने नहीं करता है के बाद से एक समाधान मिल गया।

कुल्हाड़ियों के लिए एक नया अधिकतम सेट करें, फिर चार्ट redrawing से पहले axis.drawAxis() विधि का उपयोग करें ...

मेरे चार्ट redraws जब उपयोगकर्ता एक बाध्य ग्रिड पर एक स्तंभ क्रमबद्ध करता है।

chart.axes.items[0].fields = [column.dataIndex]; 
    chart.series.items[0].yField = [column.dataIndex]; 


    var s = Ext.data.StoreManager.lookup('myStore'); 
    var max = s.max(column.dataIndex); 


    chart.axes.items[0].maximum = max; 
    chart.axes.items[0].drawAxis(); 


    chart.redraw(); 
संबंधित मुद्दे