我知道获取全部记录数的方法:
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
答案 0 :(得分:0)
目前有效的是:
widget.datasource.items.length
我必须将分页更改为400,然后
我知道这不适用于大于400的集合,但这正是处理我当前用例的原因。