在跳到解决方案之前,我认为重要的是要解决您关于导致问题的问题的问题。有几个可能的原因:
1)您在数据库设计中没有名为“UserProfile”的表单,而“MasterProfile”表单是数据库中的默认表单。如果是这种情况,那么每次您在 Notes UI 中打开文档时,您都会默认加载 MasterProfile 表单。因此,当您保存文档时,Form 字段中的值将更改为加载的表单名称,即“MasterProfile”。
2) 您在数据库中有一个“UserProfile”表单,但它的别名设置为“MasterProfile”。当您在 Notes UI 中保存文档时,Form 项实际上是根据表单的别名而不是主名称设置的,因此这会导致 Form 字段更改为“MasterProfile”。
3)您在数据库中有一个“UserProfile”表单,但您在表单上有一个名为“Form”的计算字段,该字段的公式实际上是“MasterProfile”。当您在 Notes UI 中保存文档时,Form 字段的计算值将覆盖已加载表单的名称和别名,因此这将导致 Form 字段更改为“MasterProfile”。
4) 您的应用程序使用了一个很少使用的 Notes 功能,称为“表单公式”。即,您从中打开文档的视图设计有一个表单公式,其值为“MasterProfile”。视图中的表单公式会导致 UI 使用公式结果来覆盖存储在文档中的表单字段。使用表单公式的一个令人讨厌的副作用是,当您保存文档时,表单字段中的值将被更改为覆盖的名称,即“MasterProfile”。
实际上还有其他几种可能性,但我认为它们比上述任何一种可能性都小。
#1 的解决方案是创建一个名为“ProfileSubform”的子表单并将“MasterProfile”的全部内容(字段和事件脚本)复制到它。然后彻底清除 MasterProfile 表单并将新的子表单插入其中。然后创建一个“UserProfile”表单并将 MasterProfile 表单也插入其中。(Ken Pepisa 的建议也很好,但是我建议的优点是您可以在不对您的应用程序进行任何其他更改的情况下做到这一点。)
#2 的解决方案是去掉或更正“UserProfile”表单的别名。
#3 的解决方案是去掉或更正“UserProfile”表单上的表单字段。
#4的解决方案更有问题。如果您可以摆脱视图中的表单公式,那么就这样做......但它可能是有原因的。你可能不得不让它更聪明,和/或你可能不得不接受 Ken 的建议之一。