From 48ce218f5329dd9a3e2ba8851b101a5b85f8aab4 Mon Sep 17 00:00:00 2001 From: hongjli <3117313295@qq.com> Date: 星期一, 25 九月 2023 15:54:18 +0800 Subject: [PATCH] 产能分配结果优化 --- _Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def | 26 ++ _Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl | 65 +++++ _Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def | 16 + _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl | 1 _Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def | 2 _Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl | 13 + _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl | 3 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def | 2 _Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl | 78 +++++ _Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl | 7 _Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl | 11 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def | 4 _Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def | 9 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl | 20 + _Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl | 49 ++++ _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl | 14 + _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def | 37 +++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def | 29 ++ _Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl | 15 + _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def | 37 +++ _Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl | 23 + _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def | 18 + _Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl | 7 _Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl | 7 _Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl | 7 _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl | 1 /dev/null | 16 - _Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl | 49 ++++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def | 14 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def | 12 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def | 16 + _Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl | 14 + _Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR#39.def | 16 + 38 files changed, 604 insertions(+), 59 deletions(-) diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl new file mode 100644 index 0000000..d50d284 --- /dev/null +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Export.qbl @@ -0,0 +1,49 @@ +Quintiq file version 2.0 +#parent: #root +EDIBroker GlobalOTDTable_CARRC_Export +{ + MDSDefinition: GlobalOTDTable + TimeZone: 'ACT' + UseOSTimeZone: false + EDIModelLink.Source Source11 + { + EDIMLTable CapacityAllocationResultsRuleConfiguration + { + PrimaryKeyColumns: ModuleMaterialCode + PrimaryKeyColumns: PanelMaterialCode + PrimaryKeyColumns: StockingPointID + TargetType: CapacityAllocationResultsRuleConfiguration + TypeIndex: CapacityAllocationResultsRuleConfigurationTypeIndex + EDIMLColumn Division { Attribute: Division ValueType: String } + EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } + EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } + EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } + } + } + EDITransformation.Transformation Transformation11 + { + EDITableTransformation + { + InputTable: CapacityAllocationResultsRuleConfiguration + OutputTable: CapacityAllocationResultsRuleConfiguration + EDIColumnMatch { InputColumn: Division OutputColumn: Division } + EDIColumnMatch { InputColumn: ModuleMaterialCode OutputColumn: ModuleMaterialCode } + EDIColumnMatch { InputColumn: PanelMaterialCode OutputColumn: PanelMaterialCode } + EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } + } + } + EDIXLSLink.Destination Destination12 + { + FileName: 'Destination12' + EDIXLSLinkTable CapacityAllocationResultsRuleConfiguration + { + Columns: + [ + EDIXLSLinkColumn Division { ValueType: String } + EDIXLSLinkColumn ModuleMaterialCode { ValueType: String } + EDIXLSLinkColumn PanelMaterialCode { ValueType: String } + EDIXLSLinkColumn StockingPointID { ValueType: String } + ] + } + } +} diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl new file mode 100644 index 0000000..e539ed2 --- /dev/null +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CARRC_Import.qbl @@ -0,0 +1,49 @@ +Quintiq file version 2.0 +#parent: #root +EDIBroker GlobalOTDTable_CARRC_Import +{ + MDSDefinition: GlobalOTDTable + TimeZone: 'ACT' + UseOSTimeZone: false + EDIModelLink.Destination Destination13 + { + EDIMLTable CapacityAllocationResultsRuleConfiguration + { + PrimaryKeyColumns: ModuleMaterialCode + PrimaryKeyColumns: PanelMaterialCode + PrimaryKeyColumns: StockingPointID + TargetType: CapacityAllocationResultsRuleConfiguration + TypeIndex: CapacityAllocationResultsRuleConfigurationTypeIndex + EDIMLColumn Division { Attribute: Division ValueType: String } + EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } + EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } + EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } + } + } + EDITransformation.Transformation Transformation12 + { + EDITableTransformation + { + InputTable: CapacityAllocationResultsRuleCo + OutputTable: CapacityAllocationResultsRuleConfiguration + EDIColumnMatch { InputColumn: Division OutputColumn: Division } + EDIColumnMatch { InputColumn: ModuleMaterialCode OutputColumn: ModuleMaterialCode } + EDIColumnMatch { InputColumn: PanelMaterialCode OutputColumn: PanelMaterialCode } + EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } + } + } + EDIXLSLink.Source Source12 + { + FileName: '浜ц兘鍒嗛厤缁撴灉瑙勫垯.xlsx' + EDIXLSLinkTable CapacityAllocationResultsRuleCo + { + Columns: + [ + EDIXLSLinkColumn Division { ValueType: String } + EDIXLSLinkColumn ModuleMaterialCode { ValueType: String } + EDIXLSLinkColumn PanelMaterialCode { ValueType: String } + EDIXLSLinkColumn StockingPointID { ValueType: String } + ] + } + } +} diff --git a/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl new file mode 100644 index 0000000..571fce9 --- /dev/null +++ b/_Main/BL/EDI/Broker_GlobalOTDTable_CAR_Export.qbl @@ -0,0 +1,65 @@ +Quintiq file version 2.0 +#parent: #root +EDIBroker GlobalOTDTable_CAR_Export +{ + MDSDefinition: GlobalOTDTable + TimeZone: 'ACT' + UseOSTimeZone: false + EDIModelLink.Source Source13 + { + EDIMLTable CapacityAllocationResults + { + TargetType: CapacityAllocationResults + EDIMLColumn Date { Attribute: Date ValueType: Date } + EDIMLColumn Description { Attribute: Description ValueType: String } + EDIMLColumn Division { Attribute: Division ValueType: String } + EDIMLColumn ID { Attribute: ID ValueType: String } + EDIMLColumn ManufacturedDate { Attribute: ManufacturedDate ValueType: Date } + EDIMLColumn ModuleBase { Attribute: ModuleBase ValueType: String } + EDIMLColumn ModuleMaterialCode { Attribute: ModuleMaterialCode ValueType: String } + EDIMLColumn ModuleMeasurementUnit { Attribute: ModuleMeasurementUnit ValueType: String } + EDIMLColumn NumberOfModules { Attribute: NumberOfModules ValueType: Real } + EDIMLColumn NumberOfPanels { Attribute: NumberOfPanels ValueType: Real } + EDIMLColumn PanelBase { Attribute: PanelBase ValueType: String } + EDIMLColumn PanelMaterialCode { Attribute: PanelMaterialCode ValueType: String } + EDIMLColumn PanelMeasurementUnit { Attribute: PanelMeasurementUnit ValueType: String } + EDIMLColumn ProductID { Attribute: ProductID ValueType: String } + EDIMLColumn RequirementDate { Attribute: RequirementDate ValueType: Date } + EDIMLColumn StockingPointID { Attribute: StockingPointID ValueType: String } + EDIMLColumn UserQuantity { Attribute: UserQuantity ValueType: Real } + EDIMLColumn VersionNumber { Attribute: VersionNumber ValueType: String } + } + } + EDITransformation.Transformation Transformation13 + { + EDITableTransformation + { + InputTable: CapacityAllocationResults + OutputTable: CapacityAllocationResults + EDIColumnMatch { InputColumn: Date OutputColumn: Date } + EDIColumnMatch { InputColumn: Description OutputColumn: Description } + EDIColumnMatch { InputColumn: ID OutputColumn: ID } + EDIColumnMatch { InputColumn: ManufacturedDate OutputColumn: ManufacturedDate } + EDIColumnMatch { InputColumn: ProductID OutputColumn: ProductID } + EDIColumnMatch { InputColumn: StockingPointID OutputColumn: StockingPointID } + EDIColumnMatch { InputColumn: UserQuantity OutputColumn: UserQuantity } + } + } + EDIXLSLink.Destination Destination14 + { + FileName: 'Destination14' + EDIXLSLinkTable CapacityAllocationResults + { + Columns: + [ + EDIXLSLinkColumn Date { ValueType: Date } + EDIXLSLinkColumn Description { ValueType: String } + EDIXLSLinkColumn ID { ValueType: String } + EDIXLSLinkColumn ProductID { ValueType: String } + EDIXLSLinkColumn StockingPointID { ValueType: String } + EDIXLSLinkColumn UserQuantity { ValueType: Real } + EDIXLSLinkColumn ManufacturedDate { ValueType: Date } + ] + } + } +} diff --git a/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl b/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl new file mode 100644 index 0000000..744cd1a --- /dev/null +++ b/_Main/BL/Relations/Relation_CapacityAllocationResultsRuleConfiguration_CapacityAllocationResult.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation CapacityAllocationResultsRuleConfiguration_CapacityAllocationResults_CapacityAllocationResults_CapacityAllocationResultsRuleConfiguration +{ + #keys: '1[414702.0.387791788]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide CapacityAllocationResults + { + #keys: '3[414702.0.387791790][414702.0.387791789][414702.0.387791791]' + Cardinality: '1toN' + ObjectDefinition: CapacityAllocationResultsRuleConfiguration + OwningSide: 'Reference' + } + RelationSide.RightSide CapacityAllocationResultsRuleConfiguration + { + #keys: '3[414702.0.387791793][414702.0.387791792][414702.0.387791794]' + Cardinality: '0to1' + ObjectDefinition: CapacityAllocationResults + OwningSide: 'Reference' + } +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl new file mode 100644 index 0000000..a158e2b --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_Date.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Date +{ + #keys: '3[414702.0.388471426][414702.0.388471425][414702.0.388471427]' + ValueType: Date +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl new file mode 100644 index 0000000..4d7f093 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_Description.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute Description +{ + #keys: '3[414702.0.388471436][414702.0.388471435][414702.0.388471437]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl new file mode 100644 index 0000000..3a52d76 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ID +{ + #keys: '3[414702.0.388471446][414702.0.388471445][414702.0.388471447]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl new file mode 100644 index 0000000..15ee01f --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ManufacturedDate.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ManufacturedDate +{ + #keys: '3[414702.0.388471486][414702.0.388471485][414702.0.388471487]' + ValueType: Date +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl new file mode 100644 index 0000000..ca7c6e4 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[414702.0.388471456][414702.0.388471455][414702.0.388471457]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..2a28f0d --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[414702.0.388471466][414702.0.388471465][414702.0.388471467]' + ValueType: String +} diff --git a/_Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl b/_Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl new file mode 100644 index 0000000..9c3d31c --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/Attribute_UserQuantity.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute UserQuantity +{ + #keys: '3[414702.0.388471476][414702.0.388471475][414702.0.388471477]' + ValueType: Real +} diff --git a/_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl b/_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl new file mode 100644 index 0000000..59c9af0 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/DeclarativeReferenceRelation_CalcCapacityAllocationResultsRuleConfiguration.qbl @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +DeclarativeReferenceRelation CalcCapacityAllocationResultsRuleConfiguration +{ + #keys: '1[414702.0.388304510]' + Expression: + [* + targetCapacityAllocationResultsRuleConfiguration := select( this.GlobalOTDTable(), CapacityAllocationResultsRuleConfiguration, tempCARRC, + tempCARRC.ModuleMaterialCode() = this.ModuleMaterialCode() and + tempCARRC.PanelMaterialCode() = this.PanelMaterialCode() ); + + return targetCapacityAllocationResultsRuleConfiguration; + *] + Relation: CapacityAllocationResultsRuleConfiguration +} diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl index 9bea872..119198c 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_CreateDate.qbl @@ -2,7 +2,8 @@ #parent: #root StaticMethod CreateDate ( GlobalOTDTable globalOTDTable, - MacroPlan macroPlan + MacroPlan macroPlan, + Scenario scenario ) { TextBody: @@ -17,12 +18,16 @@ } traverse ( finaleProductInStockingPoint_MPs, Elements, fpispmp ) { - capacityAllocationResultsRuleConfiguration := select( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() ); + capacityAllocationResultsRuleConfigurations := selectset( globalOTDTable, CapacityAllocationResultsRuleConfiguration, tempCARRC, tempCARRC.ModuleMaterialCode() = fpispmp.ProductID() and tempCARRC.StockingPointID() = fpispmp.StockingPointID() ); info( "鐢熶骇鐨勪骇鍝侊細", fpispmp.ProductID(), "------浜у搧鍦ㄥ簱瀛樼偣-------锛�", fpispmp.StockingPointID() ); traverse ( period_MPS, Elements, pmp ) { // CapacityAllocationResults::IterativeGeneration( globalOTDTable, pisp, 1, null( NewSupply ), -1.0, pmp.StartDate() ); 鑰佺増 - CapacityAllocationResults::IterativeGeneration2( fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfiguration, 0, 0.0 ); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, fpispmp, pmp.StartDate(), capacityAllocationResultsRuleConfigurations, 0, null( NewSupply ), 0.0 ); } } + + traverse ( globalOTDTable, CapacityAllocationResults, car ) { + car.VersionNumber( scenario.Name() ); + } *] } diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl new file mode 100644 index 0000000..14045dd --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_Export.qbl @@ -0,0 +1,13 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + GlobalOTDTable globalOTDTable +) as BinaryValue +{ + TextBody: + [* + binaryData := globalOTDTable.GlobalOTDTable_CAR_Export().ExecuteToXLS( true ); + + return binaryData.AsBinaryValue(); + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl index 37b0364..3f70ca5 100644 --- a/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl +++ b/_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl @@ -1,37 +1,93 @@ Quintiq file version 2.0 #parent: #root StaticMethod IterativeGeneration2 ( + GlobalOTDTable globalOTDTable, ProductInStockingPoint_MP pisp, Date targetDate, - CapacityAllocationResultsRuleConfiguration carrcs, + CapacityAllocationResultsRuleConfigurations carrcs, Number numberOfLayers, - Real firstLevelSupply + NewSupply firstLevelSupply, + Real currentLayerDependentDemandQuantity ) { TextBody: [* numberOfLayers++; - info( "灞傛暟锛�", numberOfLayers, " 鐩爣鏃堕棿锛�", targetDate.Format( "Y-M2-D2" ) ); - + info( "鐩爣鏃堕棿锛�", targetDate.Format( "Y-M2-D2" ) ); + info( pisp.Name() ); traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) { traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) { - info( "褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name() ); if ( numberOfLayers = 1 ) { - firstLevelSupply := ns.Quantity(); + firstLevelSupply := ns; } - if ( guard( ns.PeriodTask_MP().astype( PeriodTaskOperation ).DependentDemand( relsize ) > 0, false ) ) { - traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) { - CapacityAllocationResults::IterativeGeneration2( dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), + ontype( ns.PeriodTask_MP() ) { + PeriodTaskOperation as pto : { + info( "Operation鍛ㄦ湡浠诲姟..." ); + traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) { + currentLayerDependentDemandQuantity := currentLayerDependentDemandQuantity * + ns.ProcessOutput().astype( OperationOutput ).Quantity() * + dd.ProcessInput().astype( OperationInput ).Quantity(); + info( "灞傛暟锛�", numberOfLayers, " 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity, + " 褰撳墠闇�姹俻isp锛�", dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity ); + info( "-----------------------------------------------------------------------------------------------------------------" ); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, + dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), + targetDate, + carrcs, + numberOfLayers, + firstLevelSupply, + currentLayerDependentDemandQuantity + ); + } + carrc := select( carrcs, Elements, carrc, carrc.PanelMaterialCode() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); + if ( not isnull( carrc ) ) { + info( "鎵惧埌闈㈡澘鐗╂枡..." ); + globalOTDTable.CapacityAllocationResults( relnew, + PanelBase := pto.Operation().UnitID(), + PanelMaterialCode := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), + NumberOfPanels := currentLayerDependentDemandQuantity, + PanelMeasurementUnit := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), + ModuleMaterialCode := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), + NumberOfModules := firstLevelSupply.Quantity(), + ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(), + ModuleBase := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "杞﹂亾杩愯緭" ), + Division := carrc.Division(), + RequirementDate := ns.Start().Date(), + Date := ns.Start().Date(), + Description := "", + ID := OS::GenerateGUIDAsString(), + ProductID := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(), + StockingPointID := "", + UserQuantity := currentLayerDependentDemandQuantity, + ManufacturedDate := Date::MinDate() + ); + + } + info( "-----------------------------------------------------------------------------------------------------------------" ); + } + + PeriodTaskLaneLeg as ptll : { + targetDependentDemand := select( ptll, DependentDemand, dd, dd.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() = ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID() ); + currentLayerDependentDemandQuantity := ifexpr( numberOfLayers = 1, targetDependentDemand.Quantity(), currentLayerDependentDemandQuantity ); + info( "灞傛暟锛�", numberOfLayers," 褰撳墠渚涘簲鐨刾isp锛�", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 鎬讳緵搴斿�硷細", ns.Quantity(), " 闇�瑕佷緵搴斿�硷細", currentLayerDependentDemandQuantity, + " 褰撳墠闇�姹俻isp锛�", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), " 闇�姹傚�硷細", currentLayerDependentDemandQuantity ); + info( "LaneLeg鍛ㄦ湡浠诲姟..." ); + info( "-----------------------------------------------------------------------------------------------------------------" ); + CapacityAllocationResults::IterativeGeneration2( globalOTDTable, + targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(), targetDate, carrcs, numberOfLayers, - firstLevelSupply + firstLevelSupply, + currentLayerDependentDemandQuantity ); } } - firstLevelSupply := 0.0; + if ( numberOfLayers = 1 ) { + firstLevelSupply := null( NewSupply ); + } } } *] diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl index 13e7a40..ca60799 100644 --- a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_ModuleMaterialCode.qbl @@ -4,5 +4,6 @@ { #keys: '3[414702.0.374991437][414702.0.374991436][414702.0.374991438]' Description: '妯$粍鐗╂枡缂栫爜' + IsReadOnly: true ValueType: String } diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl index b2b1018..02037a2 100644 --- a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_PanelMaterialCode.qbl @@ -4,5 +4,6 @@ { #keys: '3[414702.0.374991427][414702.0.374991426][414702.0.374991428]' Description: '闈㈡澘鐗╂枡缂栫爜' + IsReadOnly: true ValueType: String } diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl index a0d789c..fb82a94 100644 --- a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/Attribute_StockingPointID.qbl @@ -3,6 +3,7 @@ Attribute StockingPointID { #keys: '3[414702.0.375010145][414702.0.375010144][414702.0.375010146]' - Description: '搴撳瓨鐐笽D' + Description: '妯$粍浜ф垚鍝佸簱瀛樼偣ID' + IsReadOnly: true ValueType: String } diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl new file mode 100644 index 0000000..4397413 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Export.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + GlobalOTDTable globalOTDTable +) as BinaryValue +{ + TextBody: + [* + // hongjli Sep-25-2023 (created) + binaryValue := globalOTDTable.GlobalOTDTable_CARRC_Export().ExecuteToXLS( true ).AsBinaryValue(); + + return binaryValue; + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl new file mode 100644 index 0000000..a4eddc6 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/StaticMethod_Import.qbl @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Import ( + GlobalOTDTable globalOTDTable, + String base64String +) +{ + TextBody: + [* + binaryData := BinaryData::FromBase64EncodedString( base64String ); + + globalOTDTable.GlobalOTDTable_CARRC_Import().ExecuteFromXLS( &binaryData, true ); + *] +} diff --git a/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl new file mode 100644 index 0000000..ea74562 --- /dev/null +++ b/_Main/BL/Type_CapacityAllocationResultsRuleConfiguration/TypeIndex_CapacityAllocationResultsRuleConfigurationTypeIndex.qbl @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: #root +TypeIndex CapacityAllocationResultsRuleConfigurationTypeIndex +{ + Attributes: + [ + TypeIndexAttribute + { + ModelElement: ModuleMaterialCode + } + TypeIndexAttribute + { + ModelElement: PanelMaterialCode + } + TypeIndexAttribute + { + ModelElement: StockingPointID + } + ] +} diff --git a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def index 7b1da32..e164af9 100644 --- a/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def +++ b/_Main/UI/MacroPlanner/Component_FormTestButtonCollection/Response_Button398_OnClick.def @@ -5,7 +5,7 @@ #keys: '[414702.0.340554926]' Body: [* - CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan ); + CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, SelectionScenario.Data() ); *] CanBindMultiple: false DefinitionID: 'Responsedef_GUIButtonBase_OnClick' diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def index 320176c..f885a86 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Component_pnlContent.def @@ -23,7 +23,7 @@ Properties: [ DataBinding: 'DataHolderDialogData.Data.ModuleMaterialCode' - Label: '妯℃澘鐗╂枡缂栫爜' + Label: '妯℃澘浜ф垚鍝両D' Taborder: 1 ] } @@ -45,7 +45,7 @@ Properties: [ DataBinding: 'DataHolderDialogData.Data.StockingPointID' - Label: '搴撳瓨鐐笽D' + Label: '妯$粍浜ф垚鍝佸簱瀛樼偣ID' Taborder: 3 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def index d088a4b..336e9a8 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogCapacityAllocationResultsRuleConfiguration/Response_pnlActions_btnOk_OnClick.def @@ -19,10 +19,11 @@ StockingPointID := efStockingPointID.Text() ); } else { - data.PanelMaterialCode( efPanelMaterialCode.Text() ); - data.ModuleMaterialCode( efModuleMaterialCode.Text() ); - data.Division( efDivision.Text() ); - data.StockingPointID( efStockingPointID.Text() ); + DataHolderDialogData.Data().PanelMaterialCode( efPanelMaterialCode.Text() ); + DataHolderDialogData.Data().ModuleMaterialCode( efModuleMaterialCode.Text() ); + DataHolderDialogData.Data().Division( efDivision.Text() ); + DataHolderDialogData.Data().StockingPointID( efStockingPointID.Text() ); + DataHolderDialogData.Data().Commit(); } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def index c07b922..27d0374 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_ListCapacityAllocationResults.def @@ -1,26 +1,26 @@ Quintiq file version 2.0 Component ListCapacityAllocationResults { - #keys: '[414702.0.338762075]' + #keys: '[414702.0.390053833]' BaseType: 'WebList' Children: [ Component DataExtractorCapacityAllocationResults { - #keys: '[414702.0.338762076]' + #keys: '[414702.0.390053834]' BaseType: 'WebDataExtractor' Properties: [ - DataType: 'GlobalOTDTable' - Source: 'GlobalOTDTable' + DataType: 'structured[CapacityAllocationResultsRuleConfiguration]' + Source: 'FormCapacityAllocationResultsRuleConfiguration.DataHolderSelectCapacityAllocationResultsRuleConfiguration' Taborder: 0 - Transformation: 'CapacityAllocationResults' + Transformation: 'Elements.CapacityAllocationResults' ] } #child: listActionBarPageCapacityAllocationResults Component DataSetLevelCapacityAllocationResults { - #keys: '[414702.0.338762081]' + #keys: '[414702.0.390053839]' BaseType: 'WebDataSetLevel' Children: [ @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"VersionNumber","title":"VersionNumber","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"VersionNumber"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMaterialCode","title":"PanelMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfPanels","title":"NumberOfPanels","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfPanels"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PanelMeasurementUnit","title":"PanelMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PanelMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMaterialCode","title":"ModuleMaterialCode","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMaterialCode"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"NumberOfModules","title":"NumberOfModules","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"NumberOfModules"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ModuleMeasurementUnit","title":"ModuleMeasurementUnit","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ModuleMeasurementUnit"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Division","title":"Division","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Division"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"RequirementDate","title":"RequirementDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"RequirementDate"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Date","title":"Date","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Date"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Description","title":"Description","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Description"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UserQuantity","title":"UserQuantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UserQuantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ManufacturedDate","title":"ManufacturedDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ManufacturedDate"}}]' ContextMenu: 'listContextMenuCapacityAllocationResults' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def new file mode 100644 index 0000000..a916ec0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_PanelCapacityAllocationResults.def @@ -0,0 +1,37 @@ +Quintiq file version 2.0 +Component PanelCapacityAllocationResults +{ + #keys: '[414702.0.391687385]' + BaseType: 'WebPanel' + Children: + [ + Component ButtonGenerateCapacityAllocationResults id:ButtonGenerateCapacityAllocationResults_570 + { + #keys: '[414702.0.391717497]' + BaseType: 'WebButton' + Properties: + [ + Image: 'PROCESS' + Label: '鐢熸垚鏁版嵁' + Taborder: 0 + ] + } + Component Export id:Export_398 + { + #keys: '[414702.0.392048461]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + Taborder: 1 + ] + } + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def index 5384f4a..81f7ddb 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listActionBarPageCapacityAllocationResults.def @@ -1,7 +1,7 @@ Quintiq file version 2.0 Component listActionBarPageCapacityAllocationResults { - #keys: '[414702.0.338762078]' + #keys: '[414702.0.390053836]' BaseType: 'listActionBarPage' Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def index 62d4067..b7e995a 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Component_listContextMenuCapacityAllocationResults.def @@ -1,7 +1,7 @@ Quintiq file version 2.0 Component listContextMenuCapacityAllocationResults { - #keys: '[414702.0.338762083]' + #keys: '[414702.0.390053841]' BaseType: 'listContextMenu' Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def deleted file mode 100644 index 2d97d02..0000000 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_ButtonGenerateCapacityAllocationResults_OnClick.def +++ /dev/null @@ -1,16 +0,0 @@ -Quintiq file version 2.0 -#parent: ButtonGenerateCapacityAllocationResults -Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick -{ - #keys: '[414702.0.340111671]' - CanBindMultiple: false - DefinitionID: 'Responsedef_WebButton_OnClick' - QuillAction - { - Body: - [* - CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan ); - *] - GroupServerCalls: false - } -} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR\04339.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR\04339.def" new file mode 100644 index 0000000..6a4fd16 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_ButtonGenerateCapacityAllocationR\04339.def" @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelCapacityAllocationResults/ButtonGenerateCapacityAllocationResults_570 +Response OnClick () id:Response_FormCapacityAllocationResults_ButtonGenerateCapacityAllocationResults_OnClick_39 +{ + #keys: '[414702.0.391717496]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + CapacityAllocationResults::CreateDate( GlobalOTDTable, MacroPlan, DataHolderActiveScenario.Data() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def new file mode 100644 index 0000000..4428575 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/Response_PanelCapacityAllocationResults_Export_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelCapacityAllocationResults/Export_398 +Response OnClick () id:Response_PanelCapacityAllocationResults_Export_OnClick +{ + #keys: '[414702.0.391791234]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + Application.Download( "浜ц兘鍒嗛厤缁撴灉.xlsx", CapacityAllocationResults::Export( GlobalOTDTable ).AsBinaryData() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def index 432fdfa..983e0ed 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResults/_ROOT_Component_FormCapacityAllocationResults.def @@ -8,17 +8,7 @@ Children: [ #child: ListCapacityAllocationResults - Component ButtonGenerateCapacityAllocationResults - { - #keys: '[414702.0.340677556]' - BaseType: 'WebButton' - Properties: - [ - Image: 'PROCESS' - Label: '鐢熸垚鏁版嵁' - Taborder: 0 - ] - } + #child: PanelCapacityAllocationResults ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def index 98c0a3a..add7c86 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_ListCapacityAllocationResultsRuleConfiguration.def @@ -36,7 +36,7 @@ ] Properties: [ - Taborder: 0 + Taborder: 1 ] ResponseDefinitions: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def new file mode 100644 index 0000000..367ca52 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Component_PanelImportAndExport.def @@ -0,0 +1,37 @@ +Quintiq file version 2.0 +Component PanelImportAndExport +{ + #keys: '[414702.0.391512140]' + BaseType: 'WebPanel' + Children: + [ + Component Import + { + #keys: '[414702.0.390081531]' + BaseType: 'WebButton' + Properties: + [ + Image: 'IMPORT1' + Label: '瀵煎叆' + Taborder: 0 + ] + } + Component Export + { + #keys: '[414702.0.391512453]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + Taborder: 1 + ] + } + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def new file mode 100644 index 0000000..1c99357 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataCh.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: DataHolderSelectCapacityAllocationResultsRuleConfiguration +Response OnDataChanged () id:Response_FormCapacityAllocationResultsRuleConfiguration_DataHolderSelectCapacityAllocationResultsRuleConfiguration_OnDataChanged +{ + #keys: '[414702.0.391379706]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + QuillAction + { + Body: + [* + traverse ( this.Data(), Elements, e ) { + info( "闈㈡澘鐗╂枡ID锛�", e.PanelMaterialCode() ); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def new file mode 100644 index 0000000..602baba --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Export_OnClick.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelImportAndExport/Export +Response OnClick () id:Response_PanelImportAndExport_Export_OnClick +{ + #keys: '[414702.0.391658465]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + Application.Download( "浜ц兘鍒嗛厤缁撴灉瑙勫垯.xlsx", CapacityAllocationResultsRuleConfiguration::Export( GlobalOTDTable ).AsBinaryData() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def new file mode 100644 index 0000000..3e90d91 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/Response_PanelImportAndExport_Import_OnClick.def @@ -0,0 +1,29 @@ +Quintiq file version 2.0 +#parent: PanelImportAndExport/Import +Response OnClick () id:Response_PanelImportAndExport_Import_OnClick +{ + #keys: '[414702.0.391899822]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + try { + uploadJsonString := Application.GetFile(); + if ( uploadJsonString <> "" ) { + uploadJson := JSON::Parse( uploadJsonString ); + + fileName := uploadJson.Get( "name" ).GetString(); + base64String := uploadJson.Get( "data" ).GetString(); + CapacityAllocationResultsRuleConfiguration::Import( GlobalOTDTable, base64String ); + + WebMessageBox::Success( "涓婁紶鎴愬姛", true ); + } + } onerror { + WebMessageBox::Error( e.GeneralInformation(), true ); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def index b4952be..436ef69 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAllocationResultsRuleConfiguration/_ROOT_Component_FormCapacityAllocationResultsRuleConfiguration.def @@ -8,6 +8,32 @@ Children: [ #child: ListCapacityAllocationResultsRuleConfiguration + Component DataHolderSelectCapacityAllocationResultsRuleConfiguration + { + #keys: '[414702.0.390054479]' + BaseType: 'WebDataHolder' + Databinding: 'structured[CapacityAllocationResultsRuleConfiguration]*' + Children: + [ + Component DataExtractorSelectCapacityAllocationResultsRuleConfiguration + { + #keys: '[414702.0.391186862]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'CapacityAllocationResultsRuleConfiguration' + ExtractionMode: 'Selected' + Source: 'ListCapacityAllocationResultsRuleConfiguration' + Taborder: 0 + ] + } + ] + Properties: + [ + Taborder: 2 + ] + } + #child: PanelImportAndExport ] Properties: [ -- Gitblit v1.9.3