【问题标题】:How to filter records in Google App Maker?如何在 Google App Maker 中过滤记录?
【发布时间】:2019-07-09 13:35:44
【问题描述】:

我正在创建一个应用程序来帮助我们的员工管理任务。员工在全国范围内被划分为不同的地区。我希望来自给定区域的员工查看仅与该区域相关的任务。

工作流程

  1. 通过表单提交任务。表单中的字段之一是“地区名称”。

  2. 任务进入区域视图。

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

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

问题:

  • 如何为特定区域的员工创建视图?
  • 我应该做一些关系吗?

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

EDIT 2:模态框是这样的:

服务:

点:

【问题讨论】:

  • 请发布您尝试过的代码。
  • 这是我试过的: var query = app.models.DOT.newQuery(); query.filters.Province._equals = "mazowieckie"; return query.run();

标签: google-app-maker


【解决方案1】:

到这里的方法可能是在您的服务模型下有一个数据源,通过 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-Service 和 Province-DOT 之间建立关系,然后尝试在 Service 中运行查询,例如所以query.filters.Province.DOT.email._equals = Session.getActiveUser().getEmail();。希望这会让你得到你所希望的。

【讨论】:

  • 非常感谢你,效果很好!! (没有关系的选项)
猜你喜欢
  • 1970-01-01
  • 2019-01-02
  • 1970-01-01
  • 2018-06-25
  • 2019-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多