我有3個數據庫,每個數據庫都有相同的命名視圖。我只是想將這3個視圖中的所有文檔都放入一個dataTable或重複控件或其他可以使用的組件中。 我只想收集所有文件在一個屏幕上看到它們。Xpages獲取所有文檔不止一個Lotus數據庫
Regards C.A.
我有3個數據庫,每個數據庫都有相同的命名視圖。我只是想將這3個視圖中的所有文檔都放入一個dataTable或重複控件或其他可以使用的組件中。 我只想收集所有文件在一個屏幕上看到它們。Xpages獲取所有文檔不止一個Lotus數據庫
Regards C.A.
@Howard - 你居然不能創建跨數據庫的一個DocumentCollection。我最近嘗試過,發現如此。由於我可以在不同的'選項卡'中返回每個nsf的值(我在標籤面板中使用數據表),我的搜索是在一個bean中完成的。我只是返回NoteID,然後調用文檔值來填充我的表格。
@Cumhur,我建議做類似的事情,但你可能需要添加源數據庫。
我不需要進一步獲取我的項目的NoteID,但是如果我嘗試從對象中獲取值,我遇到了一些困難。我的下一步是創建一個帶有NoteID和source nsf的JSON數組。但我沒有去那裏。不過,這可能是您的解決方案。從每個nsf獲取搜索結果併合並它們並返回組合結果。
您可以獲取文檔並將它們全部添加到DocumentCollection並將其傳遞給重複(也可能是數據表)。
我會做的是創建一個獲取文檔的Java bean。在這個bean裏面你有一個公共類,讓我們稱之爲docInfo。這個類有它的每一行的數據(名字,地址,不管),如果你想允許打開文檔,可能還有docId。當您創建該docInfo類的新實例並將其添加到列表。然後有一個返回List的方法。這是您在重複中調用的內容,然後使用getter來獲取每一行的值。如果你的重複變量是行,那麼你會使用row.getName()來獲取名稱等。
這會給你控制排序的靈活性,並且還可以根據需要篩選文檔。
霍華德
總的來說,用managed bean
來處理這個問題的方法是絕對正確的,但請記住,如果您必須處理大數據,那將是一個性能問題,因爲編程方式(使用java「數據」對象,包括諸如排序,過濾等操作)比處理索引數據要慢得多(例如xp:dominoView
)!
在我看來,你只有兩種選擇:
1)的編程方式,用java(託管Bean)或服務器端JavaScript。
2)「索引方式」,如果有可能,收集你的數據到一個數據庫中(例如,用預定的代理)
第二種方法更有效,我想。 謝謝 –
只是建立一個Java bean。創建一個模型,將值存儲爲要顯示的字段,並通過從所有三個數據庫獲取數據來創建這些Java對象的列表,然後使用重複控制在UI中顯示Java列表。這樣你就可以看到一個Java對象,而不是多米諾視圖。 – pipalia