Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google app maker 使用弹出窗口选择正确的关系字段并将值传递回输入表单_Google App Maker - Fatal编程技术网

Google app maker 使用弹出窗口选择正确的关系字段并将值传递回输入表单

Google app maker 使用弹出窗口选择正确的关系字段并将值传递回输入表单,google-app-maker,Google App Maker,我正在使用GoogleAppMaker和CloudSQL构建一个资产跟踪数据库。 我有几张有关系的桌子: 资产列表(带位置的多对一) 地点(多对一地区) 地区(多对一地区) 问题在于,在数据输入表单中填充新的相关位置字段时,几个地区可能有同名的位置。使用“标准”下拉列表时,会显示相同的值,用户无法知道该位置与哪个地区关联。 示例:在资产输入表单下拉列表中,位置显示: -购物 -机组1 -船员2 -购物 -机组1 -外部供应商 我有两页: 资产-数据源:资产表 输入表单数据源:继承(资产)以

我正在使用GoogleAppMaker和CloudSQL构建一个资产跟踪数据库。 我有几张有关系的桌子:

  • 资产列表(带位置的多对一)
  • 地点(多对一地区)
  • 地区(多对一地区)
问题在于,在数据输入表单中填充新的相关位置字段时,几个地区可能有同名的位置。使用“标准”下拉列表时,会显示相同的值,用户无法知道该位置与哪个地区关联。 示例:在资产输入表单下拉列表中,位置显示:

-购物
-机组1
-船员2
-购物
-机组1
-外部供应商

我有两页:
资产-数据源:资产表

  • 输入表单数据源:继承(资产)以输入新资产
  • 表视图数据源:继承(资产)以查看输入的资产(无编辑)
位置弹出
这似乎像预期的那样工作,基本上是表单导航到正确的位置并将其存储在文本框和带有On_Click属性的按钮中,以将文本框值发送到资产上的数据输入表单(不工作)。我可以将值传递给小部件,但无法确定如何将其保存到实际的数据源。 当前正在使用此表单文本框中的位置我应该使用Id吗

我创建了一个弹出表单,它允许用户通过过滤地区来导航到正确的位置记录ID。我很难理解如何实际将其写回资产输入表单上的正确位置字段。我不熟悉Java脚本/应用程序脚本,所以所有属性的含义以及如何使用它们给我带来了麻烦

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

@datasource.item.Location.Location
然后在弹出窗口中,我将按钮设置为单击

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

<代码> PASS位置是存储正确位置的弹出式文本框的名称。

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

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

var popup = app.popups.YourPopup;
popup.properties.CreateDatasource = widget.datasource;
popup.visible = true;
假设您的弹出式内容数据源设置为位置,并且您的弹出式内容具有一些过滤位置的输入,然后有一个表显示过滤结果。在此表中,您将选择适当的位置行,然后弹出窗口中有一个按钮,该按钮将位置传递回资产表单,代码如下:

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;

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

Markus,谢谢!这起作用了。不知道一个页面的动态属性这是一个巨大的帮助。