0

我不得不再次向你寻求帮助。我在创建公共变量并在公式中使用它时遇到问题。这个问题的细节是:1,在启动 Lotus Notes 应用程序后,我必须创建公共变量 EmpNum,其中将包含一个员工编号(该编号将从 IBM Blue Pages 导入)2,这个 EmpNum 变量将用于过滤视图中的数据,所以我必须在视图选择的公式中使用它。

如果您能帮助解决这个问题,我将不胜感激。也许这个问题有可能有任何最简单的解决方案?

在此先感谢 Tomasz (td2003)

编辑:托斯滕,帕努,谢谢。我决定尝试使用@SetEnvironment 在notes.ini 中编写一个EmpNum 变量,并通过@GetEnvironment 读取它,它可以工作。但是(!)有一件很奇怪的事情: 1)当我输入公式“SELECT((form =“ITForm”)&(Status =“Completed”)&(TX_EmployeeNumber =@Environment(“EmpNum”)))”时视图显示“TX_EmployeeNumber”为空的所有文档;2) 否则,当我输入公式 "SELECT((form="ITForm") & (Status="Completed") & (TX_EmployeeNumber!=@Environment("EmpNum")))" (不等于)时,视图会显示所有文档其中“TX_EmployeeNumber”不是空的,无论 TX_EmployeeNumber 是否与 EmpNum 具有完全相同的值。例如:如果 EmpNum="P11"

我确信@Environment("EmpNum") 从notes.ini 中检索到正确的数据。

我完全糊涂了,完全不知道发生了什么。你对此有什么想法吗?

4

3 回答 3

2

首先:Lotus Notes 中没有您请求的公共变量。LotusScript 和公式中都没有。每个变量都只存在于其上下文中,而不是完整的客户端。

有两个地方可以放置这样的变量:

  1. 在 notes.ini 中,您可以使用公式(@Environment、@SetEnvironment、@getEnvironent)或 LotusScript(NotesSession.GetEnvironmentString、NotesSession.SetEnvironmentVar)设置/读取它。

  2. 在数据库的 Profile 文档中,您可以使用 @GetProfileField (Formula) 或 NotesDatabase.GetprofileDocument() (LotusScript) 获取它

这两种方法都不会帮助您获得 2 号。所有用户只有一个视图-选择-公式。将“用户特定”的东西放在那里可以让它正确呈现 ONE 值(服务器在构建视图索引时使用的那个),但不能正确呈现所有其他值。

要解决您的问题,您可以使用:

a) 嵌入式视图

  1. 按 empNum 分类的视图
  2. 嵌入此视图的表单和此嵌入视图集的“显示单个类别”公式

b) SPOFU 视图

SPOFU 是“共享,首次使用时私有”,意味着每个用户都有自己的视图副本。这些观点有一些警告并且难以维护。如果您不完全了解其含义,则不应使用它们(正确设置 ACL 对于这些视图来说是一件非常重要的事情)...

编辑(由于有问题的更改):SPOFU 既不能用于环境,也不能用于配置文件,因为视图中不支持读取它们的方法......所以 b) 不是一个真正的选择......对不起......

于 2013-09-10T08:37:19.383 回答
1

可以在视图的 QueryOpen 和/或 PostOpen 中使用 @SetViewInfo 公式,以使视图仅显示一个类别的数据。请注意这一点,因为您需要触摸每个视图,以便在用户导航到未按员工编号分类的视图时清除该值...

FWIW:我只使用@UserName 而不是另一条数据来完成此操作。我建议您通过让导入过程在导入文档时将用户的完全限定 Notes 名称添加到文档中来做到这一点。

于 2013-09-10T22:36:07.623 回答
0

您可以使用类修改视图选择公式NotesView。在这种情况下,您将不得不使用私有视图。

更好的解决方案是使用 XPage 来显示视图并使用类别过滤器。或者,如果您想使用传统样式,则将视图嵌入到表单或页面并使用“显示单个类别”功能。

于 2013-09-10T08:37:09.060 回答