2016-03-10 303 views
1

我有一個類似下面的代碼,通過SSJS編寫。當我放下休息時,我想去while循環函數的結尾(我寫過//做工作人員......我想去哪裏)。 我的問題是我必須使用哪個代碼?XPage從while循環退出

while (docOrg!= null) 
{ 
    var tmpdoc = viewOrg.getNextDocument(); 
    if (docOrg.getItemValueString("Name")== docSta.getItemValueString("CompanyName")) 
    { 
    FIRM_ID = docOrg.getItemValueString("VAT"); 
    FIRM_NAME= docOrg.getItemValueString("InvoiceName"); 
    FIRM_ADDRESS=docOrg.getItemValueString("InvoiceAddress"); 
    FIRM_REGION=docOrg.getItemValueString("CompanyRegion") ; 
    break; 
    } 
    docOrg.recycle(); 
docOrg = tmpdoc; 
} 

//do staff... 
+1

您的代碼應該做你想要什麼已經:http://www.w3schools.com/js/js_break.asp –

+2

唐」在'var tmpdoc = viewOrg.getNextDocument(docOrg)'中忘記參數docOrg;' –

+0

這只是一個示例:)謝謝。我不會忘記它。 –

回答

4

休息應該按預期工作。它跳轉到「//做員工」。雖然...

...可能有更好的方法。你通過查看來找到這個公司文件。性能會更好,如果你使用的視圖索引找到公司的文件:

var viewCompanies = db.getView("Companies"); 
var docOrg = viewCompanies.getDocumentByKey(docSta.getItemValueString("CompanyName", true)); 
if (docOrg!= null) { 
    FIRM_ID = docOrg.getItemValueString("VAT"); 
    FIRM_NAME= docOrg.getItemValueString("InvoiceName"); 
    FIRM_ADDRESS=docOrg.getItemValueString("InvoiceAddress"); 
    FIRM_REGION=docOrg.getItemValueString("CompanyRegion") ; 
    docOrg.recycle(); 
} 
2

我同意你的代碼應該按預期中斷。不過,我想稍微改變它得到循環完成 - 這樣的:

while (docOrg!= null) 
{ 
    var tmpdoc = viewOrg.getNextDocument(); 
    if (docOrg.getItemValueString("Name")== docSta.getItemValueString("CompanyName")) 
    { 
    FIRM_ID = docOrg.getItemValueString("VAT"); 
    FIRM_NAME= docOrg.getItemValueString("InvoiceName"); 
    FIRM_ADDRESS=docOrg.getItemValueString("InvoiceAddress"); 
    FIRM_REGION=docOrg.getItemValueString("CompanyRegion") ; 
    // break; 
    tmpdoc = null; // This will ensure cleanup of docOrg - and stop loop :-) 
    } 
    docOrg.recycle(); 
docOrg = tmpdoc; 
} 

/約翰