0

我想向正在访问视图的用户显示他或她下面的文档。

例如:如果我有一个名为“名称”的字段。视图中有 23 个文档以及所有这些文档,但其中只有五个在“名称”字段下有我的名字。我想在视图中显示我下面的所有文件,这将是五个文件。

请你帮助我好吗?我很感激。

4

3 回答 3

5

创建带有嵌入视图的页面。
按字段对视图进行分类Name。将公式或取决于您的字段的格式
设置为嵌入视图的属性“显示单个类别” 。 显示页面而不是视图。@UserName
@Name([CN]; @UserName)Name

通过这种方式,您可以避免“共享、首次使用时私有”视图或类似方法的麻烦,并且用户只能看到他们自己的文档。

于 2015-08-17T19:26:36.720 回答
3

您这样做是为了方便还是出于安全目的?如果是后者,那么 Notes 有一个名为 Readers(或 Reader Names)字段的功能,可以完全满足您的需求。即,如果您为名为 Names 的字段类型选择“Readers”,那么数据库中的所有视图都将以您想要的方式运行。即,他们将仅向每个用户显示在“名称”字段中具有其名称的文档。

对此有几个警告......

  • Names 字段必须具有“允许多值”属性。(对于您可以考虑的大多数解决方案,这可能是正确的。
  • Names 字段中的用户名应采用规范格式或平面(仅通用名称)格式。
  • 在您刷新这些文档中的字段之前,更改字段的类型不会对现有文档产生影响。
  • 为所有文档的 Names 字段的值添加一个角色通常是个好主意,这样在数据库 ACL 中被授予该角色的管理员可以看到所有文档。
于 2015-08-17T21:22:41.023 回答
2

如果您只需要为 Lotus Client 使用此功能……您可以这样做,但它很棘手,并且需要对 Notes 视图有一点熟悉。

您需要创建一个“首次使用时共享的、桌面私有的”视图。您必须从头开始创建一个新视图,因为您无法将现有的“标准”视图转换为“私有”视图。执行此操作的选项位于“创建视图”对话框中,位于“视图名称”字段右侧的“视图类型”下拉列表下。

私有视图将显示在视图列表中,其名称旁边有一个黄色键。

私有视图与共享视图的不同之处在于,只要任何用户(包括您!)第一次打开它,视图本身就会被复制到客户端桌面文件中。对于第一次之后的每个后续打开,使用(本地)客户端副本而不是(共享)服务器副本。

这有一个优点和两个缺点。

  • 优点是现在您可以根据@UserName函数定义自定义选择公式。例如,根据您的请求,您可以将选择公式定义为 SELECT ((Form = "MyForm") & (Name = @UserName)) 这样做,每个将打开所述视图一次的用户将只看到表单字段为“MyForm”且名称字段等于其用户名的文档

  • 缺点是,如果您需要对私有视图执行维护(例如:更改、添加或删除列),则需要清除所有打开该视图的客户端上的所有本地副本。这是通过简单地从 Notes 桌面删除应用程序图标来执行的(弹出窗口会警告您删除图标将删除本地存储的视图)并重新打开它。如果您不这样做,客户将继续使用存储在本地存储副本中的旧视图设计,而不是新编辑的新视图。此外,如果您通过 webbrowser 使用应用程序,私有视图将不起作用,这是第二个主要缺点

避免删除应用程序图标以清除旧视图设计的一个技巧是,每次需要编辑视图时都以不同的方式命名视图,迫使用户存储另一个副本(例如,如果视图通过大纲链接)。但这会留下一些脏客户端,其中存储了旧的、死掉的视图,如果用户可以访问“右键单击 > 转到”菜单,它们仍然可以访问。

关于“共享、桌面私有”视图,还需要记住两点:

  • 它们存储在本地desktop*.dsk文件中。删除此类文件还将删除用户客户端中打开的所有应用程序中的所有私有视图。
  • 它们依赖于客户,而不是依赖于用户。这意味着使用来自另一个客户端的应用程序的同一用户将使用存储在该客户端上的视图,这些视图可能已经被另一个用户访问过,因此将由该用户名进行自定义。
于 2015-10-08T17:28:51.277 回答