重命名Lotus Notes文档

时间:2012-05-05 21:52:55

标签: lotus-notes

我有一个数据库(通过代理)创建5个文档副本并使用新的表单名称存储它们(因此原始表单名称为“MasterProfile”,代理程序制作5个文档副本并将其命名为UserProfile - 使用XXXX.Form =“UserProfile”)。这非常有效,当我查看Ytria中的表格/文件时,一切看起来不错,表格“UserProfile”下有5个文件

现在在UserProfile文档中有一个Hotspot,它接收来自用户的文档响应并使用

保存表单

@If(@Command([的FileSave]); @命令([FileCloseWindow]); “”)

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

FIELD Form:=“UserProfile”;

但这没有做任何事情。

有没有人知道我可能缺少什么?为什么复制的文档不能保留为UserProfile而不是转换回MasterProfile?

感谢您的帮助!

2 个答案:

答案 0 :(得分:3)

在跳到解决方案之前,我认为解决导致问题的原因的问题非常重要。有几种可能的原因:

1)数据库设计中没有名为“UserProfile”的表单,“MasterProfile”表单是数据库中的默认表单。如果是这种情况,那么每次在Notes UI中打开文档时,都会将MasterProfile表单作为默认表单加载。因此,当您保存文档时,“表单”字段中的值将更改为已加载的表单名称,即“MasterProfile”。

2)您在数据库中有一个“UserProfile”表单,但它的别名设置为“MasterProfile”。在Notes UI中保存文档时,Form项目实际上将根据表单的别名设置,而不是主名称,因此这将导致Form字段更改为“MasterProfile”。

3)您在数据库中确实有一个“UserProfile”表单,但是您在表单上有一个名为“Form”的计算字段,该字段的公式实际上是“MasterProfile”。在Notes UI中保存文档时,Form字段的计算值将覆盖已加载表单的名称和别名,因此这将导致Form字段更改为“MasterProfile”。

4)您的应用程序正在使用Notes中很少使用的称为“表单公式”的功能。即,您打开文档的视图的设计有一个Form Form,其值为“MasterProfile”。视图中的表单公式使UI使用公式结果来覆盖存储在文档中的表单字段。使用表单公式的一个令人讨厌的副作用是,当您保存文档时,表单字段中的值将被标记为被覆盖的名称,即“MasterProfile”。

实际上还有其他几种可能性,但我认为它们不如上述任何一种可能性。

#1的解决方案是创建一个名为“ProfileSubform”的子表单,并将“MasterProfile”的全部内容(字段和事件脚本)复制到其中。然后彻底擦除MasterProfile表单并将新子表单插入其中。然后创建一个“UserProfile”表单并将MasterProfile表单插入其中。 (Ken Pepisa的建议也很好,但我建议的优点是你可以在不对你的申请做任何其他修改的情况下这样做。)

#2的解决方案是删除或更正“UserProfile”表单的别名。

#3的解决方案是删除或更正“UserProfile”表单上的表单字段。

#4的解决方案更成问题。如果您可以在视图中删除Form公式,那么就这样做......但它可能是有原因的。你可能必须让它变得更聪明,和/或你可能不得不接受Ken的一个建议。

答案 1 :(得分:1)

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

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

如果您绝对需要使用“表单”字段来实现此目的,可以尝试通过PostSave事件更新“表单”字段,但我不确定是否可以。