Google电子表格查询query.send回调函数返回值

时间:2016-02-16 13:18:10

标签: javascript google-spreadsheet-api

我正在尝试使用两个具有相同控制过滤器的Google控制台 我定义了其中一个隐藏的控制过滤器; 隐藏控制过滤器的值将在主控制过滤器更改时设置

此示例要求控制过滤器的对象可用于操作

这可以使用普通数据

但是我的情况有点复杂,因为我正在使用谷歌表

    function buildGDPChart( ) {
        var queryString = encodeURIComponent('SELECT C, D, sum(U) where A=2013 group by c, D');

        var query = new google.visualization.Query(
            'https://docs.google.com/spreadsheets/d/1Q1QjRKtin6KD1Q18909134sWD61mEekbFxUmJdEE0/gviz/tq?gid=0&headers=1&sheet=Sheet1&headers=1&tq=' + queryString);
        query.send( drawDashboard);
    }

        function drawDashboard( response ) {
            var gdpData = response.getDataTable( );

            var gdpDashboard = new google.visualization.Dashboard(  document.getElementById('GDP_Dashboard_div'));

            var industryPicker = new google.visualization.ControlWrapper({
                'controlType': 'CategoryFilter',
                'containerId': 'industryPicker_div',
                'options': {
                    'filterColumnIndex': 1,
                    'ui': {
                        'labelStacking': 'vertical',
                        'label': 'Industry:',
                        'allowTyping': false,
                        'allowMultiple': false
                    }
                },
                'state': { 'selectedValues' : [ 'Agriculture'] }
            });

            industryPickerControl = document.getElementById( 'industryPickerControl_div');
            industryPickerControl.objectValue = industryPicker;

            google.visualization.events.addListener(industryPicker, 'statechange', function() {
                var industryPickerH = document.getElementById( 'industryPickerHControl_Div');
                industryPickerH.objectValue.setState(industryPicker.getState());
                industryPickerH.draw();
            });

            var subIndustryTable = new google.visualization.ChartWrapper({
                'chartType': 'Table',
                'containerId': 'subIndustry_Table_div',
                'options': {
                },
                'view' : { 'columns': [0,2] }
            });

            var subIndustryPieChart = new google.visualization.ChartWrapper({
                'chartType': 'PieChart',
                'containerId': 'subIndustry_PieChart_div',
                'options': {
                    'width': 150,
                    'height': 150,
                    'legend': 'none',
                    'chartArea': {'left': 15, 'top': 15, 'right': 0, 'bottom': 0},
                    'pieSliceText': 'label'
                },
                'view': {'columns': [0, 2]}
            });

            gdpDashboard.bind([industryPicker], [subIndustryPieChart, subIndustryTable]);
            gdpDashboard.draw( gdpData );

        }

我需要在函数之外存储industryPicker的值以进行进一步处理;

我将industryPicker定义为全局变量;但它仍然作为局部变量处理,并且该值在函数外部不可用。

有没有办法返回此对象或访问此对象

1 个答案:

答案 0 :(得分:1)

我使用了全局变量并且它起作用了; 我之前使用它时出现了一些编码错误 - 我忽略了

看看是否有人可以帮助我如何从回调函数返回值

仍然会很有趣