На этой странице описывается, как отправить запрос к источнику данных, который поддерживает протокол источника данных инструментов для работы с диаграммами.
Содержание
Обзор
Источник данных — это веб-служба, поддерживающая протокол источника данных инструментов для работы с диаграммами. Вы можете отправить SQL-запрос к источнику данных, и в ответ вы получите DataTable, заполненный соответствующей информацией. Некоторые примеры источников данных включают электронные таблицы Google и SalesForce.
Отправка запроса
Чтобы отправить запрос:
- Создайте экземпляр объекта Query с URL-адресом вашего источника данных. URL-адрес должен указывать, какие данные запрашиваются, в синтаксисе, понятном этому источнику данных.
- При необходимости укажите параметры запроса, такие как метод отправки, в качестве необязательного второго параметра в конструкторе объекта
Query
(подробности см. в параметреopt_options
конструктора запроса): - При необходимости добавьте строку языка запросов для сортировки или фильтрации результатов, а затем отправьте запрос. Источники данных не обязаны поддерживать язык запросов источника данных инструментов диаграмм. Если источник данных не поддерживает язык запросов, он будет игнорировать строку запроса SQL, но по-прежнему будет возвращать
DataTable
. Язык запросов является вариантом языка SQL; полный синтаксис языка запросов читайте здесь . - Отправьте запрос, указав обработчик обратного вызова, который будет вызван при получении ответа: подробности см. в следующем разделе.
Вот пример отправки запроса данных в диапазоне ячеек электронной таблицы Google; чтобы узнать, как получить URL-адрес электронной таблицы Google, см. здесь :
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. ... }
Если вы отправляете запрос из Apps Script, обязательно используйте режим IFRAME
.
Обработка ответа
Ваша функция обработчика ответа будет вызвана, когда запрос вернется. Параметр, передаваемый вашей функции обработчика ответов, имеет тип google.visualization.QueryResponse . Если запрос выполнен успешно, ответ содержит таблицу данных (класс google.visualization.DataTable
). Если запрос не выполнен, ответ содержит информацию об ошибке, а не DataTable
.
Ваш обработчик ответа должен сделать следующее:
- Проверьте, был ли запрос успешным или нет, вызвав
response.isError()
. Вам не нужно отображать пользователю какие-либо сообщения об ошибках; библиотека визуализации отобразит для вас сообщение об ошибке в вашем контейнере<div>
. Однако, если вы хотите обрабатывать ошибки вручную, вы можете использовать классgoog.visualization.errors
для отображения пользовательских сообщений (см. Пример оболочки запроса для примера пользовательской обработки ошибок). - Если запрос выполнен успешно, ответ будет включать в себя
DataTable
, которую вы можете получить, вызвавgetDataTable()
. Передайте его на свою карту.
Следующий код демонстрирует обработку предыдущего запроса на рисование круговой диаграммы:
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}); }
Чтение CSV-файлов
Если вы хотите построить диаграмму из данных CSV (значения, разделенные запятыми), у вас есть два варианта. Либо вручную преобразуйте данные CSV в формат данных Google Charts , либо поместите файл CSV на веб-сервер, обслуживающий диаграмму, и запросите его, используя метод, описанный на этой странице.
Дополнительная информация
- Синтаксис языка запросов — описывает синтаксис языка, используемого для запросов данных.
- Класс запроса — справочная страница для класса, который является оболочкой для запроса.
- Класс QueryResponse — справочная страница для класса, который упаковывает ответ на запрос.