在 master/detail 关系表单小部件对话框按钮中设置详细信息的默认值

set default value for detail in master/detail relationship form widget dialog button

我有一个 master/detail 关系,类似于提供的关系示例。 在我的例子中,部门与员工有一对多的关系 我有一个表单小部件(部门),其中有一个用于插入员工的按钮。

当我单击该按钮时,会显示正确的对话框,但我可以输入任何我不想输入的部门。 我希望将关系默认为单击它的 "parent" 小部件,理想情况下不可编辑。

如果没有看到您的应用程序,很难给出准确的答案,但您可能应该用标签替换表单中的下拉菜单,这将使其不可编辑。您可以将标签的值绑定到关系,就像绑定下拉列表的值一样。

一个更简单的选项是禁用下拉列表(可能在 属性 检查器中查找已启用)。但这可能会让您的用户感到困惑,因为他们可能认为它应该是可编辑的。

(或者,如果显示关系并不重要,您可以完全删除该字段。)

我认为这只能回答您问题的 "not editable" 部分,如果您希望它成为 pre-filled,您要么需要编写一些脚本,要么使用 relation data sources.

我建议使用关系数据源,所以现在你可能有这样的东西:

app.datasources.Emp.create(),创建新员工。

相反,您可以使用 widget.datasource.relations.Emp.create(),这将创建一个与 widget.datasource 中的当前项目相关的新员工。如果此按钮位于您的部门表单小部件中,则意味着它将创建与表单中显示的任何部门相关的员工。

请注意 none 这会阻止用户更改员工的部门,它只会更改 UI。在很多情况下这就足够了,但如果限制哪些用户可以创建员工、更改部门等很重要,您可能还想添加一些 server-side 安全控制:请参阅 https://developers.google.com/appmaker/security/secure-app-data