1

我有一个数据库(通过代理)创建文档的 5 个副本并使用新表单名称存储它们(因此原始表单名称是“MasterProfile”,代理制作文档的 5 个副本并将它们命名为 UserProfile - 使用 XXXX .Form = "用户配置文件")。效果很好,当我查看 Ytria 中的表单/文档时,一切看起来都很好,表单“UserProfile”下有 5 个文档

现在在 UserProfile 文档中有一个热点,它从用户那里获取文档响应并使用

@If(@Command([FileSave]);@Command([FileCloseWindow]);"")

我遇到的问题是,当 @Command[FileSave] 运行时,它将文档保存回原始名称“MasterProfile”。我尝试将表单字段设置为正确的名称

FIELD Form := "UserProfile";

但这无济于事。

有谁知道我可能会错过什么?为什么复制的文档不保留为 UserProfile 而不是转换回 MasterProfile?

感谢您的帮助!

4

2 回答 2

3

在跳到解决方案之前,我认为重要的是要解决您关于导致问题的问题的问题。有几个可能的原因:

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 的建议之一。

于 2012-05-06T03:00:56.620 回答
1

您应该设置另一个字段而不是使用表单字段。当文档保存在 UI 中时,表单字段将始终由 Notes 设置。

例如,您可以创建一个 DocType 字段并将其设置为 MainProfile 或 UserProfile。然后在任何适当的 Notes 视图中,您可以添加该 DocType 列来代替您正在显示的 Form 列。我不确定 Ytria 是如何工作的,但希望您可以通过表单字段之外的另一个字段进行查看。

如果您绝对需要为此目的使用 Form 字段,您可以尝试通过 PostSave 事件更新 Form 字段,但我不确定这是否可能。

于 2012-05-05T23:07:40.380 回答