ScriptDB查询整个DB并输出到HTML表

时间:2013-03-25 19:27:33

标签: google-apps-script

首先,我是一名新手开发人员。我正在尝试创建一个基本的Google Apps脚本应用,它将使用HTMLservice,获取表单数据并将其存储在ScriptDB中,并能够查询数据库并将其显示在表格中。表单正常工作,因为日志显示正在存储的对象。但是,当我尝试查询整个数据库时,我只返回一个结果。这是html:

  

function queryResponse(responseObj){

     
 $.each(responseObj, function(key, value) {
   $("#records").append(key + ': ' + value + "<br>");
}); 
         

}

  

这是脚本:

  

function dumpData(){

     
var results = db.query({});
 while (results.hasNext()) {
 var result = results.next();
 }
 Logger.log(result);
 return result;
         

}

  

我的第二个问题是,一旦查询整个数据库,是否可以在表格中显示?任何信息,将不胜感激。 亲切的问候, 标记

2 个答案:

答案 0 :(得分:3)

要回答您的第一个问题,您的应用脚本功能会浏览ScriptDB的所有内容,并将每个值都写入单个result。循环完成后,返回最终结果 - 即db.query({})返回的LAST对象。只有一个。

这是一个修改后的版本,它返回包含所有对象的Array

function dumpData() {

  var results = db.query({});
  var result = [];
  while (results.hasNext()) {
    result.push (results.next());
  }
  Logger.log(result);
  return result;
}

建立表

现在,关于第二个问题。

查看Building a Charts Dashboard教程,了解图表服务的详细介绍。您可能对完整的仪表板(具有相同基础数据的多个图表)不感兴趣,而是希望创建一个单独的TableChart,但教程涵盖了这一点。

如果你正在使用apps-script,你将创建一个UiApp,它具有构建TableChart的doGet()函数。要填充数据源,您需要创建newDataTable(),根据“密钥”及其类型添加列标题,然后添加包含相关“值”的行。之后,这是创建图表,将数据绑定到它,并将其附加到UiApp的问题。

如果没有您对实际数据的任何描述,那就是我可以提供的所有指导。

答案 1 :(得分:1)

当您要求使用HTML服务解决方案而不是UiApp时,Mogsdad使用UiApp的方法无济于事。您可以使用模板文件直接生成表格(按照上面的评论)。但是,如果您希望将表(选择行,排序等)作为较大应用程序的一部分,请考虑使用jQuery DataTable。显示了一个简单示例here