使用弹出窗口 select 更正关系字段并将值传回输入表单

Using popup to select correct relational field and pass value back to an entry form

我正在使用 Google App Maker with Cloud SQL 来构建资产跟踪数据库。 我有几个 table 的关系:

问题是在数据输入表单中填充新的相关位置字段时,多个地区的位置可能具有相同的名称。使用标准下拉菜单时,会出现相同的值,用户无法知道该位置与哪个地区相关联。 示例:在资产条目表单中,下拉位置显示:

- 店铺
- 船员 1
- 船员 2
- 店铺
- 船员 1
- 外部供应商

我有 2 页:
资产 - 数据源:资产 table

位置弹出窗口
这似乎按预期工作基本上形式导航到正确的位置并将其存储在文本框和带有 On_Click 属性 的按钮将文本框值发送到资产上的数据输入表单(不工作) 我可以将值传递给小部件,但不知道如何将它保存到实际数据源。 当前使用此表单文本框中的位置我应该使用 Id 吗?

我创建了一个弹出窗体,让用户可以通过按地区过滤来导航到正确的位置记录 ID。我无法理解如何将其实际写回资产条目表单上的正确位置字段。我是 Java Script/Apps 脚本的新手,所以所有属性的含义以及如何使用它们给我带来了麻烦。

我尝试在输入表单中设置一个名为 SetLocation 的文本框,并将值 属性 设置为

@datasource.item.Location.Location

然后在弹出窗口中我将按钮 on_click 设置为

app.pages.Assets.descendants.SetLocation.value = 
widget.parent.descendants.PassLocation.value;

Pass Location 是弹出窗口中存储正确位置的文本框的名称。

需要考虑的一些建议。在您的弹出窗口中设置一个动态 属性,将其命名为 'CreateDatasource' 或任何适合您需要的名称。

在您导航到弹出窗口的资产页面表单中(假设它是一个从您的表单打开弹出窗口的按钮),输入以下代码:

var popup = app.popups.YourPopup;
popup.properties.CreateDatasource = widget.datasource;
popup.visible = true;

假设您的弹出内容数据源设置为位置,并且您的弹出窗口有一些过滤您的位置的输入,然后有一个 table 显示您的过滤结果。在此 table 中,您将 select 适当的位置行,然后您的弹出窗口有一个按钮将位置传递回您的资产表单,代码如下:

widget.root.properties.CreateDatasource.item.Location = widget.datasource.item; //this would set the relation only assuming your asset relation end to locations is named 'Location'
widget.root.visible = false;

假设您的关系中的所有设置都正确,这将起作用。