Zapytania o dane

Na tej stronie dowiesz się, jak wysłać zapytanie do źródła danych, które obsługuje protokół źródła danych narzędzia Chart.

Spis treści

Przegląd

Źródło danych to usługa internetowa, która obsługuje protokół źródła danych Chart Tools. Możesz wysłać zapytanie SQL do źródła danych, a w odpowiedzi otrzymasz tabelę DataTable wypełnioną odpowiednimi informacjami. Przykłady źródeł danych to arkusze kalkulacyjne Google i Salesforce.

Wysyłanie prośby

Aby wysłać prośbę:

  1. Utwórz instancję obiektu Query z adresem URL źródła danych. Adres URL powinien określać, jakie dane są żądane, w składni obsługiwanej przez to źródło danych.
  2. Opcjonalnie określ opcje żądania, takie jak metoda wysyłania, jako opcjonalny drugi parametr w konstruktorze obiektów Query (szczegóły znajdziesz w parametrze opt_options konstruktora zapytań):
  3. Opcjonalnie dodaj ciąg języka zapytania, aby posortować lub przefiltrować wyniki, a następnie wysłać żądanie. Źródła danych nie są wymagane do obsługi języka zapytań w narzędziach do tworzenia wykresów źródła danych. Jeśli źródło danych nie obsługuje języka zapytań, zignoruje ciąg zapytania SQL, ale nadal zwróci wartość DataTable. Język zapytań to wariant języka SQL. Pełną składnię języka zapytań znajdziesz tutaj.
  4. Wyślij zapytanie, określając moduł obsługi wywołania zwrotnego, który zostanie wywołany po otrzymaniu odpowiedzi. Szczegółowe informacje znajdziesz w następnej sekcji.

Oto przykład wysyłania żądania danych z zakresu komórek arkusza kalkulacyjnego Google. Aby dowiedzieć się, jak uzyskać adres URL arkusza kalkulacyjnego Google, zajrzyj tutaj:

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.
  ...
}

Jeśli wysyłasz zapytanie z poziomu Apps Script, użyj trybu IFRAME.

Przetwarzanie odpowiedzi

Funkcja obsługi odpowiedzi zostanie wywołana po zwróceniu żądania. Parametr przekazywany do funkcji obsługi odpowiedzi ma typ google.visualization.QueryResponse. Jeśli żądanie zostało zrealizowane, odpowiedź zawiera tabelę danych (klasa google.visualization.DataTable). Jeśli żądanie nie zostało zrealizowane, odpowiedź zawiera informacje o błędzie i brak elementu DataTable.

Moduł obsługi odpowiedzi powinien:

  1. Sprawdź, czy żądanie zostało wykonane poprawnie, czy nie, wywołując funkcję response.isError(). Nie musisz wyświetlać użytkownikowi żadnych komunikatów o błędach. Biblioteka wizualizacji wyświetli komunikat o błędzie w kontenerze <div>. Jeśli jednak chcesz obsługiwać błędy ręcznie, możesz użyć klasy goog.visualization.errors do wyświetlania komunikatów niestandardowych (przykład niestandardowej obsługi błędów znajdziesz w przykładzie kodu zapytania).
  2. Jeśli żądanie zostało zrealizowane, odpowiedź będzie zawierać obiekt DataTable, który można pobrać, wywołując funkcję getDataTable(). Umieść to na wykresie.

Następujący kod ilustruje obsługę poprzedniego żądania utworzenia wykresu kołowego:

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});
}

Odczytywanie plików CSV

Jeśli chcesz utworzyć wykres na podstawie danych w formacie CSV, masz 2 możliwości. Możesz ręcznie przekonwertować dane CSV na format tabeli z danymi w Mapach Google lub umieścić plik CSV na serwerze WWW, który wyświetla wykres, i wysłać do niego zapytanie za pomocą metody opisanej na tej stronie.

Więcej informacji