0

我尝试运行的方法如下,我尝试遍历 GBP 中的子合同,然后我有一个内部循环来遍历每个子合同中的覆盖范围。

forEach curSubscribedSubContract in theSubContracts
   ; Avoid building empty contract node
   if subOptions.count > 0
      new(ParamProduct)
      new(ParamSubscribedProduct)
      forEach curOption in subOptions downTo 
         theProduct = curOption.GetProduct
         new(ListOfCoverages)
         if Motor.AreSameThings(theProduct, curSubscribedSubContract.GetProduct)
            ParamSubscribedProduct.InitParamFromObjectAtDate(curSubscribedSubContract, 
               AtDate)
            ParamProduct.Product = ParamSubscribedProduct
            ;Set Context for PlanDesign options
            AFCI_SLI.CoverageInContext = curOption
            covData = self._GetCoverageData(curOption, AtDate)
            ;Reset coverage context               
            AFCI_SLI.CoverageInContext = Nil
            ListOfCoverages.AppendObject(covData)
            if subOptions.RemoveObject(curOption)
            endIf
         endIf
         forEach curCoverageData in ListOfCoverages
            ParamProduct.Coverages[-1] = curCoverageData
         endFor
         dispose(ListOfCoverages)
      endFor
      _Result[-1] = ParamProduct
   endIf
endFor
4

1 回答 1

1

分包合同或分选项中是否缺少项目?

我认为以下代码行与它有关:

if subOptions.RemoveObject(curOption)
endIf

我不确定从正在迭代的列表中删除对象是否是一种好习惯。

尝试从子选项的 foreach 循环中删除“向下”

于 2017-12-05T08:49:39.117 回答