已重命名3个文件
已添加45个文件
已修改4个文件
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation ArchivePackagingPlanCell_ArchivePackagingPlanColumn_ArchivePackagingPlanColumn_ArchivePackagingPlanCell |
| | | { |
| | | #keys: '1[414996.1.150965285]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide ArchivePackagingPlanColumn |
| | | { |
| | | #keys: '3[414996.1.150965287][414996.1.150965286][414996.1.150965288]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: ArchivePackagingPlanCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide ArchivePackagingPlanCell |
| | | { |
| | | #keys: '3[414996.1.150965290][414996.1.150965289][414996.1.150965291]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: ArchivePackagingPlanColumn |
| | | OwningSide: 'Reference' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation ArchivePackagingPlanCell_ArchivePackagingPlanRow_ArchivePackagingPlanRow_ArchivePackagingPlanCell |
| | | { |
| | | #keys: '1[414996.1.150965272]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide ArchivePackagingPlanRow |
| | | { |
| | | #keys: '3[414996.1.150965274][414996.1.150965273][414996.1.150965275]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: ArchivePackagingPlanCell |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide ArchivePackagingPlanCell |
| | | { |
| | | #keys: '3[414996.1.150965277][414996.1.150965276][414996.1.150965278]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: ArchivePackagingPlanRow |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation ArchivePackagingPlanColumn_Archive_Archive_ArchivePackagingPlanColumn |
| | | { |
| | | #keys: '1[414996.1.150965298]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Archive |
| | | { |
| | | #keys: '3[414996.1.150965300][414996.1.150965299][414996.1.150965301]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: ArchivePackagingPlanColumn |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide ArchivePackagingPlanColumn |
| | | { |
| | | #keys: '3[414996.1.150965303][414996.1.150965302][414996.1.150965304]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: Archive |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Relation ArchivePackagingPlanRow_Archive_Archive_ArchivePackagingPlanRow |
| | | { |
| | | #keys: '1[414996.1.150965311]' |
| | | DefaultRelationStrategy |
| | | { |
| | | } |
| | | RelationSide.LeftSide Archive |
| | | { |
| | | #keys: '3[414996.1.150965313][414996.1.150965312][414996.1.150965314]' |
| | | Cardinality: '0to1' |
| | | ObjectDefinition: ArchivePackagingPlanRow |
| | | OwningSide: 'Reference' |
| | | } |
| | | RelationSide.RightSide ArchivePackagingPlanRow |
| | | { |
| | | #keys: '3[414996.1.150965316][414996.1.150965315][414996.1.150965317]' |
| | | Cardinality: '1toN' |
| | | ObjectDefinition: Archive |
| | | OwningSide: 'Owned' |
| | | } |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute CC_PackagingInventory |
| | | { |
| | | #keys: '3[414996.1.150965195][414996.1.150965194][414996.1.150965196]' |
| | | Description: 'é¿æ¥å·¥åå
è£
åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute CC_UnpackagedInventory |
| | | { |
| | | #keys: '3[414996.1.150965198][414996.1.150965197][414996.1.150965199]' |
| | | Description: 'é¿æ¥å·¥åéå
è£
åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute EndingInventory |
| | | { |
| | | #keys: '3[414996.1.150965201][414996.1.150965200][414996.1.150965202]' |
| | | Description: 'ææ«åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute InitialPackagingInventory |
| | | { |
| | | #keys: '3[414996.1.150965204][414996.1.150965203][414996.1.150965205]' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute NetDemand |
| | | { |
| | | #keys: '3[414996.1.150965207][414996.1.150965206][414996.1.150965208]' |
| | | Description: 'åéæ±' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute NewSupply |
| | | { |
| | | #keys: '3[414996.1.150965210][414996.1.150965209][414996.1.150965211]' |
| | | Description: 'ä¾åº' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Out |
| | | { |
| | | #keys: '3[414996.1.150965213][414996.1.150965212][414996.1.150965214]' |
| | | Description: 'è°åº' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Package |
| | | { |
| | | #keys: '3[414996.1.150965216][414996.1.150965215][414996.1.150965217]' |
| | | Description: 'å
è£
' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute PackagingInventory |
| | | { |
| | | #keys: '3[414996.1.150965219][414996.1.150965218][414996.1.150965220]' |
| | | Description: 'å
è£
åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StartDate |
| | | { |
| | | #keys: '3[414996.1.150965222][414996.1.150965221][414996.1.150965223]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute TransferIn |
| | | { |
| | | #keys: '3[414996.1.150965225][414996.1.150965224][414996.1.150965226]' |
| | | Description: 'è°è¿' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute UnpackagedInventory |
| | | { |
| | | #keys: '3[414996.1.150965228][414996.1.150965227][414996.1.150965229]' |
| | | Description: 'éå
è£
åºå' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Unpacking |
| | | { |
| | | #keys: '3[414996.1.150965231][414996.1.150965230][414996.1.150965232]' |
| | | Description: 'æå
' |
| | | ValueType: Real |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcPackagingInventory |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Jul-26-2024 (created) |
| | | |
| | | value := ifexpr( this.ArchivePackagingPlanRow().Factory() = "é¿æ¥å·¥å", this.CC_PackagingInventory(), |
| | | this.InitialPackagingInventory() + guard( this.Previous().PackagingInventory() + |
| | | guard( this.Package(), 0.0 ) - |
| | | ifexpr( this.TransferIn() > 0.0, 0, this.Unpacking() ), |
| | | 0.0 ) |
| | | - this.Out() |
| | | ); |
| | | |
| | | this.PackagingInventory( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcStartDate |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Jul-26-2024 (created) |
| | | |
| | | value := guard( this.ArchivePackagingPlanColumn().StartDate(), Date::MinDate() ); |
| | | |
| | | this.StartDate( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcUnpackagedInventory |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Jul-24-2024 (created) |
| | | |
| | | value := ifexpr( this.ArchivePackagingPlanRow().Factory() = "é¿æ¥å·¥å", this.CC_UnpackagedInventory(), |
| | | guard( this.EndingInventory() - this.PackagingInventory(), 0.0 ) ); |
| | | |
| | | this.UnpackagedInventory( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod CalculationPackagingPlanProperties |
| | | { |
| | | TextBody: |
| | | [* |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, PackagingInventory ) ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, StartDate ) ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, UnpackagedInventory ) ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod GenerateReport ( |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | macroPlan.PackagingPlanRow( relflush ); |
| | | macroPlan.PackagingPlanColumn( relflush ); |
| | | |
| | | // å建计ååä¸å¤©å |
| | | planPre := macroPlan.PackagingPlanColumn( relnew, StartDate := macroPlan.StartOfPlanning().Date() - 1 ); |
| | | |
| | | // çææ¥è¡¨ |
| | | traverse ( macroPlan, Product_MP.ProductInStockingPoint_MP, pisp, pisp.IsLeaf() and not pisp.IsSystem() and |
| | | ( pisp.StockingPointID().Regex( "CC" ) or pisp.StockingPointID().Regex( "DL" ) or pisp.StockingPointID().Regex( "大è¿" ) or pisp.StockingPointID().Regex( "é¿æ¥" ) ) ) { |
| | | // å½åpispæå¤å°ç¹ |
| | | factory := ifexpr( pisp.StockingPointID().Regex( "CC" ) or pisp.StockingPointID().Regex( "é¿æ¥" ), "é¿æ¥å·¥å", "大è¿å·¥å" ); |
| | | factoryAbbreviation := ifexpr( pisp.StockingPointID().Regex( "CC" ) or pisp.StockingPointID().Regex( "é¿æ¥" ), "CC", "DL" ); |
| | | |
| | | // åå»ºè¡ |
| | | ppr := select( macroPlan, PackagingPlanRow, tempPPR, tempPPR.ProductID() = pisp.ProductID() and tempPPR.Factory() = factory ); |
| | | if ( isnull( ppr ) ) { |
| | | ppr := macroPlan.PackagingPlanRow( relnew, ProductID := pisp.ProductID(), Factory := factory, Category := guard( pisp.Product_MP().ParentID(), "" ) ); |
| | | } |
| | | |
| | | // 循ç¯pispippl |
| | | traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispipl, not pispipl.IsPeriodFrozen() ) { |
| | | // å建å |
| | | ppc := select( macroPlan, PackagingPlanColumn, tempPPC, tempPPC.StartDate() = pispipl.Start().Date() ); |
| | | if ( isnull( ppc ) ) { |
| | | ppc := macroPlan.PackagingPlanColumn( relnew, StartDate := pispipl.Start().Date() ); |
| | | } |
| | | |
| | | // å建åå
æ ¼ |
| | | cell := select( ppr, PackagingPlanCell, tempPPCell, tempPPCell.PackagingPlanColumn() = ppc ); |
| | | if ( isnull( cell ) ) { |
| | | cell := ppr.PackagingPlanCell( relnew ); |
| | | cell.PackagingPlanColumn( relset, ppc ); |
| | | } |
| | | |
| | | // 设置è°åº |
| | | traverse ( pispipl, AsDeparturePISPIP, pit, |
| | | pit.Quantity() > 0 and |
| | | pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP().ID().Regex( factoryAbbreviation ) and |
| | | TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ) <> TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ) |
| | | ) |
| | | { |
| | | cell.Out( cell.Out() + pit.Quantity() ); |
| | | } |
| | | |
| | | // 设置è°è¿ |
| | | traverse ( pispipl, AsArrivalPISPIP, pit, |
| | | pit.Quantity() > 0 and |
| | | pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP().ID().Regex( factoryAbbreviation ) and |
| | | TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsOriginStockingPointLeg().StockingPoint_MP() ) <> TransferPlanRow::IdentifyTheFactory( pit.Trip().LaneLeg().AsDestinationStockingPointLeg().StockingPoint_MP() ) |
| | | ) |
| | | { |
| | | cell.TransferIn( cell.TransferIn() + pit.Quantity() ); |
| | | } |
| | | |
| | | // 大è¿å·¥åè®¾ç½®å¼ |
| | | if ( factory = "大è¿å·¥å" ) { |
| | | // åéæ±&å©ä½åºå&ä¾åºé |
| | | cell.NetDemand( cell.NetDemand() + pispipl.DependentDemandAndSalesDemandQuantity() ); |
| | | cell.EndingInventory( cell.EndingInventory() + pispipl.InventoryLevelEnd() ); |
| | | cell.NewSupply( cell.NewSupply() + pispipl.NewSupplyQuantity() ); |
| | | } |
| | | |
| | | // é¿æ¥å·¥åè®¾ç½®å¼ |
| | | if ( factory = "é¿æ¥å·¥å" ) { |
| | | // å©ä½åºå&ä¾åºé |
| | | cell.EndingInventory( cell.EndingInventory() + pispipl.InventoryLevelEnd() ); |
| | | cell.NewSupply( cell.NewSupply() + pispipl.NewSupplyQuantity() ); |
| | | |
| | | // åéæ±ãåªå线边åºã&å
è£
åºå&éå
è£
åºå |
| | | if ( pisp.StockingPointID().Regex( "å¤ç§åº" ) ) { |
| | | cell.CC_PackagingInventory( pispipl.InventoryLevelEnd() ); |
| | | } else if ( pisp.StockingPointID().Regex( "线边åº" ) ) { |
| | | cell.CC_UnpackagedInventory( pispipl.InventoryLevelEnd() ); |
| | | cell.NetDemand( cell.NetDemand() + pispipl.DependentDemandAndSalesDemandQuantity() ); |
| | | } |
| | | } |
| | | |
| | | // 设置åä¸å¤©åºå |
| | | if ( pispipl.Start().Date() = macroPlan.StartOfPlanning().Date() ) { |
| | | prePISPIPL := pispipl.PreviousPlanningPISPIP().astype( ProductInStockingPointInPeriodPlanningLeaf ); // åä¸ä¸ªpispippl |
| | | // å建计ååä¸å¤©æ ¼å |
| | | preCell := select( ppr, PackagingPlanCell, tempPPCell, tempPPCell.PackagingPlanColumn() = planPre ); |
| | | if ( isnull( preCell ) ) { |
| | | preCell := ppr.PackagingPlanCell( relnew ); |
| | | preCell.EndingInventory( prePISPIPL.InventoryLevelEnd() ); |
| | | preCell.PackagingPlanColumn( relset, planPre ); |
| | | } else { |
| | | preCell.EndingInventory( preCell.EndingInventory() + prePISPIPL.InventoryLevelEnd() ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanRow, FactoryAbbreviation ) ); |
| | | PackagingPlanCell::CalculationPackagingPlanProperties(); |
| | | Transaction::Transaction().Propagate( relation( PackagingPlanCell, Next ) ); |
| | | |
| | | // 设置å
è£
&æå
-æ°é |
| | | PackagingPlanCell::SetPackagingAndUnpackingValues( macroPlan ); |
| | | //traverse ( macroPlan, PackagingPlanRow, ppr, ( ppr.ProductID() = "Windshield" and ppr.StockingPointID() = "Bosch" ) or ( ppr.ProductID() = "Windshield" and ppr.StockingPointID() = "Components (Spain)" ) ) { |
| | | // traverse ( ppr, PackagingPlanCell, ppc/*, ppc.StartDate() = Date::Construct( 2020, 4, 1 )*/ ) { |
| | | // // 设置å
è£
æ°é |
| | | // if ( ppc.PackagingInventory() < ppc.Out() ) { // å
è£
åºåæ¯å¦å°äºè°åº |
| | | // prePPC := ppc.Previous(); |
| | | // needPackagingQuantity := ppc.Out() - prePPC.PackagingInventory(); |
| | | // while ( not isnull( prePPC ) and needPackagingQuantity > 0.0 ) { |
| | | // // è·åå
è£
lotsize |
| | | // ppls := select( macroPlan, PackagingPlanLotSize, tempPPLS, tempPPLS.Factory() = ppc.PackagingPlanRow().Factory() and |
| | | // tempPPLS.ProductID() = ppc.PackagingPlanRow().ProductID() ); |
| | | // |
| | | // // è·åæå¤§å
è£
æ°é |
| | | // maxPackageReflection := Reflection::FindAttribute( "PackagingPlanCapability", ppc.PackagingPlanRow().FactoryAbbreviation() + "_" + ppc.PackagingPlanRow().Category() + "_Package" ); |
| | | //// maxPackageQuantity := maxPackageReflection.GetNumber( macroPlan.PackagingPlanCapability() ); // æ¤å¤éè¦ä¿®æ¹ |
| | | // maxPackageQuantity := 100000; |
| | | // |
| | | // // è·åæç»å
è£
æ°é |
| | | // finalPackagingQuantity := minvalue( ceil( needPackagingQuantity / ppls.LotSize() ), ceil( ( maxPackageQuantity - prePPC.Package() ) / ppls.LotSize() ) ) * ppls.LotSize(); |
| | | // needPackagingQuantity := needPackagingQuantity - finalPackagingQuantity; |
| | | // |
| | | // // 设置å
è£
å¼ |
| | | // prePPC.Package( prePPC.Package() + finalPackagingQuantity ); |
| | | // |
| | | // //debuginfo( "éè¦å
è£
æ°éï¼", needPackagingQuantity, " lotsize: ", ppls.LotSize(), " æå¤§å
è£
æ°éï¼", maxPackageQuantity, " æç»è¡¥çæ°éï¼", finalPackagingQuantity ); |
| | | // PackagingPlanCell::CalculationPackagingPlanProperties(); |
| | | // |
| | | // prePPC := prePPC.Previous(); |
| | | // } |
| | | // } |
| | | // |
| | | // // 设置æå
æ°é |
| | | // if ( ppc.TransferIn() > 0.0 ) { // æè°å
¥æ°é |
| | | // // è·åå
è£
lotsize |
| | | // ppls := select( macroPlan, PackagingPlanLotSize, tempPPLS, tempPPLS.Factory() = ppc.PackagingPlanRow().Factory() and |
| | | // tempPPLS.ProductID() = ppc.PackagingPlanRow().ProductID() ); |
| | | // |
| | | // // 设置æå
å¼ |
| | | // ppc.Unpacking( ppc.TransferIn() ); |
| | | // } |
| | | // } |
| | | //} |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod Package ( |
| | | MacroPlan macroPlan, |
| | | PackagingPlanRow ppr, |
| | | PackagingPlanColumn ppc, |
| | | output Number needPackagingQuantity |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // 计åå¼å§æ¶é´ |
| | | plannedStartDate := macroPlan.StartOfPlanning().Date(); |
| | | |
| | | traverse ( ppr, PackagingPlanCell, ppcell, ppcell.PackagingPlanColumn() = ppc ) { |
| | | // Product_MP |
| | | pmp := select( macroPlan, Product_MP, tempPMP, tempPMP.IsLeaf() and tempPMP.ID() = ppr.ProductID() ); |
| | | // å
è£
lotsize |
| | | ppls := select( macroPlan, PackagingPlanLotSize, tempPPLS, tempPPLS.Factory() = ppr.Factory() and |
| | | tempPPLS.ProductID() = ifexpr( exists( macroPlan, PackagingPlanLotSize, tempPPLS1, tempPPLS1.ProductID() = pmp.ID() ), |
| | | pmp.ID(), |
| | | pmp.ParentID() ) ); |
| | | // 䏿¥å
è£
容é |
| | | ppnc := select( macroPlan, PackagingPlanNewCapability, tempPPNC, tempPPNC.Factory() = ppr.Factory() and |
| | | tempPPNC.ProductID() = ifexpr( exists( macroPlan, PackagingPlanNewCapability, tempPPNC1, tempPPNC1.ProductID() = pmp.ID() ), |
| | | pmp.ID(), |
| | | pmp.ParentID() ) ); |
| | | // Unit |
| | | us := selectset( macroPlan, Unit, tempU, tempU.ID().Regex( ppr.FactoryAbbreviation() + " " + ppr.Category() ) ); |
| | | |
| | | // å
è£
åºååºç°è´å¼ï¼éè¦è®¾ç½®å
è£
é |
| | | if ( not isnull( ppls ) and not isnull( ppnc ) ) { |
| | | // å
è£
å¼å§çç´¢å¼ |
| | | indexPPCell := ppcell.Previous(); |
| | | |
| | | // info( "产线个æ°ï¼", us.Size(), " å¼å§æ¶é´ï¼", ppcell.StartDate().Format( "Y-M2-D2" ), " å
è£
åºåæ°éï¼", ppcell.PackagingInventory(), " éè¦å
è£
çæ°éï¼", needPackagingQuantity, |
| | | // " å
è£
lotsizeï¼",guard( ppls.LotSize(), 0 ), " æå¤§å
è£
容éï¼", ppnc.MaximumDailyPackagingQuantity() ); |
| | | |
| | | while ( not isnull( indexPPCell ) and |
| | | indexPPCell.StartDate() >= plannedStartDate and |
| | | exists( us, Elements.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan, tempSP, |
| | | tempSP.UnitPeriodTime().StartDate() = indexPPCell.StartDate(), |
| | | tempSP.Outcome() <> "" ) and |
| | | needPackagingQuantity > 0 ) { |
| | | // è½å
è£
çæ°é |
| | | canPackagingQuantity := ifexpr( ceil( needPackagingQuantity / ppls.LotSize() ) < floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ), |
| | | ceil( needPackagingQuantity / ppls.LotSize() ), |
| | | floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ) ) * ppls.LotSize(); |
| | | // info( "å¼å§å
è£
çæ¥æï¼", indexPPCell.StartDate().Format( "Y-M2-D2" ), " è½å
è£
çæ°é:", canPackagingQuantity ); |
| | | |
| | | indexPPCell.Package( canPackagingQuantity ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, PackagingInventory ) ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, UnpackagedInventory ) ); |
| | | |
| | | needPackagingQuantity := needPackagingQuantity - canPackagingQuantity; |
| | | indexPPCell := indexPPCell.Previous(); |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | StaticMethod SetPackagingAndUnpackingValues ( |
| | | MacroPlan macroPlan |
| | | ) |
| | | { |
| | | TextBody: |
| | | [* |
| | | // 计åå¼å§æ¶é´ |
| | | plannedStartDate := macroPlan.StartOfPlanning().Date(); |
| | | |
| | | // 设置å
è£
å¼ï¼ç¬¦ålotsizeå䏿¥æå¤§å
è£
éï¼ |
| | | traverse ( macroPlan, PackagingPlanRow, ppr/*, ppr.Factory() = "大è¿å·¥å" and ppr.ProductID() = "06K103011CM"*/ ) { |
| | | traverse ( ppr, PackagingPlanCell, ppcell/*, ppcell.StartDate() <= Date::Construct( 2025, 1, 4 )*/ ) { |
| | | // Product_MP |
| | | pmp := select( macroPlan, Product_MP, tempPMP, tempPMP.IsLeaf() and tempPMP.ID() = ppr.ProductID() ); |
| | | // å
è£
lotsize |
| | | ppls := select( macroPlan, PackagingPlanLotSize, tempPPLS, tempPPLS.Factory() = ppr.Factory() and |
| | | tempPPLS.ProductID() = ifexpr( exists( macroPlan, PackagingPlanLotSize, tempPPLS1, tempPPLS1.ProductID() = pmp.ID() ), |
| | | pmp.ID(), |
| | | pmp.ParentID() ) ); |
| | | // 䏿¥å
è£
容é |
| | | ppnc := select( macroPlan, PackagingPlanNewCapability, tempPPNC, tempPPNC.Factory() = ppr.Factory() and |
| | | tempPPNC.ProductID() = ifexpr( exists( macroPlan, PackagingPlanNewCapability, tempPPNC1, tempPPNC1.ProductID() = pmp.ID() ), |
| | | pmp.ID(), |
| | | pmp.ParentID() ) ); |
| | | // Unit |
| | | us := selectset( macroPlan, Unit, tempU, tempU.ID().Regex( ppr.FactoryAbbreviation() + " " + ppr.Category() ) ); |
| | | |
| | | // å
è£
åºååºç°è´å¼ï¼éè¦è®¾ç½®å
è£
é |
| | | if ( ppcell.PackagingInventory() < 0 and not isnull( ppls ) and not isnull( ppnc ) ) { |
| | | // éè¦å
è£
çæ°é |
| | | needPackagingQuantity := abs( ppcell.PackagingInventory() ).Round( 0 ); |
| | | // å
è£
å¼å§çç´¢å¼ |
| | | indexPPCell := ppcell.Previous(); |
| | | |
| | | // info( "产线个æ°ï¼", us.Size(), " å¼å§æ¶é´ï¼", ppcell.StartDate().Format( "Y-M2-D2" ), " å
è£
åºåæ°éï¼", ppcell.PackagingInventory(), " éè¦å
è£
çæ°éï¼", needPackagingQuantity, |
| | | // " å
è£
lotsizeï¼",guard( ppls.LotSize(), 0 ), " æå¤§å
è£
容éï¼", ppnc.MaximumDailyPackagingQuantity() ); |
| | | |
| | | while ( not isnull( indexPPCell ) and |
| | | indexPPCell.StartDate() >= plannedStartDate and |
| | | exists( us, Elements.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan, tempSP, |
| | | tempSP.UnitPeriodTime().StartDate() = indexPPCell.StartDate(), |
| | | tempSP.Outcome() <> "" ) and |
| | | needPackagingQuantity > 0 ) { |
| | | // è½å
è£
çæ°é |
| | | canPackagingQuantity := ifexpr( ceil( needPackagingQuantity / ppls.LotSize() ) < floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ), |
| | | ceil( needPackagingQuantity / ppls.LotSize() ), |
| | | floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ) ) * ppls.LotSize(); |
| | | // info( "å¼å§å
è£
çæ¥æï¼", indexPPCell.StartDate().Format( "Y-M2-D2" ), " è½å
è£
çæ°é:", canPackagingQuantity ); |
| | | |
| | | indexPPCell.Package( canPackagingQuantity ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, PackagingInventory ) ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, UnpackagedInventory ) ); |
| | | |
| | | needPackagingQuantity := needPackagingQuantity - canPackagingQuantity; |
| | | indexPPCell := indexPPCell.Previous(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 设置å
è£
å¼ï¼ç¬¦åå¤§ç±»ä¸ææäº§åéå
è£
éåºåå åä¸è½å¤§äºç³»ç»å¼ï¼ |
| | | factorys := selectuniquevalues( macroPlan, PackagingPlanRow, tempPPR, true, tempPPR.FactoryAbbreviation() ); |
| | | categorys := selectuniquevalues( macroPlan, PackagingPlanRow, tempPPR, true, tempPPR.Category() ); |
| | | traverse ( factorys, Elements, f/*, f = "DL"*/ ) { |
| | | traverse ( categorys, Elements, c/*, c = "ZKG"*/ ) { |
| | | // ç³»ç»è§å®çæå¤§éå
è£
åºåæ°é |
| | | ppmqReflection := Reflection::FindAttribute( "PackagingPlanMaximumQuantity", f + "_" + c ); |
| | | maxPackageQuantity := guard( ppmqReflection.GetNumber( macroPlan.PackagingPlanMaximumQuantity() ), 0 ); |
| | | // å½åå·¥åä¸ä¸ç±»äº§åè¡ |
| | | pprs := selectset( macroPlan, PackagingPlanRow, tempPPR, tempPPR.FactoryAbbreviation() = f and tempPPR.Category() = c ); |
| | | |
| | | // info( "å½åå·¥åï¼", f, " å½å大类ï¼", c, " 大类ä¸çæå¤§å
è£
æ°éï¼", maxPackageQuantity ); |
| | | traverse ( macroPlan, PackagingPlanColumn, ppc, ppc.StartDate() > plannedStartDate and maxPackageQuantity > 0 ) { |
| | | sumUnpackagedInventoryQuantity := sum( pprs, Elements.PackagingPlanCell, tempPPCell, tempPPCell.PackagingPlanColumn() = ppc, tempPPCell.UnpackagedInventory() ).Round( 0 ); |
| | | |
| | | // éè¦å
è£
|
| | | if ( sumUnpackagedInventoryQuantity > maxPackageQuantity ) { |
| | | // éè¦å
è£
çæ°é |
| | | needPackagingQuantity := [Number] ( sumUnpackagedInventoryQuantity - maxPackageQuantity ); |
| | | // æéå
è£
åºåæåºåçè¡ |
| | | itemPPRs := selectsortedset( pprs, Elements, tempPPR, true, |
| | | -select( tempPPR, PackagingPlanCell, tempPPCell, tempPPCell.PackagingPlanColumn() = ppc ).UnpackagedInventory() ); |
| | | |
| | | // info( "éè¦å
è£
æ¶é´ï¼", ppc.StartDate().Format( "Y-M2-D2" ), " éè¦å
è£
çæ°éï¼", needPackagingQuantity ); |
| | | traverse ( itemPPRs, Elements, ppr, needPackagingQuantity > 0 ) { |
| | | PackagingPlanCell::Package( macroPlan, ppr, ppc, needPackagingQuantity ); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | } |
| | | |
| | | // 设置æå
å¼ï¼ç¬¦ålotsizeå䏿¥æå¤§å
è£
éï¼ |
| | | traverse ( macroPlan, PackagingPlanRow, ppr/*, ppr.Factory() = "大è¿å·¥å" and ppr.ProductID() = "06K103011CM"*/ ) { |
| | | traverse ( ppr, PackagingPlanCell, ppcell/*, ppcell.StartDate() <= Date::Construct( 2025, 1, 4 )*/ ) { |
| | | // Product_MP |
| | | pmp := select( macroPlan, Product_MP, tempPMP, tempPMP.IsLeaf() and tempPMP.ID() = ppr.ProductID() ); |
| | | // å
è£
lotsize |
| | | ppls := select( macroPlan, PackagingPlanLotSize, tempPPLS, tempPPLS.Factory() = ppr.Factory() and |
| | | tempPPLS.ProductID() = ifexpr( exists( macroPlan, PackagingPlanLotSize, tempPPLS1, tempPPLS1.ProductID() = pmp.ID() ), |
| | | pmp.ID(), |
| | | pmp.ParentID() ) ); |
| | | // 䏿¥å
è£
容é |
| | | ppnc := select( macroPlan, PackagingPlanNewCapability, tempPPNC, tempPPNC.Factory() = ppr.Factory() and |
| | | tempPPNC.ProductID() = ifexpr( exists( macroPlan, PackagingPlanNewCapability, tempPPNC1, tempPPNC1.ProductID() = pmp.ID() ), |
| | | pmp.ID(), |
| | | pmp.ParentID() ) ); |
| | | // Unit |
| | | us := selectset( macroPlan, Unit, tempU, tempU.ID().Regex( ppr.FactoryAbbreviation() + " " + ppr.Category() ) ); |
| | | |
| | | // å½åéå
è£
åºå + ä¸ä¸å¤©çNewSupply < ä¸ä¸å¤©çåéæ± |
| | | if ( ppcell.UnpackagedInventory() < guard( ppcell.Next().NetDemand(), 0 ) and not isnull( ppls ) and not isnull( ppnc ) ) { |
| | | // éè¦å
è£
çæ°é |
| | | needPackagingQuantity := abs( ppcell.PackagingInventory() ).Round( 0 ); |
| | | // å
è£
å¼å§çç´¢å¼ |
| | | indexPPCell := ppcell.Previous(); |
| | | |
| | | // info( "产线个æ°ï¼", us.Size(), " å¼å§æ¶é´ï¼", ppcell.StartDate().Format( "Y-M2-D2" ), " å
è£
åºåæ°éï¼", ppcell.PackagingInventory(), " éè¦å
è£
çæ°éï¼", needPackagingQuantity, |
| | | // " å
è£
lotsizeï¼",guard( ppls.LotSize(), 0 ), " æå¤§å
è£
容éï¼", ppnc.MaximumDailyPackagingQuantity() ); |
| | | |
| | | while ( not isnull( indexPPCell ) and |
| | | indexPPCell.StartDate() >= plannedStartDate and |
| | | exists( us, Elements.UnitPeriod.astype( UnitPeriodTime ).ShiftPlan, tempSP, |
| | | tempSP.UnitPeriodTime().StartDate() = indexPPCell.StartDate(), |
| | | tempSP.Outcome() <> "" ) and |
| | | needPackagingQuantity > 0 ) { |
| | | // è½å
è£
çæ°é |
| | | canPackagingQuantity := ifexpr( ceil( needPackagingQuantity / ppls.LotSize() ) < floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ), |
| | | ceil( needPackagingQuantity / ppls.LotSize() ), |
| | | floor( ppnc.MaximumDailyPackagingQuantity() / ppls.LotSize() ) ) * ppls.LotSize(); |
| | | // info( "å¼å§å
è£
çæ¥æï¼", indexPPCell.StartDate().Format( "Y-M2-D2" ), " è½å
è£
çæ°é:", canPackagingQuantity ); |
| | | |
| | | indexPPCell.Package( canPackagingQuantity ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, PackagingInventory ) ); |
| | | Transaction::Transaction().Propagate( attribute( PackagingPlanCell, UnpackagedInventory ) ); |
| | | |
| | | needPackagingQuantity := needPackagingQuantity - canPackagingQuantity; |
| | | indexPPCell := indexPPCell.Previous(); |
| | | } |
| | | } |
| | | } |
| | | } |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type ArchivePackagingPlanCell |
| | | { |
| | | #keys: '5[414996.1.150965192][414996.1.150965190][0.0.0][414996.1.150965191][414996.1.150965193]' |
| | | BaseType: Object |
| | | StructuredName: 'ArchivePackagingPlanCells' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StartDate |
| | | { |
| | | #keys: '3[414996.1.150965242][414996.1.150965241][414996.1.150965243]' |
| | | ValueType: Date |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type ArchivePackagingPlanColumn |
| | | { |
| | | #keys: '5[414996.1.150965239][414996.1.150965237][0.0.0][414996.1.150965238][414996.1.150965240]' |
| | | BaseType: Object |
| | | StructuredName: 'ArchivePackagingPlanColumns' |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Category |
| | | { |
| | | #keys: '3[414996.1.150965250][414996.1.150965249][414996.1.150965251]' |
| | | Description: '大类' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Factory |
| | | { |
| | | #keys: '3[414996.1.150965253][414996.1.150965252][414996.1.150965254]' |
| | | Description: 'å·¥å' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute FactoryAbbreviation |
| | | { |
| | | #keys: '3[414996.1.150965256][414996.1.150965255][414996.1.150965257]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute Name |
| | | { |
| | | #keys: '3[414996.1.150965259][414996.1.150965258][414996.1.150965260]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute ProductID |
| | | { |
| | | #keys: '3[414996.1.150965262][414996.1.150965261][414996.1.150965263]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Attribute StockingPointID |
| | | { |
| | | #keys: '3[414996.1.150965265][414996.1.150965264][414996.1.150965266]' |
| | | ValueType: String |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Category |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Factory |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: FactoryAbbreviation |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: Name |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: ProductID |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | DefaultValue |
| | | { |
| | | TargetAttribute: StockingPointID |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcFactoryAbbreviation |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Jul-26-2024 (created) |
| | | |
| | | value := ifexpr( this.Factory() = "大è¿å·¥å", "DL", "CC" ); |
| | | |
| | | this.FactoryAbbreviation( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Function CalcName |
| | | { |
| | | TextBody: |
| | | [* |
| | | // lihongji Jul-24-2024 (created) |
| | | |
| | | value := guard( this.ProductID(), "" ); |
| | | |
| | | this.Name( value ); |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: #root |
| | | Method FilterProduct ( |
| | | Product_MPs products, |
| | | String factory |
| | | ) declarative remote as Boolean |
| | | { |
| | | TextBody: |
| | | [* |
| | | flag := exists( products, Elements, tempP, tempP.ID() = this.ProductID() ) and this.Factory() = factory; |
| | | |
| | | return flag; |
| | | *] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | #root |
| | | #parent: #DomainModel |
| | | Type ArchivePackagingPlanRow |
| | | { |
| | | #keys: '5[414996.1.150965247][414996.1.150965245][0.0.0][414996.1.150965246][414996.1.150965248]' |
| | | BaseType: Object |
| | | StructuredName: 'ArchivePackagingPlanRows' |
| | | } |
| | |
| | | holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | }else if( shiftPlan.DefaultRemark().LikeUserLocale( "å¨å
" ) or shiftPlan.DefaultRemark().LikeUserLocale( "卿¥" ) ){ |
| | | // ä¸ä¸å¤©æ¯å¨å
æå¨æ¥ |
| | | nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); |
| | | nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); |
| | | breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | }else{ |
| | | // ä¸ä¸å¤©æ¯å¹³å¸¸ç工使¥ |
| | | nextDayOvertime := shiftPlan.GetDefaultDayOvertimeHour( true ); |
| | | nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); |
| | | defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | } |
| | | } |
| | |
| | | holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | }else if( shiftPlan.DefaultRemark().LikeUserLocale( "å¨å
" ) or shiftPlan.DefaultRemark().LikeUserLocale( "卿¥" ) ){ |
| | | // ä¸ä¸å¤©æ¯å¨å
æå¨æ¥ |
| | | nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); |
| | | nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); |
| | | breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | }else{ |
| | | // ä¸ä¸å¤©æ¯å¹³å¸¸ç工使¥ |
| | | nextDayOvertime := shiftPlan.GetDefaultDayOvertimeHour( true ); |
| | | nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); |
| | | defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | } |
| | | } |
| | |
| | | overtime := shiftPlan.GetDefaultDayOvertimeHour( false ); |
| | | defaultDayOvertimeHourCell.RealValue( defaultDayOvertimeHourCell.RealValue() + overtime ); |
| | | if( not isnull( nextShiftPlan )){ |
| | | nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); |
| | | if( nextShiftPlan.IsHoliday()){ |
| | | // ä¸ä¸å¤©æ¯è忥 |
| | | nextDayOvertime := shiftPlan.GetHolidayOvertimeHour( true ); |
| | | holidayOvertimeHourCell.RealValue( holidayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | }else if( shiftPlan.DefaultRemark().LikeUserLocale( "å¨å
" ) or shiftPlan.DefaultRemark().LikeUserLocale( "卿¥" ) ){ |
| | | // ä¸ä¸å¤©æ¯å¨å
æå¨æ¥ |
| | | nextDayOvertime := shiftPlan.GetBreakDayOvertimeHour( true ); |
| | | breakDayOvertimeHourCell.RealValue( breakDayOvertimeHourCell.RealValue() + nextDayOvertime ); |
| | | }else{ |
| | | // ä¸ä¸å¤©æ¯å¹³å¸¸ç工使¥ |
| | |
| | | |
| | | // æ¬ å·¥è´¹ |
| | | qiangongCell := LocalCell_Default::GetCell( rowKey + column7.CustomName(), cellIndexTree, cells, row, column7 ); |
| | | qiangongCell.RealValue( qiangongCell.RealValue() - 8 ); |
| | | qiangongCell.RealValue( qiangongCell.RealValue() ); |
| | | |
| | | qiangongfeiCell := LocalCell_Default::GetCell( rowKey + column11.CustomName(), cellIndexTree, cells, row, column11 ); |
| | | qiangongfeiCell.RealValue( EmployeeCost::GetSalary( unit,qiangongMultiplier,qiangongCell.RealValue() )); |
| | |
| | | TextBody: |
| | | [* |
| | | // rislai Jun-14-2024 (created) |
| | | return start1 <= end2 and start2 <= end1 ; |
| | | return start1 <= start2 and end1 >= end2 ; |
| | | *] |
| | | } |
| | |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ddlOfflinePlanTable |
| | | { |
| | | #keys: '[412672.1.64850982]' |
| | | BaseType: 'WebDropDownList' |
| | | Databinding: 'OfflinePlanTableInfo' |
| | | Children: |
| | | [ |
| | | Component DataExtractorRibbon |
| | | { |
| | | #keys: '[412672.1.64850983]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'RecycleBin' |
| | | Source: 'RecycleBin' |
| | | Taborder: 0 |
| | | Transformation: 'OfflinePlanTableInfo' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | DisplayField: 'TableName' |
| | | Label: 'ä¸çº¿è®¡å:' |
| | | NumberOfColumns: 50 |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component bComparison |
| | | { |
| | | #keys: '[412672.1.64851009]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'å¼å§å¯¹æ¯' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component LabelRibbon |
| | | { |
| | | #keys: '[412672.1.66018113]' |
| | |
| | | [ |
| | | DataBinding: 'ddlOfflinePlanTable.Data.TableName' |
| | | NumberOfColumns: 50 |
| | | Taborder: 6 |
| | | ] |
| | | } |
| | | Component bExport id:bExport_298 |
| | | { |
| | | #keys: '[414996.1.108480376]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Taborder: 4 |
| | | ] |
| | | } |
| | |
| | | ] |
| | | Properties: |
| | | [ |
| | | Taborder: 5 |
| | | ] |
| | | } |
| | | Component rbgTimeUnit |
| | | { |
| | | #keys: '[414996.1.147730565]' |
| | | BaseType: 'WebRadioButtonGroup' |
| | | Properties: |
| | | [ |
| | | BoundValue: 'Day' |
| | | ButtonLabels: 'Day;Week;Month' |
| | | ButtonValues: 'Day;Week;Month' |
| | | Taborder: 2 |
| | | Taborder: 3 |
| | | ] |
| | | } |
| | | Component dhTimeUnit |
| | |
| | | Databinding: 'String*' |
| | | Properties: |
| | | [ |
| | | Taborder: 3 |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | #child: PanelRibbon510 |
| | | #child: PanelRibbon763 |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelRibbon510 |
| | | { |
| | | #keys: '[414996.1.148040419]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component rbgTimeUnit id:rbgTimeUnit_19 |
| | | { |
| | | #keys: '[414996.1.148040622]' |
| | | BaseType: 'WebRadioButtonGroup' |
| | | Properties: |
| | | [ |
| | | BoundValue: 'Day' |
| | | ButtonLabels: 'Day;Week;Month' |
| | | ButtonValues: 'Day;Week;Month' |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 1 |
| | | ] |
| | | } |
¶Ô±ÈÐÂÎļþ |
| | |
| | | Quintiq file version 2.0 |
| | | Component PanelRibbon763 |
| | | { |
| | | #keys: '[414996.1.148040406]' |
| | | BaseType: 'WebPanel' |
| | | Children: |
| | | [ |
| | | Component ddlOfflinePlanTable id:ddlOfflinePlanTable_217 |
| | | { |
| | | #keys: '[414996.1.148040527]' |
| | | BaseType: 'WebDropDownList' |
| | | Databinding: 'OfflinePlanTableInfo' |
| | | Children: |
| | | [ |
| | | Component DataExtractorRibbon id:DataExtractorRibbon_568 |
| | | { |
| | | #keys: '[414996.1.148040528]' |
| | | BaseType: 'WebDataExtractor' |
| | | Properties: |
| | | [ |
| | | DataType: 'RecycleBin' |
| | | Source: 'RecycleBin' |
| | | Taborder: 0 |
| | | Transformation: 'OfflinePlanTableInfo' |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | DisplayField: 'TableName' |
| | | Label: 'ä¸çº¿è®¡å:' |
| | | NumberOfColumns: 50 |
| | | Taborder: 0 |
| | | ] |
| | | } |
| | | Component bComparison id:bComparison_136 |
| | | { |
| | | #keys: '[414996.1.148040554]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Label: 'å¼å§å¯¹æ¯' |
| | | Taborder: 1 |
| | | ] |
| | | } |
| | | Component bExport |
| | | { |
| | | #keys: '[414996.1.148040586]' |
| | | BaseType: 'WebButton' |
| | | Properties: |
| | | [ |
| | | Image: 'EXPORT1' |
| | | Taborder: 2 |
| | | ] |
| | | } |
| | | ] |
| | | Properties: |
| | | [ |
| | | FixedSize: true |
| | | Orientation: 'horizontal' |
| | | Taborder: 0 |
| | | ] |
| | | } |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_rbgTimeUnit_OnUserChanged.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelRibbon504/rbgTimeUnit |
| | | Response OnUserChanged () id:Response_PanelRibbon504_801_rbgTimeUnit_OnUserChanged |
| | | #parent: PanelRibbon510/rbgTimeUnit_19 |
| | | Response OnUserChanged () id:Response_PanelRibbon504_rbgTimeUnit_OnUserChanged |
| | | { |
| | | #keys: '[414996.1.147730564]' |
| | | #keys: '[414996.1.148040621]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebRadioButtonGroup_OnUserChanged' |
| | | GroupServerCalls: true |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_bComparison_OnClick#613.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelRibbon504/bComparison |
| | | Response OnClick () id:Response_PanelRibbon504_bComparison_OnClick_613 |
| | | #parent: PanelRibbon763/bComparison_136 |
| | | Response OnClick () id:Response_PanelRibbon504_bComparison_OnClick |
| | | { |
| | | #keys: '[412672.1.64851008]' |
| | | #keys: '[414996.1.148040553]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | QuillAction |
ÎļþÃû´Ó _Main/UI/MacroPlannerWebApp/Component_FormOfflinePlanComparison/Response_PanelRibbon504_bExport_OnClick#891.def ÐÞ¸Ä |
| | |
| | | Quintiq file version 2.0 |
| | | #parent: PanelRibbon504/bExport_298 |
| | | Response OnClick () id:Response_pOperaction_bExport_OnClick_891 |
| | | #parent: PanelRibbon763/bExport |
| | | Response OnClick () id:Response_PanelRibbon504_bExport_OnClick |
| | | { |
| | | #keys: '[414996.1.108480375]' |
| | | #keys: '[414996.1.148040585]' |
| | | CanBindMultiple: false |
| | | DefinitionID: 'Responsedef_WebButton_OnClick' |
| | | GroupServerCalls: true |