google appmaker过滤器下拉列表

时间:2018-10-15 10:25:12

标签: google-app-maker

我刚开始使用Google AppMaker,但在理解查询生成器的工作方式时遇到了一些麻烦。

这是我的情况:

我有三个数据源:

  1. 客户:
    • 名称
  2. 项目
    • 名称
    • 客户
  3. 里程碑
    • 名称
    • 客户
    • 项目

现在,我已经在这些模型之间建立了关系,以便: 一个项目有一个客户(但一个客户可以有多个项目) 一个里程碑有一个项目和一个客户

现在,在创建里程碑时,我希望用户首先选择一个客户,然后在他们选择一个项目时,我希望该项目的下拉列表仅显示属于该客户的项目。

我当前的方法如下: 我创建了一个名为“ MilestonePage”的页面,该页面设置了Milestone数据模型。该页面包含一个表格(不可编辑)和一个(创建)表格。该表单有两个下拉菜单(客户,项目)和一个文本字段(名称)。 我的想法是,Project的下拉菜单需要修改其选项,以便可用客户选择的项目可以过滤可用项目的列表。 我已经看过文档,但老实说,我找不到有关如何使用编辑器的正确解释。我还查看了“项目跟踪器”和“项目列表”示例,但是都没有我需要的配置。 我最好的猜测是将选项设置为:

@datasources.Project.query.filters.Customer._equals

或以某种方式通过以下方式利用这种关系:

@datasources.Project.relations.Customer.item.Project

不用说,这些都不起作用。最后一个总是给我分配给表中第一个客户的项目,我不知道为什么...

我愿意使用其他控件和/或脚本来实现这一目标,但是感觉解决方案应该更简单。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

根据您的问题描述,这是我所做的:

首先,我将模型设置如下:

  1. 客户:

    • 名称
  2. 项目:

    • 名称
  3. 里程碑:

    • 名称


第二,建立如下关系:

  1. 客户

    • (客户)一对多(里程碑)

    • (客户)一对多(项目)

  2. 里程碑

    • (里程碑)许多对一个(客户)

    • (里程碑)许多到一个(项目)

  3. 项目

    • (项目)许多对一个(客户)

    • (项目)一对多(里程碑)


第三,我创建了一个页面“ milestonePage”,该页面设置了Milestone数据模型。在该页面内,我插入了插入表单。该页面如下所示:

enter image description here

从这里开始,唯一要做的就是确保客户下拉列表和 Project 下拉列表的绑定正确。默认情况下,客户下拉列表应具有以下绑定:

  • 选项:@datasources.customer.items

  • 值:@datasource.item.customer

最后,最棘手的是 Project 下拉菜单。由于要显示属于所选客户的项目,因此必须执行以下操作:

  1. 删除选项
  2. 的绑定
  3. 确保新的绑定如下:

    • 选项:@widget.parent.descendants.Field2.value.project(其中 Field2 客户下拉菜单

    • 值:@datasource.item.project

奖金::为避免混淆,请将其添加到客户下拉菜单的 onValueChange 处理程序中 widget.parent.descendants.Field3.value = null;(其中 Field3 Project 下拉菜单。)

建议。请注意Markus Malessa提到的有关设置预取的内容,因为这很有必要。