我有一个类似于提供的关系样本的主/细节关系。 在我的例子中,dep与empl有一对多的关系 我有一个窗体小部件(dep),它有一个插入一个empl的按钮
当我点击该按钮时,会显示正确的对话框,但我可以输入任何我不想要的dep。 我希望将关系默认为“父”窗口小部件,在其中单击它并且理想情况下不可编辑。
答案 0 :(得分:2)
很难在没有看到您的应用的情况下给出确切的答案,但您应该用标签替换表单中的下拉列表,这将使其无法编辑。您可以将标签的值绑定到关系,就像下拉列表的值绑定一样。
稍微容易一点的选择是禁用下拉列表(在属性检查器中查找可能的Enabled)。但这可能会让您的用户感到困惑,因为他们可能认为它应该是可编辑的。
(或者,如果显示关系并不重要,您可以完全删除该字段。)
我认为这只能回答你问题的“不可编辑”部分,如果你想要预先填写,你需要做一些脚本,或者使用relation data sources。
我建议使用关系数据源,所以现在你可能有类似的东西:
app.datasources.Emp.create()
,创建一名新员工。
相反,您可以使用widget.datasource.relations.Emp.create()
,这将创建一个新的员工,该员工与widget.datasource中的当前项目有关系。如果此按钮放在您的部门表单窗口小部件中,那么这意味着它将创建与表单中显示的任何部门相关的员工。
请注意,这些都不会阻止用户更改员工的部门,只会更改UI。在很多情况下这已足够,但如果限制哪些用户可以创建员工,更改部门等,那么您可能还想添加一些服务器端安全控制:请参阅https://developers.google.com/appmaker/security/secure-app-data