XPages退出while循环

XPages退出while循环,xpages,Xpages,我有一个下面这样的代码是通过SSJS编写的。当我暂停时,我想转到while循环函数的末尾(我已经编写了//do staff…我想去的地方)。 我的问题是我必须将其用于哪种代码 while (docOrg!= null) { var tmpdoc = viewOrg.getNextDocument(); if (docOrg.getItemValueString("Name")== docSta.getItemValueString("CompanyName")) {

我有一个下面这样的代码是通过SSJS编写的。当我暂停时,我想转到while循环函数的末尾(我已经编写了//do staff…我想去的地方)。 我的问题是我必须将其用于哪种代码

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...

我同意你的代码应该像预期的那样被破坏。但是,我会稍微更改它以完成回收-如下所示:

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;
}

/John

我同意您的代码应该如预期的那样中断。但是,我会稍微更改它以完成回收-如下所示:

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;
}

/约翰

你的休息时间应该按预期工作。它跳转到“//do staff”。虽然

……也许有更好的办法。您可以遍历视图以查找此公司文档。如果使用视图索引查找公司的文档,性能会更好:

var viewCompanies=db.getView(“公司”);
var docOrg=viewcompanys.getDocumentByKey(docSta.getItemValueString(“CompanyName”,true));
if(docOrg!=null){
公司ID=docOrg.getItemValueString(“VAT”);
公司名称=docOrg.getItemValueString(“发票名称”);
公司地址=docOrg.getItemValueString(“发票地址”);
FIRM_REGION=docOrg.getItemValueString(“公司区域”);
recycle();
}

您的休息时间应按预期工作。它跳转到“//do staff”。虽然

……也许有更好的办法。您可以遍历视图以查找此公司文档。如果使用视图索引查找公司的文档,性能会更好:

var viewCompanies=db.getView(“公司”);
var docOrg=viewcompanys.getDocumentByKey(docSta.getItemValueString(“CompanyName”,true));
if(docOrg!=null){
公司ID=docOrg.getItemValueString(“VAT”);
公司名称=docOrg.getItemValueString(“发票名称”);
公司地址=docOrg.getItemValueString(“发票地址”);
FIRM_REGION=docOrg.getItemValueString(“公司区域”);
recycle();
}

您的代码应该已经做了您想要做的事情:不要忘记
var tmpdoc=viewOrg.getNextDocument(docOrg)中的参数docOrg这只是一个示例:)谢谢。我不会忘记while循环之后的it.BTW和docOrg.recycle()。你的代码应该已经完成了你想要的:不要忘记
var tmpdoc=viewerg.getNextDocument(docOrg)中的参数docOrg这只是一个示例:)谢谢。我不会忘记while循环之后的it.BTW和docOrg.recycle()