_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_InterfaceNewOfflinePlanVersion_InterfaceNewOfflinePlanDetailData { #keys: '1[413988.0.1635820084]' DefaultRelationStrategy { } RelationSide.LeftSide InterfaceNewOfflinePlanVersion { #keys: '3[413988.0.1635820086][413988.0.1635820085][413988.0.1635820087]' Cardinality: '0to1' ObjectDefinition: InterfaceNewOfflinePlanDetailData OwningSide: 'Reference' } RelationSide.RightSide InterfaceNewOfflinePlanDetailData { #keys: '3[413988.0.1635820089][413988.0.1635820088][413988.0.1635820090]' Cardinality: '1toN' ObjectDefinition: InterfaceNewOfflinePlanVersion OwningSide: 'Owned' } } _Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_InterfaceNewOfflinePlanVersion { #keys: '1[413988.0.1635820033]' DefaultRelationStrategy { } RelationSide.LeftSide InterfaceDataset { #keys: '3[413988.0.1635820035][413988.0.1635820034][413988.0.1635820036]' Cardinality: '0to1' ObjectDefinition: InterfaceNewOfflinePlanVersion OwningSide: 'Reference' } RelationSide.RightSide InterfaceNewOfflinePlanVersion { #keys: '3[413988.0.1635820038][413988.0.1635820037][413988.0.1635820039]' Cardinality: '1toN' ObjectDefinition: InterfaceDataset OwningSide: 'Owned' } } _Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total { #keys: '1[413988.0.1603460432]' DefaultRelationStrategy { } RelationSide.LeftSide Detailed { #keys: '3[413988.0.1603460434][413988.0.1603460433][413988.0.1603460435]' Cardinality: '1toN' ObjectDefinition: NewOfflinePlanCell OwningSide: 'Reference' } RelationSide.RightSide Total { #keys: '3[413988.0.1603460437][413988.0.1603460436][413988.0.1603460438]' Cardinality: '0to1' ObjectDefinition: NewOfflinePlanCell OwningSide: 'Reference' } } _Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanCell { #keys: '1[413988.0.1603460144]' DefaultRelationStrategy { } RelationSide.LeftSide NewOfflinePlanColumn { #keys: '3[413988.0.1603460146][413988.0.1603460145][413988.0.1603460147]' Cardinality: '0to1' ObjectDefinition: NewOfflinePlanCell OwningSide: 'Reference' } RelationSide.RightSide NewOfflinePlanCell { #keys: '3[413988.0.1603460149][413988.0.1603460148][413988.0.1603460150]' Cardinality: '1toN' ObjectDefinition: NewOfflinePlanColumn OwningSide: 'Reference' } } _Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,34 @@ Quintiq file version 2.0 #parent: #root Relation NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflinePlanRow { #keys: '1[413988.0.1603460131]' DeclarativeSequenceRelationStrategy { #keys: '13[0.0.0][413988.0.1603460275][413988.0.1603460269][413988.0.1603460276][413988.0.1603460270][413988.0.1603460277][413988.0.1603460271][413988.0.1603460278][413988.0.1603460272][413988.0.1603460279][413988.0.1603460273][413988.0.1603460280][413988.0.1603460274]' SequenceElementSuffix: 'NOPCell' SequenceSuffix: 'NOPCell' SortAttributes: [ DeclarativeSequenceRelationSortAttribute { #keys: '1[413988.0.1603460282]' Attribute: 'StartDate' } ] } RelationSide.LeftSide NewOfflinePlanCell { #keys: '3[413988.0.1603460133][413988.0.1603460132][413988.0.1603460134]' Cardinality: '1toN' ObjectDefinition: NewOfflinePlanRow OwningSide: 'Owned' } RelationSide.RightSide NewOfflinePlanRow { #keys: '3[413988.0.1603460136][413988.0.1603460135][413988.0.1603460137]' Cardinality: '0to1' ObjectDefinition: NewOfflinePlanCell OwningSide: 'Reference' } } _Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable { #keys: '1[413988.0.1603460049]' DefaultRelationStrategy { } RelationSide.LeftSide MacroPlan { #keys: '3[413988.0.1603460051][413988.0.1603460050][413988.0.1603460052]' Cardinality: '0to1' ObjectDefinition: NewOfflinePlanTable OwningSide: 'Reference' } RelationSide.RightSide NewOfflinePlanTable { #keys: '3[413988.0.1603460054][413988.0.1603460053][413988.0.1603460055]' Cardinality: '1toN' ObjectDefinition: MacroPlan OwningSide: 'Owned' } } _Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanTable { #keys: '1[413988.0.1603460118]' DefaultRelationStrategy { } RelationSide.LeftSide NewOfflinePlanColumn { #keys: '3[413988.0.1603460120][413988.0.1603460119][413988.0.1603460121]' Cardinality: '1toN' ObjectDefinition: NewOfflinePlanTable OwningSide: 'Owned' } RelationSide.RightSide NewOfflinePlanTable { #keys: '3[413988.0.1603460123][413988.0.1603460122][413988.0.1603460124]' Cardinality: '0to1' ObjectDefinition: NewOfflinePlanColumn OwningSide: 'Reference' } } _Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,23 @@ Quintiq file version 2.0 #parent: #root Relation NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflinePlanTable { #keys: '1[413988.0.1603460091]' DefaultRelationStrategy { } RelationSide.LeftSide NewOfflinePlanRow { #keys: '3[413988.0.1603460093][413988.0.1603460092][413988.0.1603460094]' Cardinality: '1toN' ObjectDefinition: NewOfflinePlanTable OwningSide: 'Owned' } RelationSide.RightSide NewOfflinePlanTable { #keys: '3[413988.0.1603460096][413988.0.1603460095][413988.0.1603460097]' Cardinality: '0to1' ObjectDefinition: NewOfflinePlanRow OwningSide: 'Reference' } } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute Order { #keys: '3[413988.0.1635820128][413988.0.1635820127][413988.0.1635820129]' Description: 'ç产顺åºï¼Stringï¼' ValueType: String } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute OrderNr { #keys: '3[413988.0.1635820138][413988.0.1635820137][413988.0.1635820139]' Description: 'ç产顺åºï¼Numberï¼' ValueType: Number } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ProductID { #keys: '3[413988.0.1635820181][413988.0.1635820180][413988.0.1635820182]' Description: '产åID' ValueType: String } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ProductionLine { #keys: '3[413988.0.1635820098][413988.0.1635820097][413988.0.1635820099]' Description: '产线å' ValueType: String } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute Quantity { #keys: '3[413988.0.1635820108][413988.0.1635820107][413988.0.1635820109]' Description: 'æ°é' ValueType: Real } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ShiftPatternEnd { #keys: '3[413988.0.1635820171][413988.0.1635820170][413988.0.1635820172]' Description: 'çæ¬¡ç»ææ¶é´' ValueType: String } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ShiftPatternName { #keys: '3[413988.0.1635820151][413988.0.1635820150][413988.0.1635820152]' Description: 'çæ¬¡å' ValueType: String } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ShiftPatternStart { #keys: '3[413988.0.1635820161][413988.0.1635820160][413988.0.1635820162]' Description: 'çæ¬¡å¼å§æ¶é´' ValueType: String } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute StartDate { #keys: '3[413988.0.1635820118][413988.0.1635820117][413988.0.1635820119]' Description: 'å¼å§æ¶é´' ValueType: Date } _Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 #root #parent: #DomainModel Type InterfaceNewOfflinePlanDetailData { #keys: '5[413988.0.1635820064][413988.0.1635820062][0.0.0][413988.0.1635820063][413988.0.1635820065]' BaseType: Object Description: 'ä¸çº¿è®¡åæ¯ä¸ªçæ¬è¯¦ç»æ°æ®' StructuredName: 'InterfaceNewOfflinePlanDetailDatas' } _Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ScenarioName { #keys: '3[413988.0.1635820050][413988.0.1635820049][413988.0.1635820051]' Description: 'çæ¬å' ValueType: String } _Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 #root #parent: #DomainModel Type InterfaceNewOfflinePlanVersion { #keys: '5[413988.0.1635820030][413988.0.1635820028][0.0.0][413988.0.1635820029][413988.0.1635820031]' BaseType: Object Description: 'ä¸çº¿è®¡åçæ¬åæ¡£æ°æ®' StructuredName: 'InterfaceNewOfflinePlanVersions' } _Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ Quintiq file version 2.0 #parent: #root Attribute EndDate { #keys: '3[413988.0.1603460249][413988.0.1603460248][413988.0.1603460250]' ValueType: Date } _Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute InventoryWeight { #keys: '3[413988.0.1606610060][413988.0.1606610059][413988.0.1606610061]' Description: 'å©ä½åºå - æå°åºå' ValueType: Real } _Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute Order { #keys: '3[413988.0.1603460357][413988.0.1603460356][413988.0.1603460358]' Description: 'ç产顺åºï¼Stringï¼' ValueType: String } _Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute OrderNr { #keys: '3[413988.0.1607288352][413988.0.1607288351][413988.0.1607288353]' Description: 'ç产顺åºï¼Numberï¼' ValueType: Number } _Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute Quantity { #keys: '3[413988.0.1603460347][413988.0.1603460346][413988.0.1603460348]' Description: 'æ°é' ValueType: Real } _Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ShiftPatternEnd { #keys: '3[413988.0.1603460415][413988.0.1603460414][413988.0.1603460416]' Description: 'çæ¬¡ç»ææ¶é´' ValueType: String } _Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ShiftPatternName { #keys: '3[413988.0.1603460389][413988.0.1603460388][413988.0.1603460390]' Description: 'çæ¬¡å' ValueType: String } _Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ShiftPatternStart { #keys: '3[413988.0.1603460402][413988.0.1603460401][413988.0.1603460403]' Description: 'çæ¬¡å¼å§æ¶é´' ValueType: String } _Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ Quintiq file version 2.0 #parent: #root Attribute StartDate { #keys: '3[413988.0.1603460239][413988.0.1603460238][413988.0.1603460240]' ValueType: Date } _Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute TotalQuantity { #keys: '3[413988.0.1603460379][413988.0.1603460378][413988.0.1603460380]' Description: 'å计' ValueType: Real } _Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ Quintiq file version 2.0 #parent: #root Function CalcEndDate { TextBody: [* // lihongji Oct-11-2024 (created) value := guard( this.NewOfflinePlanColumn().EndDate(), Date::MinDate() ); this.EndDate( value ); *] } _Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ Quintiq file version 2.0 #parent: #root Function CalcStartDate { TextBody: [* // lihongji Oct-11-2024 (created) value := guard( this.NewOfflinePlanColumn().StartDate(), Date::MinDate() ); this.StartDate( value ); *] } _Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ Quintiq file version 2.0 #parent: #root Function CalcTotalQuantity { TextBody: [* // lihongji Oct-11-2024 (created) value := sum( this, Detailed, tempNOPC, true, tempNOPC.Quantity() ); this.TotalQuantity( value ); *] } _Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,93 @@ Quintiq file version 2.0 #parent: #root StaticMethod RefreshOfflinePlan ( MacroPlan macroPlan ) { TextBody: [* macroPlan.NewOfflinePlanTable( relflush ); nopt := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() ); // çæä¸çº¿è®¡å表ã䏿¡äº§çº¿å¨åä¸å¤©ä¸ä¼äº§ç两次ç¸å产åç卿任å¡ã traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime() // and u.Name() = "eMotor Assy (France)" // æµè¯æ¬å°åºæ¯æ¶å¯ä»¥è¿æ»¤ // and u.Name() = "DL-MoMo" // æµè¯å®é åºæ¯æ¶å¯ä»¥è¿æ»¤ ) { // 循ç¯éå卿任å¡çNewSupplyãçææç»ä¸çº¿è®¡åã traverse ( u, Operation, o ) { traverse ( o, PeriodTaskOperation.NewSupply, ns ) { // ProductInStockingPoint_MP pisp := ns.AsProductionSupply().ProductInStockingPoint_MP(); // ProductInStockingPointInPeriodPlanningLeaf pispippl := ns.ProductInStockingPointInPeriodPlanningLeaf(); // Period_MP pmp := pispippl.Period_MP(); // ShiftPattern sp := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern(); // ShiftDayTime sdt := select( sp, ShiftDayTime, tempSDT, tempSDT.Name() = tempSDT.ShiftPattern().Name() ); // çæä¸çº¿è®¡åã产线æç»ãè¡ detailedNOPR := select( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.ProductID() = pisp.ProductID() and tempNOPR.Type() = "1" ); if ( isnull( detailedNOPR ) ) { detailedNOPR := nopt.NewOfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := pisp.ProductID(), Type := "1" ); } // çæä¸çº¿è®¡åå nopc := select( nopt, NewOfflinePlanColumn, tempNOPC, tempNOPC.StartDate() = pmp.StartDate() and tempNOPC.EndDate() = pmp.EndDate() ); if ( isnull( nopc ) ) { nopc := nopt.NewOfflinePlanColumn( relnew, StartDate := pmp.StartDate(), EndDate := pmp.EndDate() ); } // çæä¸çº¿è®¡åã产线æç»ãåå æ ¼ detaileNOPCell := select( detailedNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = nopc ); if ( isnull ( detaileNOPCell ) ) { detaileNOPCell := detailedNOPR.NewOfflinePlanCell( relnew, Quantity := ns.Quantity().Round( 0 ), InventoryWeight := pispippl.InventoryLevelEnd() - pispippl.MinInventoryLevel(), ShiftPatternName := guard( sdt.Name(), "" ), ShiftPatternStart := guard( sdt.StartDateTime().Format( "H:m" ), "" ), ShiftPatternEnd := guard( sdt.EndDateTIme().Format( "H:m" ), "" ) ); detaileNOPCell.NewOfflinePlanColumn( relset, nopc ); } } } // 设置ç产顺åºã对ä¸çº¿è®¡åæç»çæã // ãçæå计ä¸çº¿è®¡åã totalNOPR := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" ); detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" ); traverse ( detailNOPRs, Elements, detailNOPR ) { traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) { // ç产ä¸çº¿è®¡åã产线å计ãåå æ ¼ totalNOPRCell := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() ); if ( isnull( totalNOPRCell ) ) { totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew ); totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // 设置å // å°æç»åå æ ¼å ³èå°å计åå æ ¼ totalNOPRCell.Detailed( relinsert, detailNOPCell ); } else { // å°æç»åå æ ¼å ³èå°å计åå æ ¼ totalNOPRCell.Detailed( relinsert, detailNOPCell ); } } } // è¡¥é½ç©ºæ ¼å traverse ( nopt, NewOfflinePlanRow, nopr ) { traverse ( nopt, NewOfflinePlanColumn, nopc ) { cell := select( nopr, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = nopc ); if ( isnull( cell ) ) { cell := nopr.NewOfflinePlanCell( relnew ); cell.NewOfflinePlanColumn( relset, nopc ); } } } } *] } _Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 #root #parent: #DomainModel Type NewOfflinePlanCell { #keys: '5[413988.0.1603460079][413988.0.1603460077][0.0.0][413988.0.1603460078][413988.0.1603460080]' BaseType: Object Description: 'ä¸çº¿è®¡ååå æ ¼' StructuredName: 'NewOfflinePlanCells' } _Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ Quintiq file version 2.0 #parent: #root Attribute EndDate { #keys: '3[413988.0.1603460170][413988.0.1603460169][413988.0.1603460171]' ValueType: Date } _Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,7 @@ Quintiq file version 2.0 #parent: #root Attribute StartDate { #keys: '3[413988.0.1603460160][413988.0.1603460159][413988.0.1603460161]' ValueType: Date } _Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 #root #parent: #DomainModel Type NewOfflinePlanColumn { #keys: '5[413988.0.1603460074][413988.0.1603460072][0.0.0][413988.0.1603460073][413988.0.1603460075]' BaseType: Object Description: 'ä¸çº¿è®¡åå' StructuredName: 'NewOfflinePlanColumns' } _Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute Name { #keys: '3[413988.0.1607288491][413988.0.1607288490][413988.0.1607288492]' Description: 'æ¾ç¤ºå' ValueType: String } _Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ProductID { #keys: '3[413988.0.1603460321][413988.0.1603460320][413988.0.1603460322]' Description: '产åID' ValueType: String } _Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute ProductionLine { #keys: '3[413988.0.1603460311][413988.0.1603460310][413988.0.1603460312]' Description: '产线å' ValueType: String } _Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ Quintiq file version 2.0 #parent: #root Attribute Type { #keys: '3[413988.0.1603460334][413988.0.1603460333][413988.0.1603460335]' Description: [* 1ï¼æç»æ¾ç¤º 2ï¼å计æ¾ç¤º *] ValueType: String } _Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ Quintiq file version 2.0 #parent: #root Function CalcName { TextBody: [* // lihongji Oct-12-2024 (created) value := this.ProductionLine() + ifexpr( this.ProductID() = "All", "", "_" + this.ProductID() ); this.Name( value ); *] } _Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,17 @@ Quintiq file version 2.0 #parent: #root Method Filter ( Entitys entitys ) declarative remote as Boolean { TextBody: [* flag := false; traverse ( entitys, Elements.astype( Unit ), u, not flag ) { flag := u.Name() = this.ProductionLine(); } return flag; *] } _Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 #root #parent: #DomainModel Type NewOfflinePlanRow { #keys: '5[413988.0.1603460069][413988.0.1603460067][0.0.0][413988.0.1603460068][413988.0.1603460070]' BaseType: Object Description: 'ä¸çº¿è®¡åè¡' StructuredName: 'NewOfflinePlanRows' } _Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,8 @@ Quintiq file version 2.0 #parent: #root Attribute SaveDateTime { #keys: '3[413988.0.1603460037][413988.0.1603460036][413988.0.1603460038]' Description: 'ä¿åèç¨¿çæ¶é´' ValueType: DateTime } _Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,9 @@ Quintiq file version 2.0 #root #parent: #DomainModel Type NewOfflinePlanTable { #keys: '5[413988.0.1603460031][413988.0.1603460029][0.0.0][413988.0.1603460030][413988.0.1603460032]' BaseType: Object StructuredName: 'NewOfflinePlanTables' } _Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ Quintiq file version 2.0 #parent: #root TypeRepresentation NewOfflinePlanCell { AttributeRepresentation ShiftPatternEnd { AttributeKey: '[413988.0.1603460414]' Synonym: 'çæ¬¡ç»ææ¶é´' } AttributeRepresentation ShiftPatternName { AttributeKey: '[413988.0.1603460388]' Synonym: 'çæ¬¡' } AttributeRepresentation ShiftPatternStart { AttributeKey: '[413988.0.1603460401]' Synonym: 'çæ¬¡å¼å§æ¶é´' } AttributeRepresentation TotalQuantity { AttributeKey: '[413988.0.1603460378]' Synonym: 'æ»é' } RelationRepresentation AsFirstNOPCell { RelationKey: '[413988.0.1603460270]' Visibility: 'Normal' } } _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -22,7 +22,7 @@ BaseType: 'WebButton' Properties: [ Taborder: 5 Taborder: 6 ] } Component bOfflinePlan @@ -45,7 +45,7 @@ Description: 'AssemblyOnlinePlan' Image: 'PALM_TREE' Label: 'Filing plan' Taborder: 2 Taborder: 3 ] } Component bPackagingPlan @@ -56,7 +56,7 @@ [ Image: 'SIXPACK_BEER' Label: 'Packaging plan' Taborder: 3 Taborder: 4 ] } Component bShippingActualData @@ -67,7 +67,18 @@ [ Image: 'TABLE_CONNECTION' Label: 'Shipping data' Taborder: 4 Taborder: 5 ] } Component bNewOfflinePlan { #keys: '[413988.0.1607471411]' BaseType: 'WebButton' Properties: [ Image: 'LIGHTBULB' Label: 'Output plan' Taborder: 2 ] } ] _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,16 @@ Quintiq file version 2.0 #parent: abgSecondDevelopmentPlan/bNewOfflinePlan Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick { #keys: '[413988.0.1607471572]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' GroupServerCalls: true QuillAction { Body: [* ApplicationScope.ViewManager().ResetUserViewById( "NewOfflinePlan", true ); *] } } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ Quintiq file version 2.0 Component MatrixEditor515 { #keys: '[413988.0.1607432871]' BaseType: 'WebMatrixEditor' Children: [ Component MatrixEditorCell568 { #keys: '[413988.0.1607432872]' BaseType: 'WebMatrixEditorCell' Children: [ Component DataExtractor802 { #keys: '[413988.0.1607432873]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'structured[NewOfflinePlanRow]' Source: 'dhSelectedDetailNewOfflinePlanRow' Taborder: 0 Transformation: 'Elements.NewOfflinePlanCell' ] } ] Properties: [ Attributes: 'Quantity;Order' Column: 'NewOfflinePlanColumn' Row: 'NewOfflinePlanRow' Taborder: 0 ] } Component MatrixEditorRows710 { #keys: '[413988.0.1607432876]' BaseType: 'WebMatrixEditorHeaderLevel' Children: [ Component DataExtractor206 { #keys: '[413988.0.1607432877]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'structured[NewOfflinePlanRow]' Source: 'dhSelectedDetailNewOfflinePlanRow' Taborder: 0 Transformation: 'Elements' ] } ] Properties: [ Legend: 'Name' SortCriteria: 'ProductionLine;ProductID' Taborder: 1 ] } Component MatrixEditorColumns748 { #keys: '[413988.0.1607432880]' BaseType: 'WebMatrixEditorHeaderLevel' Children: [ Component DataExtractor675 { #keys: '[413988.0.1607432881]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'NewOfflinePlanTable' Source: 'dhNewOfflinePlanTable' Taborder: 0 Transformation: 'NewOfflinePlanColumn' ] } ] Properties: [ Legend: 'StartDate' SortCriteria: 'StartDate' Taborder: 2 ] } #child: matrixEditorActionBarPage623 #child: matrixeditorContextMenu229 ] Properties: [ AllowAttributeConfiguration: true AllowMultipleAttributes: true Columns: 'MatrixEditorColumns748' ContextMenu: 'matrixeditorContextMenu229' Rows: 'MatrixEditorRows710' Taborder: 0 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,98 @@ Quintiq file version 2.0 Component MatrixEditor583 { #keys: '[413988.0.1607432902]' BaseType: 'WebMatrixEditor' Children: [ Component MatrixEditorCell950 { #keys: '[413988.0.1607432903]' BaseType: 'WebMatrixEditorCell' Children: [ Component DataExtractor782 { #keys: '[413988.0.1607432904]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'structured[NewOfflinePlanRow]' Source: 'dhSelectedTotalNewOfflinePlanRow' Taborder: 0 Transformation: 'Elements.NewOfflinePlanCell' ] } ] Properties: [ Attributes: 'TotalQuantity;ShiftPatternName;ShiftPatternStart;ShiftPatternEnd' Column: 'NewOfflinePlanColumn' Row: 'NewOfflinePlanRow' Taborder: 0 ] } Component MatrixEditorRows569 { #keys: '[413988.0.1607432907]' BaseType: 'WebMatrixEditorHeaderLevel' Children: [ Component DataExtractor195 { #keys: '[413988.0.1607432908]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'structured[NewOfflinePlanRow]' Source: 'dhSelectedTotalNewOfflinePlanRow' Taborder: 0 Transformation: 'Elements' ] } ] Properties: [ Legend: 'Name' SortCriteria: 'ProductionLine;ProductID' Taborder: 1 ] } Component MatrixEditorColumns473 { #keys: '[413988.0.1607432911]' BaseType: 'WebMatrixEditorHeaderLevel' Children: [ Component DataExtractor526 { #keys: '[413988.0.1607432912]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'NewOfflinePlanTable' Source: 'dhNewOfflinePlanTable' Taborder: 0 Transformation: 'NewOfflinePlanColumn' ] } ] Properties: [ Legend: 'StartDate' SortCriteria: 'StartDate' Taborder: 2 ] } #child: matrixEditorActionBarPage338 #child: matrixeditorContextMenu267 ] Properties: [ AllowMultipleAttributes: true Columns: 'MatrixEditorColumns473' ContextMenu: 'matrixeditorContextMenu267' Rows: 'MatrixEditorRows569' Taborder: 0 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 Component matrixEditorActionBarPage338 { #keys: '[413988.0.1607432915]' BaseType: 'matrixEditorActionBarPage' Properties: [ Taborder: 3 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 Component matrixEditorActionBarPage623 { #keys: '[413988.0.1607432884]' BaseType: 'matrixEditorActionBarPage' Properties: [ Taborder: 3 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 Component matrixeditorContextMenu229 { #keys: '[413988.0.1607432887]' BaseType: 'matrixeditorContextMenu' Properties: [ Taborder: 4 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,10 @@ Quintiq file version 2.0 Component matrixeditorContextMenu267 { #keys: '[413988.0.1607432918]' BaseType: 'matrixeditorContextMenu' Properties: [ Taborder: 4 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ Quintiq file version 2.0 Component pDetail { #keys: '[413988.0.1607470703]' BaseType: 'WebPanel' Children: [ #child: MatrixEditor515 ] Properties: [ Border: true Taborder: 1 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,26 @@ Quintiq file version 2.0 Component pHeader { #keys: '[413988.0.1607470685]' BaseType: 'WebPanel' Children: [ Component bRefresh { #keys: '[413988.0.1607470932]' BaseType: 'WebButton' Properties: [ Label: 'Refresh' Taborder: 0 ] } ] Properties: [ Border: true FixedSize: true Orientation: 'horizontal' Taborder: 0 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ Quintiq file version 2.0 Component pTotal { #keys: '[413988.0.1607470720]' BaseType: 'WebPanel' Children: [ #child: MatrixEditor583 ] Properties: [ Taborder: 2 ] } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ Quintiq file version 2.0 #parent: dhNewOfflinePlanTable Response OnCreated () id:Response_FormNewOfflinePlan_dhNewOfflinePlanTable_OnCreated { #keys: '[413988.0.1612870517]' CanBindMultiple: false DefinitionID: 'Responsedef_WebComponent_OnCreated' Precondition: [* return not isnull( MacroPlan ); *] QuillAction { Body: [* nopt := maxselect( MacroPlan, NewOfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() ); this.Data( nopt ); *] GroupServerCalls: false } } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,25 @@ Quintiq file version 2.0 #parent: pHeader/bRefresh Response OnClick () id:Response_pHeader_bRefresh_OnClick { #keys: '[413988.0.1607471065]' CanBindMultiple: false DefinitionID: 'Responsedef_WebButton_OnClick' Precondition: [* return not isnull( MacroPlan ); *] QuillAction { Body: [* NewOfflinePlanCell::RefreshOfflinePlan( MacroPlan ); nopt := maxselect( MacroPlan, NewOfflinePlanTable, tempNOPT, true, tempNOPT.SaveDateTime() ); dhNewOfflinePlanTable.Data( nopt ); WebMessageBox::Success( Translations::A_VWED_Success() ); *] GroupServerCalls: false } } _Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,84 @@ Quintiq file version 2.0 #root #parent: MacroPlannerWebApp OrphanComponent FormNewOfflinePlan { #keys: '[413988.0.1606778977]' BaseType: 'WebForm' Children: [ #child: pTotal #child: pHeader #child: pDetail Component dhNewOfflinePlanTable { #keys: '[413988.0.1607471150]' BaseType: 'WebDataHolder' Databinding: 'NewOfflinePlanTable' Properties: [ Taborder: 3 ] } Component dhSelectedDetailNewOfflinePlanRow { #keys: '[413988.0.1607433222]' BaseType: 'WebDataHolder' Databinding: 'structured[NewOfflinePlanRow]*' Children: [ Component deSelectedNewOfflinePlanRow { #keys: '[413988.0.1608510877]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'NewOfflinePlanTable' FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities' FixedFilter: 'object.Filter( entities ) and object.Type() = "1"' Source: 'dhNewOfflinePlanTable' Taborder: 0 Transformation: 'NewOfflinePlanRow' ] } ] Properties: [ Taborder: 4 ] } Component dhSelectedTotalNewOfflinePlanRow { #keys: '[413988.0.1609979741]' BaseType: 'WebDataHolder' Databinding: 'structured[NewOfflinePlanRow]*' Children: [ Component deSelectedNewOfflinePlanRow681 { #keys: '[413988.0.1609979742]' BaseType: 'WebDataExtractor' Properties: [ DataType: 'NewOfflinePlanTable' FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities' FixedFilter: 'object.Filter( entities ) and object.Type() = "2"' Source: 'dhNewOfflinePlanTable' Taborder: 0 Transformation: 'NewOfflinePlanRow' ] } ] Properties: [ Taborder: 5 ] } ] Properties: [ Description: 'æ°è£ é ä¸çº¿è®¡å' Image: 'WIND_ENGINE_OFFSHORE' Title: 'Output plan' ] } _Main/UI/MacroPlannerWebApp/HighlightRules.hl
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ Quintiq file version 2.0 #parent: #root HighlightRules { HighlightRule { #keys: '1[413988.0.1616240421]' Bidirectional: true ContinueHighlighting: true Description: 'ä¸çº¿è®¡åæ ¹æ®ç»åçªåºæ¾ç¤ºå计' Groups: Default HighlightPathString: 'Total' StartTypeString: 'NewOfflinePlanCell' } } _Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,215 @@ Quintiq file version 2.0 { viewcontents { forms { form_FormNewOfflinePlan { title: 'QMacroPlanner::FormNewOfflinePlan' shown: true componentID: 'QMacroPlanner::FormNewOfflinePlan' layout { mode: 'open' rowPosition: 1 rowSpan: 14 columnPosition: 1 columnSpan: 12 } components { FormNewOfflinePlan_pHeader { sizeRatio: 1 } FormNewOfflinePlan_pDetail { sizeRatio: 1 } FormNewOfflinePlan_MatrixEditor515 { gridColor: '#c4c4c4' totalHeaderWidth: 511 attributeHeaderWidthRatio: 0.6 nameHeaderWidthRatio: 0.4 columnWidth: 100 horizontalGrid: true verticalGrid: true backendState { componentId: 'QMacroPlanner::FormNewOfflinePlan.MatrixEditor515' state { cells { attributes { attribute_Quantity { type: 'MatrixEditorWebApiCellDataModelInterest' index: 0 rowsubtotal: '' columnsubtotal: 'sum' attribute: 'Quantity' } attribute_Order { type: 'MatrixEditorWebApiCellDataModelInterest' index: 1 rowsubtotal: '' columnsubtotal: '' attribute: 'Order' } } } columns { sorting { criteria: "datamember:'StartDate'" } } rows { sorting { criteria: "datamember:'ProductionLine';datamember:'ProductID'" } } } } } FormNewOfflinePlan_pTotal { sizeRatio: 1 } FormNewOfflinePlan_MatrixEditor583 { gridColor: '#c4c4c4' totalHeaderWidth: 510 attributeHeaderWidthRatio: 0.6 nameHeaderWidthRatio: 0.4 columnWidth: 100 horizontalGrid: true verticalGrid: true backendState { componentId: 'QMacroPlanner::FormNewOfflinePlan.MatrixEditor583' state { cells { attributes { attribute_TotalQuantity { type: 'MatrixEditorWebApiCellDataModelInterest' index: 0 rowsubtotal: '' columnsubtotal: '' attribute: 'TotalQuantity' } attribute_ShiftPatternName { type: 'MatrixEditorWebApiCellDataModelInterest' index: 1 rowsubtotal: '' columnsubtotal: '' attribute: 'ShiftPatternName' } attribute_ShiftPatternStart { type: 'MatrixEditorWebApiCellDataModelInterest' index: 2 rowsubtotal: '' columnsubtotal: '' attribute: 'ShiftPatternStart' } attribute_ShiftPatternEnd { type: 'MatrixEditorWebApiCellDataModelInterest' index: 3 rowsubtotal: '' columnsubtotal: '' attribute: 'ShiftPatternEnd' } } } columns { sorting { criteria: "datamember:'StartDate'" } } rows { sorting { criteria: "datamember:'ProductionLine';datamember:'ProductID'" } } } } } } } form_FormGeneralSettings { title: 'General Settings' shown: true componentID: 'FormGeneralSettings' layout { mode: 'dockright' index: 0 } components { FormGeneralSettings_PanelContent { sizeRatio: 1 } FormGeneralSettings_PanelGeneralParameter { sizeRatio: 1 } FormGeneralSettings_PanelLeadTimeDependent { sizeRatio: 1 } FormGeneralSettings_PanelShelfLife { sizeRatio: 1 } FormGeneralSettings_PanelSustainability { sizeRatio: 1 } FormGeneralSettings_PanelForecastNetting { sizeRatio: 1 } FormGeneralSettings_PanelActions { sizeRatio: 1 } } } } userconfigurableinformation { } page: '' group: '' index: 0 image: 'CHART_DONUT' description: '' } formatversion: 2 id: 'NewOfflinePlan' name: 'NewOfflinePlan' isglobal: false isroot: true }