2014-10-29 48 views

回答

0

您可以在此重複執行重複嗎?

第一個重複會捕獲您的第一個類別。然後裏面有一個面板和一個重複,第二個重複將進一步過濾數據源的第二類

0

你作弊。有一列連接客戶和項目。在選擇中抓取該列並將其拆分爲代碼。

然後使用所選值作爲一列。讓我們假設你的原始專欄是客戶和項目。所以你的新專欄將有公式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);

將刷新放在更改事件上並僅在選擇了項目時才呈現視圖。

這是否適合您?

0

由於球員

我創建的視圖,所述第一列被分類和它的值是客戶服務+然後把

document1.getDocument()。getItemValueString( 「客​​戶」)+ document1.getDocument( ).getItemValueString(「服務」)

in「按類別名稱篩選」的視圖面板現在可以使用。