2013-08-27 90 views
1

我試圖填充表格別名列表的組合框,我可以用表格名稱的列表填充它,但不能讓別名工作。我有這樣的代碼在組合框中的值填充與形式別名組合框

var forms = database.getForms().iterator(); 
var tNames = new Array; 
var cnt = 0; 
while (forms.hasNext()){ 
    var form:NotesForm = forms.next(); 
    var temp = form.getAliases(); 
    if (temp != "" && temp != null) { 
     tNames[cnt++] = temp; 
    } 
} 
form.recycle(); 
return tNames.sort(); 

如果我打破它,並返回第一時間值溫度通過我得到一個正確的Aliase值,但是,如果我讓它運行所有的方式,加載頁面時出現意外錯誤。我嘗試了幾種不同的方法來構建數組tNames,但似乎沒有任何工作。

+0

你應該使用下面納文勾勒出圖案。但是你列出的代碼拋出錯誤的原因是你對'form.recycle()'的調用超出了'while'循環的範圍。納文正確地將其轉移到循環中,你也應該這樣做。 :) –

+1

P.S.停止使用'新的Array()':http://www.timtripcony.com/blog.nsf/d6plinks/TTRY-9AN5ZK –

回答

7

甲形式可以具有多個別名。所以語句form.getAliases()返回一個Vector。當您僅運行一次循環時,變量tNames只包含組合框接受的單個值java.util.Vector類。但是,當你讓它通過可變tNames成爲所有值和java.util.Vector數組,它是不能接受的組合框中運行。

試試下面的代碼:

var forms = database.getForms().iterator(); 
var tNames = new Array(); 
var cnt = 0; 
while (forms.hasNext()){ 
    var form:NotesForm = forms.next(); 
    var temp = form.getAliases().toArray(); 
    tNames = tNames.concat(temp); 
    form.recycle(); 
} 
return tNames; 
+0

與大多數事情一樣,答案通常是簡單的。非常感謝。 –