我正在将Google app maker与SQLcloud一起使用来构建资产跟踪数据库。 我有几个关系表: 资产清单(带位置的一对多) 地点(多对一,带地区) 地区(多对多地区)
问题在于,当在数据输入表单中填充新的相关位置字段时,几个区可能具有相同名称的位置。使用标准下拉菜单时,将显示相同的值,并且用户无法知道该位置与哪个区域相关联。 示例:在资产输入表单上的下拉位置显示:
商店 船员1 船员2 店 船员1 外部供应商
我有2页
资产-数据源:资产表 条目表数据源:继承(资产)以输入新资产 -Table View数据源:Inherited(资产)以查看输入的资产(无需编辑)
位置弹出 这似乎可以按预期工作,基本上可以通过以下形式进行导航以更正“位置”并将其存储在文本框和带有On_Click属性的按钮中,以将文本框值发送到资产的数据输入表单(不起作用),我可以将值传递给小部件,但无法确定如何将其保存到实际数据源。 目前正在使用此表单上文本框中的位置信息吗?
我创建了一个弹出表单,该表单允许用户通过按区域过滤来导航至正确的位置记录ID。我无法理解如何将其实际写回到资产输入表单上的正确位置字段。我是Java Script / Apps Script的新手,所以所有属性的含义以及如何使用它们都会给我带来麻烦。
我尝试在输入表单中设置一个名为“ SetLocation”的文本框,并将value属性设置为
@datasource.item.Location.Location
然后在弹出窗口中将按钮on_click设置为
app.pages.Assets.descendants.SetLocation.value =
widget.parent.descendants.PassLocation.value;
“传递位置”是弹出窗口中存储正确位置的文本框的名称。
答案 0 :(得分:1)
需要考虑的一些建议。在弹出窗口中设置一个动态属性,将其称为“ 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;
这将在您的关系中一切设置正确的情况下起作用。