计算已经应用的查询中的记录

时间:2019-07-15 15:56:56

标签: google-app-maker

我知道获取全部记录数的方法:

function countRecords(){
var records = app.models.BigQuery.newQuery().run(); 
  return records.length;

}

或者用于从新查询中获取记录数

function queryModel(){

  var qq = app.models.BigQuery.newQuery();
  qq.clearFilters();
  qq.parameters.v1 = "GNa";
  qq.parameters.v2 = "TH";
  qq.where = "(document_name contains :v1) OR (document_name contains :v2)";
  var results = qq.run();
  return results.length;

}

但是我需要的是服务器或客户端方法来从应用的查询中获取计数(使用数据源在不同页面上似乎是持久的)。换句话说,我需要在不使用“ newQuery.run()”的情况下编写此代码。 (我希望使用客户端,因此我可以使用从我的表单创建的查询将其附加到小部件)。

query.items仅给出您的长度,直到第一个分页标记。

尝试编辑,但是会给出循环引用错误:

将服务器端代码更改为:

function countRecords(query){
var records = query.run(); 
  return records.length;

}

和我的按钮副代码为:

google.script.run
.withSuccessHandler(function(o){console.log("Success"+o);})
.withFailureHandler(function (e){console.log("Error"+e);})
.countRecords(widget.datasource.query);

错误是

  

由于循环引用而失败。在   Popup1.Content.Panel2.Table1Panel.Table1.Button3.onClick:4:2

1 个答案:

答案 0 :(得分:0)

目前有效的是:

widget.datasource.items.length

我必须将分页更改为400,然后

我知道这不适用于大于400的集合,但这正是处理我当前用例的原因。