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