2013-06-01 18 views
1

我有一個從另一個.nsf文件中提取數據的Xpages應用程序。我有一個視圖面板鏈接到該數據庫中的視圖。該視圖具有包含幾種不同形式的文檔。我希望能夠以自己的形式打開每個文檔(xpage)。從視圖面板中打開不同的xpages表單

如何編寫計算器在運行系統中,使用以下語句打開選定的文檔:語句將選擇正確的Xpage來呈現文檔。

回答

0

我已經使用了擴展庫動態視圖控件,它有一個事件,您可以編寫一個事件來獲取選定的NotesViewEntry的句柄。有關示例,請參閱演示數據庫頁面Domino_DynamicView.xsp和自定義事件處理程序選項卡...

請注意,如果您爲onColumnClick添加或編輯eventHandler,它將在8.5.3(我還沒有升級)中添加它作爲xe:eventHandler到XPages源代碼......它需要是一個xp:eventHandler才能工作。做到這一點的方法是從退出事件中複製源代碼並刪除它。重新創建事件並更新代碼。然後返回到源和事件處理到XP中更改標籤:....

Newbs

+0

謝謝大家。我將使用數據視圖而不是視圖控件。 –

2

你有2種選擇:「與表單關聯使用的XPage」

  • 使用,編輯表單的屬性

  • 使用SSJS公式來計算表單。您在視圖控件var中提供了一個變量名稱,以作爲XSPViewEntry訪問視圖行。如果表是一個視圖的列,甚至一個你不顯示您使用.getColumnValue否則getDocument.getItemValueString

爲你做這項工作?

2

如果使用數據視圖組件,而不是一個視圖面板中,你可以計算pageName屬性,引用var屬性根據行代表的文檔爲每行返回不同的值。數據視圖組件的靈活性也使得您的應用看起來更像一個現代的Web應用程序,而不像Excel電子表格。作爲額外的好處,移動主題調用一個渲染器,使每個數據視圖實例看起來像一個本地移動列表,所以使用數據視圖而不是視圖面板簡化了移動開發。

1

今天我有類似的問題。我只使用一個表單,但使用3個不同的xpages與此表單關聯。視圖中有3種不同的文檔類型。我用rowData獲取文檔的類型。

try{ 
    var v=rowData.getColumnValue("form"); 
    if(v.indexOf("x")> -1){var page ="x.xsp"} 
    else if(v.indexOf("y") > -1){var page = "y.xsp"} 
    else{var page = "z.xsp"} 
}catch(e){ 
    var page = "x.xsp" 
} 

因此,對於您的看法,您可以創建一個具有窗體值的列,並且您可以使用它。