如何在与当前所选数据源相关的数据源上应用查询/过滤器?

时间:2019-10-03 11:41:48

标签: filtering relationship google-app-maker

案例:

我有3个数据模型:

  • 任务
  • 子任务
  • 状态

这些模型通过以下方式关联:任务与状态具有多对一的关系,同样适用于子状态。例如状态为:待办事宜,正在完成等。

我可以使用设置值为“ @ datasource.query.filters”的下拉列表过滤所有任务。因此,我选择一个选项,仅显示具有特定值的记录。

我无法在相关数据源上使用查询。例如。如果要在“ Tasks:Sub-Tasks(relation)”上应用查询,为了按子任务的状态(Sub-Tasks:Status(relation))过滤子任务,则可以选择不查询。

我该如何实现?如何根据特定于它们的属性将过滤器应用于与当前选定的记录项目相关的内容?

案例2

如何建立基于多个关系的列表?

3个数据源:

  • 阶段
  • 状态
  • 任务

任务分阶段进行,其状态也随之改变。例如。任务可以处于计划阶段,状态有待执行,正在执行或已完成。

有关界面示例,请参阅添加的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:0)

这只是一种可能的解决方案。但我建议以下几点:

  1. 在“任务模型”,“ SubTasksToDo”,“ SubTasksDoing和SubTasksDone。
  2. 在每个数据源中,将类型设置为“查询脚本”并添加一个 参数(类型字符串或数字,取决于您的主要任务 键类型为),将其称为“ MainTaskKey”,并取消选中每个数据源 自动加载选项。
  3. 为每个数据源输入以下查询脚本:

    query.filters.YourMainTaskRelationEndName.id._equals = query.parameters.MainTaskKey; query.filters.Status._equals ='待办事项'; //根据您正在使用的数据源,用“正在执行”或“完成”替换

  4. 转到“主要任务”数据源并向下滚动以查找 onItemChange客户端脚本,并在代码中输入以下内容 阻止:

    var itemKey = datasource.item.id; var todo = app.datasources.SubTasksToDo; var looking = app.datasources.SubTasksDoing; var done = app.datasources.SubTasksDone; todo.properties.MainTaskKey = itemKey; doing.properties.MainTaskKey = itemKey; done.properties.MainTaskKey = itemKey; todo.load(); 正在执行.load(); done.load();

  5. 然后转到页面,为3个子任务的每一个插入一个面板 数据源,并放在表中或任何您需要的地方。