From 744ece58704eabc06b44d3df45216bcced80ed96 Mon Sep 17 00:00:00 2001 From: yypsybs <yypsybs@foxmail.com> Date: 星期五, 22 九月 2023 22:52:01 +0800 Subject: [PATCH] 处理测试问题 --- _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def | 22 + _Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl | 2 _Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl | 143 +++++++++++++ _Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl | 64 +++++ _Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl | 73 ++++++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def | 11 + _Main/BL/Type_MPSync/StaticMethod_TestData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def | 1 _Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl | 64 +++++ _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def | 23 ++ _Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart#95.qbl | 100 ++++---- _Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl | 102 ++++---- _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def | 2 14 files changed, 496 insertions(+), 117 deletions(-) diff --git a/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl b/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl index 822bde4..7fa388c 100644 --- a/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl +++ b/_Main/BL/Type_CapacityAndSaleBudgeFilterYear/StaticMethod_Initial.qbl @@ -10,7 +10,7 @@ // yypsybs Sep-15-2023 (created) existList := selectuniquevalues( parent, CapacityAndSaleBudgeFilterYear, item, item.YearNo() ); nowYear := Date::Today().Year(); - for( i := nowYear - 10; i <= nowYear; i++ ) { + for( i := nowYear - 10; i <= nowYear + 5; i++ ) { if( existList.Find( i ) = -1 ) { parent.CapacityAndSaleBudgeFilterYear( relnew, YearNo := i ); diff --git a/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl b/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl new file mode 100644 index 0000000..0048b94 --- /dev/null +++ b/_Main/BL/Type_MPSync/Method_CapacityAndSaleBudgeExport.qbl @@ -0,0 +1,143 @@ +Quintiq file version 2.0 +#parent: #root +Method CapacityAndSaleBudgeExport () as BinaryValue +{ + Description: '瀵煎嚭姣旇緝缁撴灉' + TextBody: + [* + // generate by generate_export.py + info( "export start" ); + text:= '<?xml version="1.0" encoding="utf-8" standalone="yes"?><table><name>骞村害浜ч攢棰勭畻</name> + <column><name>鍒犻櫎鏍囪</name><type>String</type></column> + <column><name>骞翠唤</name><type>Number</type></column> + <column><name>涓氬姟閮ㄩ棬</name><type>String</type></column> + <column><name>鏄剧ず鎶�鏈垎绫�</name><type>String</type></column> + <column><name>涓氬姟鍒嗙被</name><type>String</type></column> + <column><name>浜у搧绾�/浜у搧瑙勬牸</name><type>String</type></column> + <column><name>浜у搧鏂欏彿</name><type>String</type></column> + <column><name>Array浜у湴</name><type>String</type></column> + <column><name>钂搁晙浜у湴</name><type>String</type></column> + <column><name>鍒嗚鲸鐜�</name><type>String</type></column> + <column><name>鍑鸿揣褰㈡��</name><type>String</type></column> + <column><name>鍒囧壊鏁�</name><type>String</type></column> + <column><name>浜ц兘褰撻噺</name><type>String</type></column> + <column><name>mask鏁�</name><type>String</type></column> + <column><name>1鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>2鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>3鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>4鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>5鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>6鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>7鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>8鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>9鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>10鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>11鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>12鏈堜骇鑳�(PCS)</name><type>Real</type></column> + <column><name>骞翠骇鑳�(PCS)</name><type>Real</type></column> + <column><name>1鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>2鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>3鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>4鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>5鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>6鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>7鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>8鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>9鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>10鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>11鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>12鏈堜骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>骞翠骇鑳�(瀹炴暟澶у紶)</name><type>Real</type></column> + <column><name>1鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>2鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>3鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>4鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>5鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>6鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>7鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>8鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>9鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>10鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>11鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>12鏈堥攢鍞(W)</name><type>Real</type></column> + <column><name>骞撮攢鍞(W)</name><type>Real</type></column> + </table>'; + xmlDOMImplementation := XMLDOMImplementation::Create(); + xmlDOMDocument := xmlDOMImplementation.CreateDocumentFromString( text ); + + tableElement:= xmlDOMDocument.GetElementByTagName( "table", 0 ); + + toExportList := selectsortedset( this, MappingCapacityAndSaleBudge, item, true, item.OrgCode() + "_" + item.PlaceOfProductionOfArray() ); + info( "export size : " + [String]toExportList.Size() ); + nowNo := 1; + traverse ( toExportList, Elements, toExport ) { + info( "nowNo : " + [String]nowNo ); + nowNo := nowNo + 1; + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, ifexpr( toExport.Deleted(), "Y", "N"), "鍒犻櫎鏍囪" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.YearNo(), "骞翠唤" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.OrgCode(), "涓氬姟閮ㄩ棬" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.DisplayTechnology(), "鏄剧ず鎶�鏈垎绫�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.BusinessType(), "涓氬姟鍒嗙被" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.LineAndSpecification(), "浜у搧绾�/浜у搧瑙勬牸" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ProductCode(), "浜у搧鏂欏彿" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfArray(), "Array浜у湴" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.PlaceOfProductionOfEvaporation(), "钂搁晙浜у湴" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.Resolution(), "鍒嗚鲸鐜�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.ShippingForm(), "鍑鸿揣褰㈡��" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfCut(), "鍒囧壊鏁�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.CapacityEquivalent(), "浜ц兘褰撻噺" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, toExport.NumberOfMask(), "mask鏁�" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth1(), "1鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth2(), "2鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth3(), "3鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth4(), "4鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth5(), "5鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth6(), "6鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth7(), "7鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth8(), "8鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth9(), "9鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth10(), "10鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth11(), "11鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSInMonth12(), "12鏈堜骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInPCSTotal(), "骞翠骇鑳�(PCS)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth1(), "1鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth2(), "2鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth3(), "3鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth4(), "4鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth5(), "5鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth6(), "6鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth7(), "7鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth8(), "8鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth9(), "9鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth10(), "10鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth11(), "11鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetInMonth12(), "12鏈堜骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.CapacityInSheetTotal(), "骞翠骇鑳�(瀹炴暟澶у紶)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth1(), "1鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth2(), "2鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth3(), "3鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth5(), "4鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth4(), "5鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth6(), "6鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth7(), "7鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth8(), "8鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth9(), "9鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth10(), "10鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth11(), "11鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountInMonth12(), "12鏈堥攢鍞(W)" ); + ScenarioManager::GeneratesTheSpecifiedXMLColumn( xmlDOMDocument, tableElement, [String]toExport.SaleAmountTotal(), "骞撮攢鍞(W)" ); + } + + xmlDOMSerializer := xmlDOMImplementation.CreateSerializer(); + xmlTableString := xmlDOMSerializer.WriteToString( xmlDOMDocument ); + + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTableString ) ); + tableGroupHandle := TableGroupHandle::Create( "骞村害浜ч攢棰勭畻" ); + tableGroupHandle.Add( tableHandle ); + tableBinaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true ); + + info( "export end" ); + + return tableBinaryData.AsBinaryValue(); + *] +} diff --git a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl index 87c2b27..541ab96 100644 --- a/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl +++ b/_Main/BL/Type_MPSync/StaticMethod_TestData.qbl @@ -15,7 +15,7 @@ info( "productCodeList : " + [String]productCodeList.Size() ); mpSync.MappingCapacityAndSaleBudge( relflush ); - for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) { + for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) { for( i := 1; i <= productCodeList.Size(); i := i + 1 ) { productCode := productCodeList.Element( i - 1 ); mappingCapacityAndSaleBudge := mpSync.MappingCapacityAndSaleBudge( relnew, @@ -41,7 +41,7 @@ info( "test MappingCapacityAndSaleBudge size : " + [String]result1.Size() ); mpSync.MappingAnnualBudget( relflush ); - for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year(); year := year + 1 ) { + for( year := Date::ActualDate().Year() - 10; year <= Date::ActualDate().Year() + 5; year := year + 1 ) { for( i := 1; i <= productCodeList.Size(); i := i + 1 ) { productCode := productCodeList.Element( i - 1 ); mappingAnnualBudget := mpSync.MappingAnnualBudget( relnew, diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl new file mode 100644 index 0000000..d7275ba --- /dev/null +++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExpectedHeaders.qbl @@ -0,0 +1,64 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod ExpectedHeaders () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "鍒犻櫎鏍囪" ); + value.Add( "骞翠唤" ); + value.Add( "涓氬姟閮ㄩ棬" ); + value.Add( "鏄剧ず鎶�鏈垎绫�" ); + value.Add( "涓氬姟鍒嗙被" ); + value.Add( "浜у搧绾�/浜у搧瑙勬牸" ); + value.Add( "浜у搧鏂欏彿" ); + value.Add( "Array浜у湴" ); + value.Add( "钂搁晙浜у湴" ); + value.Add( "鍒嗚鲸鐜�" ); + value.Add( "鍑鸿揣褰㈡��" ); + value.Add( "鍒囧壊鏁�" ); + value.Add( "浜ц兘褰撻噺" ); + value.Add( "mask鏁�" ); + value.Add( "1鏈堜骇鑳�(PCS)" ); + value.Add( "2鏈堜骇鑳�(PCS)" ); + value.Add( "3鏈堜骇鑳�(PCS)" ); + value.Add( "4鏈堜骇鑳�(PCS)" ); + value.Add( "5鏈堜骇鑳�(PCS)" ); + value.Add( "6鏈堜骇鑳�(PCS)" ); + value.Add( "7鏈堜骇鑳�(PCS)" ); + value.Add( "8鏈堜骇鑳�(PCS)" ); + value.Add( "9鏈堜骇鑳�(PCS)" ); + value.Add( "10鏈堜骇鑳�(PCS)" ); + value.Add( "11鏈堜骇鑳�(PCS)" ); + value.Add( "12鏈堜骇鑳�(PCS)" ); + value.Add( "骞翠骇鑳�(PCS)" ); + value.Add( "1鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "2鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "3鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "4鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "5鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "6鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "7鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "8鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "9鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "10鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "11鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "12鏈堜骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "骞翠骇鑳�(瀹炴暟澶у紶)" ); + value.Add( "1鏈堥攢鍞(W)" ); + value.Add( "2鏈堥攢鍞(W)" ); + value.Add( "3鏈堥攢鍞(W)" ); + value.Add( "4鏈堥攢鍞(W)" ); + value.Add( "5鏈堥攢鍞(W)" ); + value.Add( "6鏈堥攢鍞(W)" ); + value.Add( "7鏈堥攢鍞(W)" ); + value.Add( "8鏈堥攢鍞(W)" ); + value.Add( "9鏈堥攢鍞(W)" ); + value.Add( "10鏈堥攢鍞(W)" ); + value.Add( "11鏈堥攢鍞(W)" ); + value.Add( "12鏈堥攢鍞(W)" ); + value.Add( "骞撮攢鍞(W)" ); + return &value; + *] +} diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl new file mode 100644 index 0000000..c469165 --- /dev/null +++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_Export.qbl @@ -0,0 +1,73 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Export ( + MPSync parent +) as String +{ + TextBody: + [* + // yypsybs Jul-1-2023 (created) + xmlTemplate := '<?xml version="1.0" encoding="UTF-16"?> + <table> + <name>MappingCapacityAndSaleBudge</name> + '; + //--------------------------------------------------------------------------------------------- + exportFields := MappingCapacityAndSaleBudge::ExportFields(); + exportHeaders := MappingCapacityAndSaleBudge::ExpectedHeaders(); + if( exportFields.Size() <> exportHeaders.Size() ) { + error( "fields and headers not match" ); + } + info( "export start" ); + for( i := 0; i < exportFields.Size() ; i++ ) { + header := exportHeaders.Element( i ); + fieldName := exportFields.Element( i ); + info( "header : " + header ) + info( "fieldName : " + fieldName ) + columnStr := "<column><name>" + header + "</name><type>String</type>"; + traverse( parent, MappingCapacityAndSaleBudge, oldRecord ) { + field := Reflection::FindAttribute( "MappingCapacityAndSaleBudge", fieldName); + if( not isnull( field ) ) { + fieldValue := ""; + if( fieldValue = "" ) { + fieldValue := guard( field.GetString( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( [String]field.GetNumber( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( [String]field.GetReal( oldRecord ), "" ); + } + if( fieldValue = "" ) { + fieldValue := guard( ifexpr( field.GetBoolean( oldRecord ), "Y", "N" ), "" ); + } + if( fieldValue = "" ) { + fileDateValue := guard( field.GetDate( oldRecord ), Date::MinDate() ); + if( fileDateValue <> Date::MinDate() ) { + conv := DateTimeToString::StandardConverter(); + conv.SetCustomConversion(); + conv.CustomFormatString( 'yyyyMMdd' ); + fieldValue := conv.Convert( fileDateValue.DateTime() ); + } + } + cellStr := '<cell value="' + fieldValue + '"/>'; + + columnStr := columnStr + cellStr; + } else { + error( "no field " + fieldName + " in type MappingCapacityAndSaleBudge"); + } + } + columnStr := columnStr + "</column>"; + xmlTemplate := xmlTemplate + columnStr; + } + //--------------------------------------------------------------------------------------------- + xmlTemplate := xmlTemplate + "</table>"; + info( xmlTemplate ); + tableHandle := TableHandle::ImportXML( BinaryValue::Construct( xmlTemplate ) ); + XLS::SaveTable( tableHandle, OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx" ); + file := OSFile::Construct(); + file.Open( OS::TempPath() + "MappingCapacityAndSaleBudge.xlsx", "Read", true ); + data := file.ReadBinary() + info( "export end" ); + return data.AsBase64EncodedString(); + *] +} diff --git a/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl new file mode 100644 index 0000000..58b6447 --- /dev/null +++ b/_Main/BL/Type_MappingSaleBudge/StaticMethod_ExportFields.qbl @@ -0,0 +1,64 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod ExportFields () as owning Strings +{ + TextBody: + [* + // yypsybs Jun-30-2023 (created) + value := construct( structured[String] ); + value.Add( "Deleted" ); + value.Add( "YearNo" ); + value.Add( "OrgCode" ); + value.Add( "DisplayTechnology" ); + value.Add( "BusinessType" ); + value.Add( "LineAndSpecification" ); + value.Add( "ProductCode" ); + value.Add( "PlaceOfProductionOfArray" ); + value.Add( "PlaceOfProductionOfEvaporation" ); + value.Add( "Resolution" ); + value.Add( "ShippingForm" ); + value.Add( "NumberOfCut" ); + value.Add( "CapacityEquivalent" ); + value.Add( "NumberOfMask" ); + value.Add( "CapacityInPCSInMonth1" ); + value.Add( "CapacityInPCSInMonth2" ); + value.Add( "CapacityInPCSInMonth3" ); + value.Add( "CapacityInPCSInMonth4" ); + value.Add( "CapacityInPCSInMonth5" ); + value.Add( "CapacityInPCSInMonth6" ); + value.Add( "CapacityInPCSInMonth7" ); + value.Add( "CapacityInPCSInMonth8" ); + value.Add( "CapacityInPCSInMonth9" ); + value.Add( "CapacityInPCSInMonth10" ); + value.Add( "CapacityInPCSInMonth11" ); + value.Add( "CapacityInPCSInMonth12" ); + value.Add( "CapacityInPCSTotal" ); + value.Add( "CapacityInSheetInMonth1" ); + value.Add( "CapacityInSheetInMonth2" ); + value.Add( "CapacityInSheetInMonth3" ); + value.Add( "CapacityInSheetInMonth4" ); + value.Add( "CapacityInSheetInMonth5" ); + value.Add( "CapacityInSheetInMonth6" ); + value.Add( "CapacityInSheetInMonth7" ); + value.Add( "CapacityInSheetInMonth8" ); + value.Add( "CapacityInSheetInMonth9" ); + value.Add( "CapacityInSheetInMonth10" ); + value.Add( "CapacityInSheetInMonth11" ); + value.Add( "CapacityInSheetInMonth12" ); + value.Add( "CapacityInSheetTotal" ); + value.Add( "SaleAmountInMonth1" ); + value.Add( "SaleAmountInMonth2" ); + value.Add( "SaleAmountInMonth3" ); + value.Add( "SaleAmountInMonth5" ); + value.Add( "SaleAmountInMonth4" ); + value.Add( "SaleAmountInMonth6" ); + value.Add( "SaleAmountInMonth7" ); + value.Add( "SaleAmountInMonth8" ); + value.Add( "SaleAmountInMonth9" ); + value.Add( "SaleAmountInMonth10" ); + value.Add( "SaleAmountInMonth11" ); + value.Add( "SaleAmountInMonth12" ); + value.Add( "SaleAmountTotal" ); + return &value; + *] +} diff --git "a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl" "b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl" index 2c07b9d..c543694 100644 --- "a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl" +++ "b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart\04395.qbl" @@ -2,7 +2,7 @@ #parent: #root Method CapacityAndSaleBudgeChart ( MacroPlans macroPlans, - Boolean isCapacity, + String saleOrCapacity, String groupBy, String byBusinessTypeOrByOrgCode, CapacityAndSaleBudgeFilterBusinessTypes businessTypes, @@ -19,7 +19,7 @@ [* // yypsybs Sep-19-2023 (created) // true, false - info( isCapacity ); + info( saleOrCapacity ); // 鏈�;瀛e害;鍗婂勾;骞� info( groupBy ); // 闈㈡澘鍩哄湴;浜嬩笟閮� @@ -82,18 +82,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), + MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), - MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) ) ); } @@ -106,18 +106,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), - MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), + MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), - MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) ) ); } @@ -134,9 +134,9 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), - MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), + MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) ); // info( "productCodeList : " + [String]productCodeList.Size() ); // S&OP @@ -144,9 +144,9 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), - MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) , + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) ) ); } @@ -162,18 +162,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), - MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), + MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), - MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) ) ); } @@ -188,18 +188,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, year.YearNo() ), + MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, year.YearNo() ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ), - MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) , + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, year.YearNo() ) ) ); } @@ -212,18 +212,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), - MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ), + MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, year.YearNo(), halfNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ), - MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) , + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, year.YearNo(), halfNo ) ) ); } @@ -238,18 +238,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), - MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ), + MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, year.YearNo(), seasonNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), - MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ), + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, year.YearNo(), seasonNo ) ) ); } @@ -266,18 +266,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), - MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ), + MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, year.YearNo(), month.MonthNo() ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year.YearNo() + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ), - MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingCustomerOrder::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) , + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, year.YearNo(), month.MonthNo() ) ) ); } diff --git a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl index 2f62201..fbb2caf 100644 --- a/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl +++ b/_Main/BL/Type_ScenarioManager/Method_CapacityAndSaleBudgeChart.qbl @@ -2,7 +2,7 @@ #parent: #root Method CapacityAndSaleBudgeChart ( MacroPlans macroPlans, - Boolean isCapacity, + String saleOrCapacity, String groupBy, String byBusinessTypeOrByOrgCode, String businessTypeChosen, @@ -22,7 +22,7 @@ [* // yypsybs Sep-19-2023 (created) // true, false - info( isCapacity ); + info( saleOrCapacity ); // 鏈�;瀛e害;鍗婂勾;骞� info( groupBy ); // 闈㈡澘鍩哄湴;浜嬩笟閮� @@ -61,20 +61,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ), - // todo QID 23 - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ), + MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), - // todo - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) ) ); } } @@ -86,18 +84,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), - MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), + MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) ) ); } } @@ -113,9 +111,9 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), - MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), + MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) ); // info( "productCodeList : " + [String]productCodeList.Size() ); // S&OP @@ -123,9 +121,9 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) ) ); } } @@ -139,18 +137,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), - MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), + MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := placeOfProductionOfArray, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) ) ); } } @@ -163,18 +161,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ), - MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByYear( productCodeList, mpSync, [Number]year ), + MappingCapacityAndSaleBudge::GetSheetByYear( productCodeList, mpSync, [Number]year ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByYear( productCodeList, macroPlan, [Number]year ) ) ); } } @@ -186,18 +184,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), - MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ), + MappingCapacityAndSaleBudge::GetSheetByHalfYear( productCodeList, mpSync, [Number]year, halfNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-" + ifexpr( halfNo = 1, "涓�", "涓�" ) + "鍗婂勾-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByHalfYear( productCodeList, macroPlan, [Number]year, halfNo ) ) ); } } @@ -210,18 +208,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), - MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ), + MappingCapacityAndSaleBudge::GetSheetBySeason( productCodeList, mpSync, [Number]year, seasonNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + [String]seasonNo + "瀛e害-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyBySeason( productCodeList, macroPlan, [Number]year, seasonNo ) ) ); } } @@ -235,18 +233,18 @@ this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-鐩爣", BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), - MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + MappingAnnualBudget::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ), + MappingCapacityAndSaleBudge::GetSheetByMonth( productCodeList, mpSync, [Number]year, monthNo ) ) ); // S&OP traverse( macroPlans, Elements, macroPlan ) { this.CapacityAndSaleBudgeChartElement( relnew, TimeStringAndScenarioName := [String]year + "骞�-绗�" + monthNoString + "鏈�-" + macroPlan.ScenarioName(), BusinessTypeOrPlaceOfProductionOfArray := businessType, - Quantity := ifexpr( isCapacity, - Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ), - 0.0 ) + Quantity := ifexpr( saleOrCapacity = "閿�鍞", + 0.0, + Product_MP::GetNewSupplyByMonth( productCodeList, macroPlan, [Number]year, monthNo ) ) ); } } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def index 1e5e82c..984c1f6 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Component_ListCapacityAndSaleBudge.def @@ -38,6 +38,6 @@ ] Properties: [ - Taborder: 0 + Taborder: 1 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def new file mode 100644 index 0000000..4f195d5 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_ButtonExportDetail_OnClick.def @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: ButtonExportDetail +Response OnClick () id:Response_FormCapacityAndSaleBudge_ButtonExportDetail_OnClick +{ + #keys: '[414384.0.887310502]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + return not isnull( MPSync ); + *] + QuillAction + { + Body: + [* + //Application.Download( "骞村害浜ч攢棰勭畻璇︽儏.xlsx", MPSync.CapacityAndSaleBudgeExport().AsBinaryData() ); + + base64 := MappingCapacityAndSaleBudge::Export( MPSync ); + Application.Download( "骞村害浜ч攢棰勭畻璇︽儏.xlsx", base64 ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def index 2b3f638..d4df714 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/Response_OnCreated.def @@ -12,6 +12,7 @@ [* MPSync::TestData( MPSync, MacroPlan ); GlobalOTDTable.InitTestData(); + MPSync.RefreshCapacityAndSaleBudgeFilter(); *] } } diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def index 168d51b..8758502 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudge/_ROOT_Component_FormCapacityAndSaleBudge.def @@ -8,6 +8,17 @@ Children: [ #child: ListCapacityAndSaleBudge + Component ButtonExportDetail + { + #keys: '[414384.0.887310503]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Label: '瀵煎嚭' + Taborder: 0 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def index ccb0ea2..53e33ba 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/Response_ButtonCapacityAndSaleBudgeChartTest_OnClick.def @@ -13,7 +13,7 @@ CapacityAndSaleBudgeChartElement::TestData( ScenarioManager ); ScenarioManager.CapacityAndSaleBudgeChart( DataHolderMacroPlansForScenarioComparison.Data(), - CheckboxIsCapacity.Checked(), + DropDownSaleOrCapacity.Text(), DropDownTimeGroup.Text(), DropDownByBusinessTypeOrByOrgCode.Text(), DataHolderCapacityAndSaleBudgeFilterBusinessType.Data(), diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def index 3684ed8..237e0c6 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormCapacityAndSaleBudgeChart/_ROOT_Component_FormCapacityAndSaleBudgeChart.def @@ -53,16 +53,6 @@ Visible: false ] } - Component CheckboxIsCapacity - { - #keys: '[414384.0.857770765]' - BaseType: 'WebCheckbox' - Properties: - [ - Label: '浜ц兘' - Taborder: 5 - ] - } Component DropDownTimeGroup { #keys: '[414384.0.857771238]' @@ -87,6 +77,18 @@ Taborder: 0 ] } + Component DropDownSaleOrCapacity + { + #keys: '[414384.0.886240556]' + BaseType: 'WebDropDownStringList' + Properties: + [ + InitialValue: '閿�鍞' + Label: '閿�鍞/浜ц兘' + Strings: '閿�鍞;浜ц兘' + Taborder: 5 + ] + } ] Properties: [ -- Gitblit v1.9.3