หน้านี้จะอธิบายวิธีส่งคําค้นหาไปยังแหล่งข้อมูลที่รองรับโปรโตคอลแหล่งข้อมูลของแผนภูมิ
เนื้อหา
ภาพรวม
โดยแหล่งข้อมูลคือบริการบนเว็บที่รองรับโปรโตคอลแหล่งข้อมูลของแผนภูมิ คุณส่งคําค้นหา SQL ไปยังแหล่งข้อมูลได้ และคุณจะได้รับตารางข้อมูลพร้อมข้อมูลที่เหมาะสมในการตอบกลับ ตัวอย่างของแหล่งข้อมูล ได้แก่ Google สเปรดชีตและ SalesForce
การส่งคําขอ
หากต้องการส่งคําขอ ให้ทําดังนี้
- สร้างอินสแตนซ์ออบเจ็กต์ Query ด้วย URL ของแหล่งข้อมูล URL ควรระบุว่าข้อมูลใดที่ขอไว้ในไวยากรณ์ที่แหล่งข้อมูลนั้นเข้าใจ
-
(ไม่บังคับ) ระบุตัวเลือกคําขอ เช่น วิธีการส่งเป็นพารามิเตอร์ที่ 2 ที่ไม่บังคับในเครื่องมือสร้างออบเจ็กต์
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
เพื่อแสดงข้อความที่กําหนดเอง (ดูตัวอย่าง Wrapper การค้นหาเพื่อดูตัวอย่างการจัดการข้อผิดพลาดที่กําหนดเอง) -
หากคําขอประสบความสําเร็จ การตอบกลับจะมี
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 (ค่าที่คั่นด้วยคอมมา) คุณมี 2 ตัวเลือก แปลงข้อมูล CSV ด้วยตนเองเป็นรูปแบบตารางข้อมูล Google Charts หรือวางไฟล์ CSV ในเว็บเซิร์ฟเวอร์ที่แสดงแผนภูมิ แล้วค้นหาโดยใช้เทคนิคในหน้านี้
ข้อมูลเพิ่มเติม
- ไวยากรณ์ของภาษาการค้นหา - อธิบายไวยากรณ์ของภาษาที่ใช้สร้างคําค้นหาข้อมูล
- คลาสคําค้นหา - หน้าอ้างอิงสําหรับคลาสที่รวมคําค้นหา
- คลาสการตอบกลับ - หน้าการอ้างอิงสําหรับคลาสที่รวมการตอบกลับกับคําค้นหา