【问题标题】:Xpages get All documents more than one Lotus DatabaseXpages 获取多于一个 Lotus Database 的所有文档
【发布时间】:2016-01-06 14:55:04
【问题描述】:

我有 3 个数据库,每个数据库都有相同的命名视图。我只想将这 3 个视图中的所有文档拉到一个数据表或重复控件或任何其他可以使用的组件中。 我只想收集所有文档以便在一个屏幕上查看它们。

问候 C.A.

【问题讨论】:

  • 只需构建一个 Java bean。创建一个模型,将值存储为要显示的字段,并通过从所有三个数据库中获取数据在 Java 中创建这些对象的列表,然后使用重复控件在 UI 中显示 Java 列表。这样,您看到的是 Java 对象,而不是多米诺骨牌视图。

标签: datatable xpages repeat


【解决方案1】:

一般来说,用managed bean 处理这个问题的方法是绝对正确的,但是请记住,如果你必须处理大数据,这将是一个性能问题,因为程序化的方式(使用 java "data " 对象,包括排序、过滤等操作)比处理索引数据(例如xp:dominoView)要慢得多!

在我看来你只有两个选择:

1) 编程方式,使用 java(托管 bean)或服务器端 javascript。

2) “索引方式”,如果可以将您的数据收集到一个数据库中(例如,使用预定代理)

【讨论】:

    【解决方案2】:

    您可以获取文档并将它们全部添加到 DocumentCollection 中,然后将其传递给一个重复(也可能是一个数据表)。

    我要做的是创建一个获取文档的 Java bean。在该 bean 中,您有一个公共类,可以说我们称之为 docInfo。该类中包含每一行的数据(名称、地址等),如果您想允许打开文档,可能还有 docId。当您创建该 docInfo 类的新实例并将其添加到列表时。然后有一个返回列表的方法。这是您将在重复中调用的内容,然后使用 getter 获取每行的值。如果您的重复变量是行,那么您将使用 row.getName() 来获取名称等。

    这将使您能够灵活地控制排序,并且如果需要,还可以提供过滤文档的方法。

    霍华德

    【讨论】:

      【解决方案3】:

      @Howard - 您实际上无法创建跨数据库的 DocumentCollection。我最近尝试过这个并发现了。因为我可以在不同的“选项卡”中返回每个 nsf 的值(我在选项卡式面板中使用数据表),所以我的搜索是在 bean 中完成的。我只是返回 NoteID,然后调用 doc 值来填充我的表。

      @Cumhur,我建议做类似的事情,但您可能需要添加源数据库。

      除了为我的项目获取 NoteID 之外,我不需要更进一步,但如果我试图从对象中获取值,我会遇到一些困难。我的下一步是创建一个带有 NoteID 和源 nsf 的 JSON 数组。但我没有去那里。但是,这可能是您的解决方案。从每个 nsf 中获取搜索结果并将它们组合并返回组合结果。

      【讨论】:

      • 我对我的回复的第一部分进行了更正,正如我所说,我只会使用 Java bean 来执行此操作。它也可以用 SSJS 来完成,但不是我建议的......
      • 我没有足够的 java 经验 :( 如果你不介意,如果可能的话,你能否给我发一份你的 bean 类的样本?因为我不知道如何用 java 做:(
      • 抱歉,我没有可以发送的独立示例。就 Java 经验而言,我们确实在 tlcc.com 提供了 XPages 的 Java 课程。霍华德
      • 恐怕我发帖的工作太繁琐了。有将视图条目集合转换为 JSON 的示例,只需对每个不同的数据库执行此操作,然后将每个数据库添加到 JSON。数据库名称和 NoteID 或 UNID 的 JSON 返回将使您能够访问正确的文档。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-06-26
      • 1970-01-01
      • 2019-02-05
      • 1970-01-01
      • 2016-07-02
      • 1970-01-01
      相关资源
      最近更新 更多