2016-01-06 61 views
3

我有3個數據庫,每個數據庫都有相同的命名視圖。我只是想將這3個視圖中的所有文檔都放入一個dataTable或重複控件或其他可以使用的組件中。 我只想收集所有文件在一個屏幕上看到它們。Xpages獲取所有文檔不止一個Lotus數據庫

Regards C.A.

+1

只是建立一個Java bean。創建一個模型,將值存儲爲要顯示的字段,並通過從所有三個數據庫獲取數據來創建這些Java對象的列表,然後使用重複控制在UI中顯示Java列表。這樣你就可以看到一個Java對象,而不是多米諾視圖。 – pipalia

回答

1

@Howard - 你居然不能創建跨數據庫的一個DocumentCollection。我最近嘗試過,發現如此。由於我可以在不同的'選項卡'中返回每個nsf的值(我在標籤面板中使用數據表),我的搜索是在一個bean中完成的。我只是返回NoteID,然後調用文檔值來填充我的表格。

@Cumhur,我建議做類似的事情,但你可能需要添加源數據庫。

我不需要進一步獲取我的項目的NoteID,但是如果我嘗試從對象中獲取值,我遇到了一些困難。我的下一步是創建一個帶有NoteID和source nsf的JSON數組。但我沒有去那裏。不過,這可能是您的解決方案。從每個nsf獲取搜索結果併合並它們並返回組合結果。

+0

正如我所說,我的答覆的第一部分已經得到糾正,我只是使用Java bean來做到這一點。它也可以用SSJS來完成,但不是我會建議的... – Howard

+0

我沒有足夠的Java經驗:(如果你不介意,如果可能的話,請你給我一個你的bean類的樣本? 因爲我不知道如何使用java:( –

+0

)對不起,我沒有可以發送的獨立示例。就Java體驗而言,我們確實在http://www.tlcc提供了XPages的Java課程.com。Howard – Howard

2

您可以獲取文檔並將它們全部添加到DocumentCollection並將其傳遞給重複(也可能是數據表)。

我會做的是創建一個獲取文檔的Java bean。在這個bean裏面你有一個公共類,讓我們稱之爲docInfo。這個類有它的每一行的數據(名字,地址,不管),如果你想允許打開文檔,可能還有docId。當您創建該docInfo類的新實例並將其添加到列表。然後有一個返回List的方法。這是您在重複中調用的內容,然後使用getter來獲取每一行的值。如果你的重複變量是行,那麼你會使用row.getName()來獲取名稱等。

這會給你控制排序的靈活性,並且還可以根據需要篩選文檔。

霍華德

3

總的來說,用managed bean來處理這個問題的方法是絕對正確的,但請記住,如果您必須處理大數據,那將是一個性能問題,因爲編程方式(使用java「數據」對象,包括諸如排序,過濾等操作)比處理索引數據要慢得多(例如xp:dominoView)!

在我看來,你只有兩種選擇:

1)的編程方式,用java(託管Bean)或服務器端JavaScript。

2)「索引方式」,如果有可能,收集你的數據到一個數據庫中(例如,用預定的代理)

+0

第二種方法更有效,我想。 謝謝 –

相關問題