我想設計一個僅顯示選定客戶和服務項目的視圖,因此我創建了一個視圖,即客戶和服務列被分類以及該視圖的視圖面板。如果我把 document1.getDocument().getItemValueString(「Customer」)Xpages「按類別名稱篩選」,包含兩個字段值(將視圖限制爲多個類別)
它與限制單個類別一起使用。我怎樣才能做到這一點與兩列分類。
在此先感謝
我想設計一個僅顯示選定客戶和服務項目的視圖,因此我創建了一個視圖,即客戶和服務列被分類以及該視圖的視圖面板。如果我把 document1.getDocument().getItemValueString(「Customer」)Xpages「按類別名稱篩選」,包含兩個字段值(將視圖限制爲多個類別)
它與限制單個類別一起使用。我怎樣才能做到這一點與兩列分類。
在此先感謝
您可以在此重複執行重複嗎?
第一個重複會捕獲您的第一個類別。然後裏面有一個面板和一個重複,第二個重複將進一步過濾數據源的第二類
你作弊。有一列連接客戶和項目。在選擇中抓取該列並將其拆分爲代碼。
然後使用所選值作爲一列。讓我們假設你的原始專欄是客戶和項目。所以你的新專欄將有公式customer+"~"+project
。然後讀取此值以填充SSJS對象或變量,以便您可以檢索客戶(第一個下拉列表)和項目(第二個下拉列表)。在下拉菜單中,您可以使用格式Display|Value
,因此一個好的方法是以customer〜項目的格式獲取值。
正如你所說,你可以在Java或JavaScript中做到這一點。因爲我喜歡Java的集合框架有很多,這裏的Java版本:
import java.util.Set;
import java.util.Map;
import java.util.TreeMap;
import java.util.TreeSet;
import lotus.domino.Database;
import lotus.domino.NotesException;
import lotus.domino.View;
import lotus.domino.ViewEntry;
import lotus.domino.ViewEntryCollection;
public class SplitCategoryBean {
private static final String SEPARATOR = "~";
private final Map<String,Set<String>> allCategories = new TreeMap<String, Set<String>>();
public void populate(Database db, String viewName) throws NotesException {
View v = db.getView(viewName);
ViewEntryCollection vec = v.getAllEntries();
ViewEntry ve = vec.getFirstEntry();
while (ve != null) {
ViewEntry nextVE = vec.getNextEntry(ve);
this.addEntry(ve.getColumnValues().get(0).toString());
ve.recycle();
ve = nextVE;
}
vec.recycle();
v.recycle();
}
private void addEntry(String combinedCategory) {
String[] splitCategory = combinedCategory.split(SEPARATOR);
String key = splitCategory[0];
String value = splitCategory[1];
Set<String> thisCategory = (this.allCategories.containsKey(key)) ? this.allCategories.get(key): new TreeSet<String>();
thisCategory.add(value+"|"+combinedCategory);
this.allCategories.put(key, thisCategory);
}
public Set<String> getFirstCategory() {
return this.allCategories.keySet();
}
public Set<String> getSecondCategoryReadyForDropDown(String key) {
return this.allCategories.get(key);
}
}
爲管理bean(viewScope)和queryOpen調用填入方法,你能配置。然後,您可以輕鬆地將您的第一個選擇綁定到#{beanName.firstCategory}
以進行選擇,例如該值爲#{viewScope.curCustomer}
。第二個下拉菜單使用rendered="#{viewScope.curCustomer}"
,因此它僅在選擇客戶時顯示。並且您將所選內容綁定到#{javascript:beanName.getSecondCategoryReadyForDropDown(viewScope.curCustomer);
將刷新放在更改事件上並僅在選擇了項目時才呈現視圖。
這是否適合您?
由於球員
我創建的視圖,所述第一列被分類和它的值是客戶服務+然後把
document1.getDocument()。getItemValueString( 「客戶」)+ document1.getDocument( ).getItemValueString(「服務」)
in「按類別名稱篩選」的視圖面板現在可以使用。