In questa pagina viene descritto come inviare una query a un'origine dati che supporta il protocollo dell'origine dati di Chart Tools.
Panoramica
Un'origine dati è un servizio web che supporta il protocollo dell'origine dati di Chart Tools. Puoi inviare una query SQL a un'origine dati e, di conseguenza, riceverai una tabella di dati con le informazioni appropriate. Alcuni esempi di origini dati includono Fogli di lavoro Google e SalesForce.
Inviare una richiesta
Per inviare una richiesta:
- Crea un'istanza di un oggetto Query con l'URL dell'origine dati. L'URL dovrebbe indicare i dati richiesti, con una sintassi interpretata dall'origine dati in questione.
- Facoltativamente, specifica le opzioni di richiesta come il metodo di invio come secondo parametro facoltativo nel costruttore di oggetti
Query
(per informazioni dettagliate, consulta il parametroopt_options
del costruttore di query): - Facoltativamente, aggiungi una stringa del linguaggio di query per ordinare o filtrare i risultati, quindi invia la richiesta.
Le origini dati non sono necessarie per supportare il linguaggio della query dell'origine dati di Chart Tools. Se l'origine dati non supporta il linguaggio di query, ignorerà la stringa di query SQL, ma restituirà comunque
DataTable
. Il linguaggio di query è una variante del linguaggio SQL; leggi la sintassi completa del linguaggio della query qui. - Invia la query specificando un gestore di callback che verrà chiamato quando la risposta verrà ricevuta. Per informazioni dettagliate, consulta la sezione successiva.
Di seguito è riportato un esempio di invio di una richiesta per i dati in un intervallo di celle di un foglio di lavoro Google. Per scoprire come ottenere l'URL di un foglio di lavoro Google, visita questa pagina:
function initialize() { var opts = {sendMethod: 'auto'}; // Replace the data source URL on next line with your data source URL. var query = new google.visualization.Query('http://spreadsheets.google.com?key=123AB&...', opts); // Optional request to return only column C and the sum of column B, grouped by C members. query.setQuery('select C, sum(B) group by C'); // Send the query with a callback function. query.send(handleQueryResponse); } function handleQueryResponse(response) { // Called when the query response is returned. ... }
Elaborazione della risposta
La funzione del gestore delle risposte verrà chiamata quando verrà restituita la richiesta.
Il parametro passato alla funzione del gestore delle risposte è di tipo google.visualization.QueryResponse.
Se la richiesta ha esito positivo, la risposta contiene una tabella di dati (classe google.visualization.DataTable
).
Se la richiesta non è andata a buon fine, la risposta contiene informazioni sull'errore e non DataTable
.
Il tuo gestore di risposte dovrebbe procedere nel seguente modo:
- Controlla se la richiesta è andata a buon fine o meno chiamando
response.isError()
. Non dovresti visualizzare alcun messaggio di errore per l'utente; la libreria di visualizzazione mostrerà un messaggio di errore per te nel contenitore<div>
. Tuttavia, se vuoi gestire gli errori manualmente, puoi utilizzare la classegoog.visualization.errors
per visualizzare i messaggi personalizzati (consulta l'esempio di wrapper query per un esempio di gestione degli errori personalizzata). - Se la richiesta ha avuto esito positivo, la risposta includerà un
DataTable
che puoi recuperare chiamandogetDataTable()
. Passalo al grafico.
Il seguente codice mostra come gestire la richiesta precedente per disegnare un grafico a torta:
function handleQueryResponse(response) { if (response.isError()) { alert('Error in query: ' + response.getMessage() + ' ' + response.getDetailedMessage()); return; } var data = response.getDataTable(); var chart = new google.visualization.PieChart(document.getElementById('chart_div')); chart.draw(data, {width: 400, height: 240, is3D: true}); }
Leggere i file CSV
Se vuoi creare un grafico a partire dai dati CSV (valori separati da virgole), hai due opzioni:
- Converti i dati nel formato della tabella di dati di Google Tables
- Inserisci il file CSV sul server web che pubblica il grafico, quindi esegui una query utilizzando la tecnica riportata in questa pagina.
Ulteriori informazioni
- Sintassi del linguaggio di query: descrive la sintassi del linguaggio utilizzato per eseguire query sui dati.
- Classe query: la pagina di riferimento per la classe che aggrega una query.
- Classe QueryResponse: la pagina di riferimento per la classe che aggrega la risposta a una query.