在2.0Rc1中将新数据更新到图表

时间:2013-09-19 12:12:23

标签: rally

以下是示例代码

我试过更新和其他功能,但没有一个工作

  launch: function() {
                    var categories = ['EMEA','APAC','AMERICAS'],
                    name = 'Browser brands',
                    data = [{
                            y: 55.11,
                            drilldown: {
                                name: 'EMEA versions',
                                categories: ['Cost', 'TechMe', 'disc', 'Matt'],
                                data: [
                                    {
                                        y: 40.11,
                                        drilldown: {
                                            name: 'Cost Drill',
                                            categories: ['Page 1', 'Page 2', 'Page 3.0', 'Page 4.0'],
                                            data: [0.20, 0.83, 1.58, 13.12, 5.43]
                                        }
                                    },
                                    {
                                        y: 40.11,
                                        drilldown: {
                                            name: 'Techme Drill',
                                            categories: ['Page 1', 'Page 2', 'Page 3.0', 'Page 4.0'],
                                            data: [1.58, 13.12, 5.43,0.20, 0.83]

                                        }
                                    },
                                    {
                                        y: 40.11,

                                        drilldown: {
                                            name: 'dISC Drill',
                                            categories: ['Page 1', 'Page 2', 'Page 3.0', 'Page 4.0'],
                                            data: [0.83, 1.58, 13.12,0.20,  5.43]

                                        }
                                    }
                                ]

                            }
                        }, {
                            y: 21.63,

                            drilldown: {
                                name: 'Firefox versions',
                                categories: ['Firefox 2.0', 'Firefox 3.0', 'Firefox 3.5', 'Firefox 3.6', 'Firefox 4.0'],
                                data: [0.20, 0.83, 1.58, 13.12, 5.43]

                            }
                        }, {
                            y: 11.94,

                            drilldown: {
                                name: 'Chrome versions',
                                categories: ['Chrome 5.0', 'Chrome 6.0', 'Chrome 7.0', 'Chrome 8.0', 'Chrome 9.0',
                                    'Chrome 10.0', 'Chrome 11.0', 'Chrome 12.0'],
                                data: [0.12, 0.19, 0.12, 0.36, 0.32, 9.91, 0.50, 0.22]

                            }
                        }, {
                            y: 7.15,

                            drilldown: {
                                name: 'Safari versions',
                                categories: ['Safari 5.0', 'Safari 4.0', 'Safari Win 5.0', 'Safari 4.1', 'Safari/Maxthon',
                                    'Safari 3.1', 'Safari 4.1'],
                                data: [4.55, 1.42, 0.23, 0.21, 0.20, 0.19, 0.14]

                            }
                        }, {
                            y: 2.14,

                            drilldown: {
                                name: 'Opera versions',
                                categories: ['Opera 9.x', 'Opera 10.x', 'Opera 11.x'],
                                data: [ 0.12, 0.37, 1.65]

                            }
                        }];

这是在图表的点击事件

上调用的setChart函数
                    function setChart(chart,name, categories, data, color) {
                        var newchart=mychart;
                        var chartConfig={
                            chart: {
                                type: 'column'
                            },
                            title: {
                                text: 'Browser market share, April, 2011'
                            },
                            subtitle: {
                                text: 'Click the columns to view versions. Click again to view brands.'
                            },
                            xAxis: {
                                categories: categories
                            },
                            yAxis: {
                                title: {
                                    text: 'Total percent market share'
                                }
                            },
                            plotOptions: {
                                column: {
                                    cursor: 'pointer',
                                    point: {
                                        events: {
                                            click: function() {
                                                var drilldown = this.drilldown;
                                                if (drilldown) { // drill down
                                                    setChart(this,drilldown.name, drilldown.categories, drilldown.data, drilldown.color);
                                                } else { // restore
                                                    setChart(this,name, categories, data);
                                                }
                                            }
                                        }
                                    },
                                    dataLabels: {
                                        enabled: true,

                                        style: {
                                            fontWeight: 'bold'
                                        },
                                        formatter: function() {
                                            return this.y +'%';
                                        }
                                    }
                                }
                            },
                            tooltip: {
                                formatter: function() {
                                    var point = this.point,
                                    s = this.x +':<b>'+ this.y +'% market share</b><br/>';
                                    if (point.drilldown) {
                                        s += 'Click to view '+ point.category +' versions';
                                    } else {
                                        s += 'Click to return to browser brands';
                                    }
                                    return s;
                                }
                            }
                        }
                        console.log("Before ",newchart.chartConfig);
                        newchart.setChartConfig(chartConfig);
                        console.log("After ",newchart.chartConfig);
                        var chartSeries={
                            name: name,
                            data: data,
                            color: 'white'
                        }
                        newchart.setChartData(chartSeries);

                        chart.remove('#myChart');
                        //chart.update(newchart);



                        //redrawChart(this,mychart);
                        //console.log(mychart);

                        // console.log(chart.setChartConfig());

                        //chart.x.setCategories(categories, false);
                        //chart.chartData.series[0].remove(false);
                        /*chart.chartData.addSeries({
                            name: name,
                            data: data,
                            color: color || 'white'
                        }, false);*/
                        //chart.redraw();
                        // mychart.update();
                        //mychart.updateLayout();
                        // mychart.show();
                        console.log("After " , mychart);
                    }

主要图表在这里......

                    var mychart=Ext.create('Rally.ui.chart.Chart', {
                        autoRender:true,
                        autoShow:true,
                        id:'myChart',
                        storeType : 'Rally.data.WsapiDataStore',
                        storeConfig : {
                            model: 'Defect'
                            //fetch : ["_ValidFrom", "_ValidTo", "10778908645", "ScheduleState", "Name"]
                            //filters : this.getColumnFilters()
                        },
                        calculatorType: 'My.Calculator',
                        calculatorConfig: {},
                        chartConfig: {
                            chart: {
                                type: 'column'
                            },
                            title: {
                                text: 'Browser market share, April, 2011'
                            },
                            subtitle: {
                                text: 'Click the columns to view versions. Click again to view brands.'
                            },
                            xAxis: {
                                categories: categories
                            },
                            yAxis: {
                                title: {
                                    text: 'Total percent market share'
                                }
                            },
                            plotOptions: {
                                column: {
                                    cursor: 'pointer',
                                    point: {
                                        events: {
                                            click: function() {
                                                var drilldown = this.drilldown;
                                                if (drilldown) { // drill down
                                                    setChart(this,drilldown.name, drilldown.categories, drilldown.data, drilldown.color);
                                                } else { // restore
                                                    setChart(this,name, categories, data);
                                                }
                                            }
                                        }
                                    },
                                    dataLabels: {
                                        enabled: true,

                                        style: {
                                            fontWeight: 'bold'
                                        },
                                        formatter: function() {
                                            return this.y +'%';
                                        }
                                    }
                                }
                            },
                            tooltip: {
                                formatter: function() {
                                    var point = this.point,
                                    s = this.x +':<b>'+ this.y +'% market share</b><br/>';
                                    if (point.drilldown) {
                                        s += 'Click to view '+ point.category +' versions';
                                    } else {
                                        s += 'Click to return to browser brands';
                                    }
                                    return s;
                                }
                            }
                        },
                        chartData:{ // this works
                            series: [{
                                    name: name,
                                    data: data,
                                    color: 'white'
                                }],
                            exporting: {
                                enabled: false
                            }
                        }

                    });


                    // add your code here
                    this.add(mychart); // add the component to rally interface
                }

我希望点击

时更改数据

1 个答案:

答案 0 :(得分:0)

我有一个通过github repo here中的按钮点击触发的图表更新示例。

与具有重新配置方法的AppSDK2网格不同,AppSDK图表不具备。在此示例中,我删除了一个图表this.down("#myChart").removeAll(),修改了计算器的度量标准定义,然后将图表重新添加到应用程序中。 您可能还想查看this post