| Quintiq file version 2.0 | 
| #parent: #root | 
| StaticMethod RefreshData ( | 
|   MacroPlan macroPlan, | 
|   OfflinePlanTable opt | 
| ) | 
| { | 
|   TextBody: | 
|   [* | 
|     //macroPlan.AssemblyOnlinePlanRow( relflush ); | 
|     //macroPlan.AssemblyOnlinePlanColumn( relflush ); | 
|     // | 
|     //// 找装配线行 | 
|     //oprs := selectsortedset( opt, OfflinePlanRow, tempOPR,  | 
|     //                         tempOPR.ProductionLine() = "DL MoMo"  | 
|     //                         or  | 
|     //                         tempOPR.ProductionLine() = "CC MoMo"  | 
|     //                         or  | 
|     //                         tempOPR.ProductionLine() = "DL ZKM" | 
|     //                         ,  | 
|     //                         tempOPR.ProductionLine(), tempOPR.ProductID(), tempOPR.Type() ); | 
|     //opcs := selectsortedset( opt, OfflinePlanColumn, tempOPC, true, tempOPC.ColumnDate() ); | 
|     // | 
|     //// 生成表格 | 
|     //traverse ( opcs, Elements, opc ) { | 
|     //  aopc := macroPlan.AssemblyOnlinePlanColumn( relnew, ColumnDate := opc.ColumnDate(), ColumnIndex := opc.ColumnIndex() ); | 
|     //  traverse ( oprs, Elements, opr ) { | 
|     //    aopr := select( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductID() = opr.ProductID() and tempAOPR.ProductionLine() = opr.ProductionLine() and tempAOPR.Type() = opr.Type() ); | 
|     //    if ( isnull( aopr ) ) { | 
|     //      aopr := macroPlan.AssemblyOnlinePlanRow( relnew, ProductID := opr.ProductID(), ProductionLine := opr.ProductionLine(), Type := opr.Type() ); | 
|     //    } | 
|     //     | 
|     //    cellOPC := select( opr, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanColumn() = opc ); | 
|     //    if ( not isnull( cellOPC ) ) { | 
|     //      cellAOPC := aopc.AssemblyOnlinePlanCell( relnew, Value := cellOPC.Value() ); | 
|     //      cellAOPC.AssemblyOnlinePlanRow( relset, aopr ); | 
|     //    } | 
|     //  } | 
|     //} | 
|     // | 
|     //// 处理日历事件 | 
|     //pls := selectuniquevalues( macroPlan, AssemblyOnlinePlanRow, tempAOPR, true, tempAOPR.ProductionLine() ); | 
|     //traverse ( pls, Elements, pl ) { | 
|     //  targetQuantity := ifexpr( pl = "CC MoMo", guard( macroPlan.AssemblyOnlineQuantity().CCMoMo(), 0 ), | 
|     //                            ifexpr( pl = "DL MoMo", guard( macroPlan.AssemblyOnlineQuantity().DLMoMo(), 0 ), guard( macroPlan.AssemblyOnlineQuantity().DLZKM(), 0 ) ) | 
|     //                           ); | 
|     //   | 
|     //  u           := select( macroPlan, Unit, tempU, tempU.ID() = pl ); | 
|     //  drainPs     := selectset( u, UnitCalendar.Participation, tempP, guard( tempP.Event().Subject().Regex( "拉空" ), false ) ); | 
|     //  lineLyingPs := selectset( u, UnitCalendar.Participation, tempP, guard( tempP.Event().Subject().Regex( "铺线" ), false ) ); | 
|     //   | 
|     //  // 处理排空 | 
|     //  info( "当前产线:", pl, "    处理拉空--------------------------" ); | 
|     //  traverse ( drainPs, Elements, p ) { | 
|     //    traverse ( p, ExplicitTimeInterval, eti ) { | 
|     //      info( "开始时间:", eti.Start().Format( "Y-M2-D2" ), "    结束时间:", eti.End().Format( "Y-M2-D2" ) ); | 
|     //      // 前一天日历 | 
|     //      aopc := select( macroPlan, AssemblyOnlinePlanColumn, tempAOPC, tempAOPC.ColumnDate() = ( eti.Start().Date() - 1 ) ); | 
|     //      info( "需要拉空的上线计划时间:", aopc.ColumnDate().Format( "Y-M2-D2" ) ); | 
|     //      aoprs := selectset( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductionLine() = pl and tempAOPR.Type() = "2" and | 
|     //                          exists( tempAOPR, AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc and tempAOPC.Value() <> "" ) ); | 
|     //      aopr  := maxselect( aoprs, Elements.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc, | 
|     //                          [Number]tempAOPC.Value().ReplaceAll( "#0", "" ) ); | 
|     //      cell  := select( macroPlan, AssemblyOnlinePlanRow.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanRow().ProductionLine() = pl and tempAOPC.AssemblyOnlinePlanColumn() = aopc and | 
|     //                       tempAOPC.AssemblyOnlinePlanRow().Type() = "1" and tempAOPC.AssemblyOnlinePlanRow().ProductID() = aopr.AssemblyOnlinePlanRow().ProductID() );  | 
|     //       | 
|     //      cell.Value( [String] ( [Number]cell.Value() - targetQuantity ) ); | 
|     //    } | 
|     //  } | 
|     //   | 
|     //  info( "当前产线:", pl, "    处理铺线--------------------------" ); | 
|     //  // 处理铺线 | 
|     //  traverse ( lineLyingPs, Elements, p ) { | 
|     //    traverse ( p, ExplicitTimeInterval, eti ) { | 
|     //      info( "开始时间:", eti.Start().Format( "Y-M2-D2" ), "    结束时间:", eti.End().Format( "Y-M2-D2" ) ); | 
|     //      info( "需要铺线的上线计划时间:", eti.Start().Format( "Y-M2-D2" ) ); | 
|     //      aopc  := select( macroPlan, AssemblyOnlinePlanColumn, tempAOPC, tempAOPC.ColumnDate() = eti.Start().Date() ); | 
|     //      aoprs := selectset( macroPlan, AssemblyOnlinePlanRow, tempAOPR, tempAOPR.ProductionLine() = pl and tempAOPR.Type() = "2" and | 
|     //                          exists( tempAOPR, AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc and tempAOPC.Value() <> "" ) ); | 
|     //      aopr  := minselect( aoprs, Elements.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanColumn() = aopc, | 
|     //                          [Number]tempAOPC.Value().ReplaceAll( "#0", "" ) ); | 
|     //      cell  := select( macroPlan, AssemblyOnlinePlanRow.AssemblyOnlinePlanCell, tempAOPC, tempAOPC.AssemblyOnlinePlanRow().ProductionLine() = pl and tempAOPC.AssemblyOnlinePlanColumn() = aopc and | 
|     //                       tempAOPC.AssemblyOnlinePlanRow().Type() = "1" and tempAOPC.AssemblyOnlinePlanRow().ProductID() = aopr.AssemblyOnlinePlanRow().ProductID() ); | 
|     //      cell.Value( [String] ( [Number]cell.Value() + targetQuantity ) ); | 
|     //    } | 
|     //  } | 
|     //} | 
|   *] | 
| } |