如何过滤 Google App Maker 中的记录?

How to filter records in Google App Maker?

我正在创建一个应用程序来帮助我们的员工管理任务。员工在全国分地区。我希望来自给定区域的员工只看到与该区域相关的任务。

工作流程:

  1. 通过表单提交了一个任务。表单中的字段之一是 "name of the region".

  2. 任务进入区域

  3. 员工可以从他们所在地区的视图中接管任务。

我有一个名为 Service 的主数据模型,其中嵌入的是用于提交任务的表单。
我还有数据字典模式,我在其中导入了有关员工及其所在地区的数据。

问题:

编辑:我试图在服务模式上做数据源并写一些查询做过滤器,但我不完全明白查询是如何工作的。

编辑 2:这就是模态框的样子:

服务:

点:

这里的方法可能是在您的服务模型下有一个数据源,该数据源通过 DOT 模型的子查询过滤省内的服务记录。这可以通过此数据源中的查询服务器脚本来完成。

示例代码是(回想一下 'query' 是当前模型服务器脚本的默认变量,因此子查询需要它自己的变量):

var DOTmodelquery = app.models.DOT.newQuery();
DOTmodelquery.filters.email._equals = Session.getActiveUser().getEmail();
var result = DOTmodelquery.run();

if (result === undefined || result.length === 0) {
  throw new app.ManagedError('Could not retrieve user to perform this query!');
} else if (result[0].Province === null) {
  throw new app.ManagedError('User does not have a Province value to perform this query!');
} else {
  query.filters.Province._equals = result[0].Province;
}

return query.run();

不确定 Service 和 DOT 之间的关系是否适合此处,但您可以考虑建立一个 Province 模型,然后在 Province-Service 和 Province-DOT 之间建立关系,然后尝试运行 服务中的一个查询 query.filters.Province.DOT.email._equals = Session.getActiveUser().getEmail();。希望这能为您带来您所希望的。