0

我正在使用 HCL Notes 应用程序。我开发了一个摘要视图来向用户显示计算得出的数字。然后用户单击其中一个操作按钮并打开一个详细视图,但对于该视图,我动态设置了选择公式,以便显示特定于该按钮条件过滤的记录。几天来它几乎可以正常工作,但现在大部分时间它都会显示一些以前显示的(过滤的)数据,无论用户单击了哪个按钮。意味着它没有设置视图的选择公式,而是使用旧公式显示视图,即使重新启动 Notes 应用程序也不会恢复正常状态。

当用户被困在这种特殊情况下,并且他们通过状态栏窥视时,它会显示以下消息:

文件自签名后已被修改或损坏!(数据)。

必要的代码片段如下:

*设置 dtlView = db.GetView("Report_Dtl")

dtlView.SelectionFormula =公式

调用 dtlView.Refresh()*

其中公式是动态构建的公式。看起来像线

dtlView.SelectionFormula =公式

无法更新选择公式,然后下面的行生成上述错误消息:

调用 uidb.OpenView(dtlView.Name,,False, False)

请帮忙!

谢谢

4

1 回答 1

0

对于视图选择公式的“动态”修改,您的用户需要“设计器”——访问数据库,这绝不是一个好主意。您正在使用的功能的帮助文档明确指出这不是一个好主意(我的重点):

这不是为特定用户显示一组选定文档的好方法。当您使用此属性更改视图选择时,它适用于视图的所有用户

使用此方法使视图为最终用户显示新的文档选择存在问题:

不要最终用户Designer访问应用程序。

如果是共享视图,用户会互相干扰搜索

Notes® 客户端缓存设计信息,没有办法告诉它更新其缓存(大纲除外)。退出并重新进入应用程序通常是可行的,但很难以编程方式确保用户完全退出应用程序。

此外,视图选择公式的修改会破坏设计元素的签名,从而出现其他错误。

更好地使用另一种方法:

  • 为每个用户使用一个文件夹并将选定的文档放在那里(在使用公式执行 NotesDatabase.Search 之后
  • 为每个用户使用单独的视图,并让服务器代理与有权访问的用户一起操作其选择公式。

对于每个用户都有一个单独的视图/文件夹,您可以使用“共享,首次使用时私有” - 视图(它们不容易维护),或任何生成它们并能够将每个视图分配给他们所属的用户的过程到...在这两种情况下,这都需要一些努力,但至少它会起作用。

于 2021-07-04T12:05:20.173 回答