2012-11-23 4 views
0

Qu'est-ce que j'ai fait? Je construis un tableau de bord avec plusieurs données. Les données sont sous forme de tableaux.Plusieurs sources de données sous forme de tableau dans le tableau de bord de google charts api

Que dois-je implémenter? J'ai implémenté le tableau de bord à l'aide du tutoriel mais je ne suis pas en mesure d'implémenter une autre source de données.

Voici mon code

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
    <meta http-equiv="content-type" content="text/html; charset=utf-8"/> 

<title> 
      Google Visualization API Sample 
     </title> 

<script type="text/javascript" src="http://www.google.com/jsapi"></script> 
<script type="text/javascript"> 
    google.load('visualization', '1.1', {packages: ['controls']}); 
</script> 
<script type="text/javascript"> 

function drawVisualization() { 

// Prepare the data 
     var data1 = google.visualization.arrayToDataTable([ 
     ['Name', 'Type', 'Precheck Alarms', 'Postcheck Alarms'], 
     ['Michael' , 'Type1', 12, 5], 
     ['Elisa', 'Type2', 20, 7], 
     ['Robert', 'Type1', 7, 3], 
     ['John', 'Type1', 54, 2], 
     ['Jessica', 'Type2', 22, 6], 
     ['Aaron', 'Type1', 3, 1], 
     ['Margareth', 'Type2', 42, 8], 
     ['Miranda', 'Type2', 33, 6] 
     ]); 
     var data2 = google.visualization.arrayToDataTable([ 
     ['Name', 'Type', 'Precheck Alarms', 'Postcheck Alarms'], 
     ['Michael' , 'Type1', 12, 5], 
     ['Elisa', 'Type2', 20, 7], 
     ['Robert', 'Type1', 7, 3], 
     ['John', 'Type1', 54, 2], 
     ['Jessica', 'Type2', 22, 6], 
     ['Aaron', 'Type1', 3, 1], 
     ['Margareth', 'Type2', 42, 8], 
     ['Miranda', 'Type2', 33, 6] 
     ]);  

    // Define a category picker control for the Type column 



var categoryPicker = new google.visualization.ControlWrapper({ 
    'controlType': 'CategoryFilter', 
    'containerId': 'control2', 
    'options': { 
     'filterColumnLabel': 'Type', 
     'ui': { 
     'labelStacking': 'vertical', 
     'allowTyping': false, 
     'allowMultiple': false 
     } 
    } 
    }); 

    // Define a Pie chart 
    var columns_alarms = new google.visualization.ChartWrapper({ 
    'chartType': 'ColumnChart', 
    'containerId': 'chart1', 
    'options': { 
     'width': 600, 
     'height': 600, 
     'legend': 'none', 
     'title': 'Alarms', 
     'chartArea': {'left': 15, 'top': 15, 'right': 0, 'bottom': 0}, 
     //'pieSliceText': 'label' 
    }, 
    // Instruct the piechart to use colums 0 (Name) and 3 (Donuts Eaten) 
    // from the 'data' DataTable. 
    'view': {'columns': [0, 2,3]} 
    }); 

    // Define a table 


var table_alarms = new google.visualization.ChartWrapper({ 
    'chartType': 'Table', 
    'containerId': 'chart2', 
    'options': { 
     'width': '300px' 
    } 
    }); 
var columns_kpi = new google.visualization.ChartWrapper({ 
    'chartType': 'ColumnChart', 
    'containerId': 'chart4', 
    'options': { 
     'width': 600, 
     'height': 600, 
     'legend': 'none', 
     'title': 'Alarms', 
     'chartArea': {'left': 15, 'top': 15, 'right': 0, 'bottom': 0}, 
     //'pieSliceText': 'label' 
    }, 

    // Instruct the piechart to use colums 0 (Name) and 3 (Donuts Eaten) 
    // from the 'data' DataTable. 
    'view': {'columns': [0, 2,3]} 
    }); 

    // Define a table 
    var table_kpi = new google.visualization.ChartWrapper({ 
    'chartType': 'Table', 
    'containerId': 'chart5', 
    'options': { 
     'width': '300px' 
    } 
    }); 

    // Create a dashboard 
    new google.visualization.Dashboard(document.getElementById('dashboard_alarms')). 
    new google.visualization.Dashboard(document.getElementById('dashboard_kpi')). 
     // Establish bindings, declaring the both the slider and the category 
     // picker will drive both charts. 
     bind([categoryPicker], [columns_kpi, table_kpi,columns_alarms, table_alarms]). 
     // Draw the entire dashboard. 
     draw(data1); 
     draw(data2); 

} 


     google.setOnLoadCallback(drawVisualization); 
    </script> 
    </head> 
    <body style="font-family: Arial;border: 0 none;"> 
    <div id="dashboard"> 
     <table> 
     <tr style='vertical-align: top'> 
      <td style='width: 300px; font-size: 0.9em;'> 
      <div id="control1"></div> 
      <div id="control2"></div> 
      <div id="control3"></div> 
      </td> 
      <td style='width: 600px'> 
      <div style="float: left;" id="chart1"></div> 
      <div style="float: left;" id="chart2"></div> 
      <div style="float: left;" id="chart3"></div> 
      <div style="float: left;" id="chart4"></div> 
      <div style="float: left;" id="chart5"></div> 
      </td> 
     </tr> 
     </table> 
    </div> 
    </body> 
</html> 

Le code ci-dessus rend WSD.

Répondre

0

Il y a peu d'erreurs dans votre code.

new google.visualization.Dashboard(document.getElementById('dashboard_alarms')). 
new google.visualization.Dashboard(document.getElementById('dashboard_kpi')). 

devrait être

new google.visualization.Dashboard(document.getElementById('dashboard_alarms')); 
new google.visualization.Dashboard(document.getElementById('dashboard_kpi')). 

(le devrait être un « » « ; » à la fin de la première ligne)

également dans les deux mêmes lignes que vous faites référence à des éléments avec id dashboard_alarms et dashboard_kpi mais vous n'avez pas ces éléments dans votre code HTML. Vous devez ajouter les balises

<div id="dashboard_alarms"/> 
<div id="dashboard_kpi"/> 

à votre code.

Vous pouvez utiliser firebug pour déboguer du code javascript si vous utilisez Firefox. Le chrome de Goole peut également avoir un débogueur javascrpt. Avec un débogueur javascript, vous pouvez diagnostiquer la raison de ces problèmes.

Un exemple fonctionnel du code est disponible au jsfiddle.

0

J'ai eu la réponse à ma propre question. nécessaire de séparer les contrôles liés à chaque tableau de bord. Impossible de partager un contrôle avec deux sources de données pour deux tableaux de bord. juste avoir un contrôle séparé et tout fonctionne.

Questions connexes