如何过滤 Google App Maker 中的记录?
How to filter records in Google App Maker?
我正在创建一个应用程序来帮助我们的员工管理任务。员工在全国分地区。我希望来自给定区域的员工只看到与该区域相关的任务。
工作流程:
通过表单提交了一个任务。表单中的字段之一是 "name of the region".
任务进入区域
员工可以从他们所在地区的视图中接管任务。
我有一个名为 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();
。希望这能为您带来您所希望的。
我正在创建一个应用程序来帮助我们的员工管理任务。员工在全国分地区。我希望来自给定区域的员工只看到与该区域相关的任务。
工作流程:
通过表单提交了一个任务。表单中的字段之一是 "name of the region".
任务进入区域
员工可以从他们所在地区的视图中接管任务。
我有一个名为 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();
。希望这能为您带来您所希望的。