From be10d38e5c56c0070d6acfd344ebfae30ee5b0ac Mon Sep 17 00:00:00 2001 From: lazhen <17772815105@139.com> Date: 星期五, 16 八月 2024 17:56:36 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg --- _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl | 75 ++ _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison234#1.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnCreated.def | 12 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def | 16 _Main/BL/Type_LocalRow/DefaultValue_StockingPointID.qbl | 6 _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAnnualPlanReport_OnClick.def | 17 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bDownload_OnClick.def | 30 + _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnDataChanged.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def | 19 _Main/BL/Type_LocalCell_Default/StaticMethod_GetColumnXML.qbl | 35 + _Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl | 29 + _Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bExport_OnClick.def | 18 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def | 105 +++ _Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl | 20 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelStockingPoint_OnCreated.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon#805.def | 15 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor510#127.def | 102 +++ _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged.def | 20 _Main/BL/Type_LocalColumn/Attribute_TimeUnit.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor.def | 103 +++ _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedStockingPoint_OnDataChanged.def | 20 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def | 16 _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhFinelEntity_OnCreated.def | 16 _Main/BL/Type_LocalRow/Attribute_ProductID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bDownload_OnClick.def | 32 + _Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def | 11 _Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def | 4 _Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def | 2 _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhCheckedEntity_OnDataChanged.def | 20 _Main/BL/Type_ExportXMLData/Method_CalculatePriority.qbl | 52 + _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl | 51 + _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_Panel743.def | 35 + _Main/BL/Type_MP_Row/Attribute_ProductID.qbl | 7 _Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl | 7 _Main/BL/Type_LocalColumn/Function_CalcIndex.qbl | 4 _Main/BL/Type_LocalRow/Attribute_StockingPointID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison.def | 10 _Main/BL/Type_LocalRow/DefaultValue_ProductID.qbl | 6 _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_pOperaction#633.def | 47 + _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def | 17 _Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def | 8 _Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_MatrixEditor859.def | 2 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def | 60 ++ _Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl | 10 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def | 102 +++ _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison527#1.def | 10 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelProduct_OnCreated.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def | 18 _Main/UI/MacroPlannerWebApp/Views/AnnualPlanReport.vw | 255 +++++++++ _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData_OnCreated.def | 18 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def | 16 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def | 16 _Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl | 7 _Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def | 18 58 files changed, 1,628 insertions(+), 21 deletions(-) diff --git a/_Main/BL/Type_ExportXMLData/Method_CalculatePriority.qbl b/_Main/BL/Type_ExportXMLData/Method_CalculatePriority.qbl new file mode 100644 index 0000000..c01e5fa --- /dev/null +++ b/_Main/BL/Type_ExportXMLData/Method_CalculatePriority.qbl @@ -0,0 +1,52 @@ +Quintiq file version 2.0 +#parent: #root +Method CalculatePriority () as Number +{ + TextBody: + [* + // rislai Aug-13-2024 (created) + priority := 0; + element := this.XML(); + if( element.LikeUserLocale( "<name>Product ID</name>" )){ + priority := 1 ; + }else if( element.LikeUserLocale( "<name>浜х嚎</name>" )){ + priority := 2 ; + }else if( element.LikeUserLocale( "<name>Attribute</name>" )){ + priority := 3 ; + }else if( element.LikeUserLocale( "<name>浜у湴</name>" )){ + priority := 4 ; + }else if( element.LikeUserLocale( "<name>杞﹀瀷</name>" )){ + priority := 5 ; + }else if( element.LikeUserLocale( "<name>鍙戝姩鏈洪浂浠跺彿</name>" )){ + priority := 6 ; + }else if( element.LikeUserLocale( "<name>鍙戝姩鏈哄洓浣嶇爜</name>" )){ + priority := 7 ; + }else if( element.LikeUserLocale( "<name>鐢熶骇澶╂暟</name>" )){ + priority := 8 ; + }else if( element.LikeUserLocale( "<name>鍔犵彮/娆犲伐鏃堕暱</name>" )){ + priority := 9 ; + }else if( element.LikeUserLocale( "<name>骞虫棩鍔犵彮鏃堕暱</name>" )){ + priority := 10 ; + }else if( element.LikeUserLocale( "<name>浼戞伅鏃ュ姞鐝椂闀�</name>" )){ + priority := 11 ; + }else if( element.LikeUserLocale( "<name>鑺傚亣鏃ュ姞鐝椂闀�</name>" )){ + priority := 12 ; + }else if( element.LikeUserLocale( "<name>娆犲伐鏃堕暱</name>" )){ + priority := 13 ; + }else if( element.LikeUserLocale( "<name>鍔犵彮/娆犲伐璐�</name>" )){ + priority := 14 ; + }else if( element.LikeUserLocale( "<name>骞虫棩鍔犵彮璐�</name>" )){ + priority := 15 ; + }else if( element.LikeUserLocale( "<name>浼戞伅鏃ュ姞鐝垂</name>" )){ + priority := 16 ; + }else if( element.LikeUserLocale( "<name>鑺傚亣鏃ュ姞鐝垂</name>" )){ + priority := 17 ; + }else if( element.LikeUserLocale( "<name>娆犲伐璐�</name>" )){ + priority := 18 ; + }else{ + // <column><name>2020/04/01</name> + priority := [Number]element.SubString( 14,10 ).ReplaceAll( "/","") ; + } + return priority; + *] +} diff --git a/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl b/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl index fd9deec..d30416e 100644 --- a/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl +++ b/_Main/BL/Type_ExportXMLManager/StaticMethod_AwaitLocalTableXMLData.qbl @@ -17,25 +17,7 @@ } traverse( columnXMLData,Elements,element,element.TrimBoth() <> "" ){ data := manager.ExportXMLData( relnew, XML := element); - if( element.LikeUserLocale( "Product ID" )){ - data.Priority( 1 ); - }else if( element.LikeUserLocale( "浜х嚎" )){ - data.Priority( 1 ); - }else if( element.LikeUserLocale( "Attribute" )){ - data.Priority( 2 ); - }else if( element.LikeUserLocale( "浜у湴" )){ - data.Priority( 3 ); - }else if( element.LikeUserLocale( "杞﹀瀷" )){ - data.Priority( 4 ); - }else if( element.LikeUserLocale( "鍙戝姩鏈洪浂浠跺彿" )){ - data.Priority( 5 ); - }else if( element.LikeUserLocale( "鍙戝姩鏈哄洓浣嶇爜" )){ - data.Priority( 6 ); - }else{ - info( element ); - // <column><name>2020/04/01</name> - data.Priority( [Number]element.SubString( 14,10 ).ReplaceAll( "/","") ); - } + data.Priority( data.CalculatePriority( )); } *] } diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl new file mode 100644 index 0000000..1c4c1eb --- /dev/null +++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_AsyncExport.qbl @@ -0,0 +1,29 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod AsyncExport ( + RecycleBin recycleBin, + const constcontent LocalRows rows, + const constcontent LocalColumns columns +) +{ + TextBody: + [* + // rislai Jun-20-2024 (created) + sortColumns := selectsortedset( columns,Elements,column,true,column.Index()); + + columnstring := emit( "" ); + flag := true; + traverse( sortColumns,Elements,sortColumn ){ + if( flag ){ + flag := false; + attributeXML := rows -> LocalCell_Default::GetColumnXML( sortColumn,"attribute" ); + columnstring := columnstring.Merge( attributeXML ) + } + + cellxml := rows -> LocalCell_Default::GetColumnXML( sortColumn ,"data" ); + columnstring := columnstring.Merge( cellxml); + } + + columnstring -> GroupAll() -> ExportXMLManager::AwaitLocalTableXMLData( recycleBin,guard( rows.Element(0).LocalTable().Name(),MP_Cell_AnnualPlanReport::GetTableName()) ); + *] +} diff --git a/_Main/BL/Type_LocalCell_Default/StaticMethod_GetColumnXML.qbl b/_Main/BL/Type_LocalCell_Default/StaticMethod_GetColumnXML.qbl new file mode 100644 index 0000000..e9956a5 --- /dev/null +++ b/_Main/BL/Type_LocalCell_Default/StaticMethod_GetColumnXML.qbl @@ -0,0 +1,35 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetColumnXML ( + const constcontent LocalRows rows, + const LocalColumn column, + String type +) const as String +{ + TextBody: + [* + // rislai Jun-21-2024 (created) + + columnXML := ""; + cells := selectsortedset( column, LocalCell.astype( LocalCell_Default ), cell, + exists( rows,Elements,element,element = cell.LocalRow()), cell.LocalRow().Index()); + if( type = "data" ){ + columnXML := "<column><name>" + column.Name() + "</name><type>String</type>"; + traverse ( cells, Elements, cell ) { + cellXML := '<cell value="' + cell.RealValue().Format( "N(Dec)" ) + '"/>' + columnXML := columnXML + cellXML; + } + columnXML := columnXML + "</column>"; + } + if( type = "attribute" ){ + columnXML1 := "<column><name>浜х嚎</name><type>String</type>"; + traverse ( cells, Elements, cell ) { + cellXML := '<cell value="' + cell.LocalRow().Name() + '"/>' + columnXML1 := columnXML1 + cellXML; + } + columnXML := columnXML1 + "</column>"; + } + + return columnXML; + *] +} diff --git a/_Main/BL/Type_LocalColumn/Attribute_TimeUnit.qbl b/_Main/BL/Type_LocalColumn/Attribute_TimeUnit.qbl new file mode 100644 index 0000000..1ebbe55 --- /dev/null +++ b/_Main/BL/Type_LocalColumn/Attribute_TimeUnit.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute TimeUnit +{ + #keys: '3[412672.1.108145936][412672.1.108145935][412672.1.108145937]' + ValueType: String +} diff --git a/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl b/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl index a8ef9c9..59886e3 100644 --- a/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl +++ b/_Main/BL/Type_LocalColumn/Function_CalcIndex.qbl @@ -13,9 +13,13 @@ index := [String]year; if( month < 10 ){ index := index + "0" + [String]month; + }else{ + index := index + [String]month; } if( day < 10 ){ index := index + "0" + [String]day; + }else{ + index := index + [String]day; } value := [Number]index; }else{ diff --git a/_Main/BL/Type_LocalRow/Attribute_ProductID.qbl b/_Main/BL/Type_LocalRow/Attribute_ProductID.qbl new file mode 100644 index 0000000..cc3a825 --- /dev/null +++ b/_Main/BL/Type_LocalRow/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[412672.1.107689520][412672.1.107689519][412672.1.107689521]' + ValueType: String +} diff --git a/_Main/BL/Type_LocalRow/Attribute_StockingPointID.qbl b/_Main/BL/Type_LocalRow/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..7d6d3b9 --- /dev/null +++ b/_Main/BL/Type_LocalRow/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[412672.1.107689523][412672.1.107689522][412672.1.107689524]' + ValueType: String +} diff --git a/_Main/BL/Type_LocalRow/DefaultValue_ProductID.qbl b/_Main/BL/Type_LocalRow/DefaultValue_ProductID.qbl new file mode 100644 index 0000000..98649b2 --- /dev/null +++ b/_Main/BL/Type_LocalRow/DefaultValue_ProductID.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: ProductID +} diff --git a/_Main/BL/Type_LocalRow/DefaultValue_StockingPointID.qbl b/_Main/BL/Type_LocalRow/DefaultValue_StockingPointID.qbl new file mode 100644 index 0000000..fbb83fc --- /dev/null +++ b/_Main/BL/Type_LocalRow/DefaultValue_StockingPointID.qbl @@ -0,0 +1,6 @@ +Quintiq file version 2.0 +#parent: #root +DefaultValue +{ + TargetAttribute: StockingPointID +} diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl new file mode 100644 index 0000000..9a529ee --- /dev/null +++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/Attribute_NewSupply.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute NewSupply +{ + #keys: '3[412672.1.107664674][412672.1.107664673][412672.1.107664675]' + ValueType: Real +} diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl new file mode 100644 index 0000000..10e8056 --- /dev/null +++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_Create.qbl @@ -0,0 +1,51 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod Create ( + MacroPlan owner +) as MP_Table +{ + TextBody: + [* + // rislai Aug-6-2024 (created) + table := select( owner,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() ); + if( not isnull( table )){ + table.Delete(); + } + + table := owner.MP_Table( relnew,Name := MP_Cell_AnnualPlanReport::GetTableName()); + + startDate := owner.StartOfPlanning().Date(); + endDate := startDate + 7; + + columns := construct( MP_Columns ); + columnIndexTree := NamedValueTree::Create(); + for( i := startDate;i < endDate; i := i + 1){ + column := table.MP_Column( relnew,CustomDate := i ); + columnHandle := columnIndexTree.GetHandle( i.AsQUILL() ); + columns.Add( column ); + columnIndexTree.Root().AddChild( columnHandle,columns.Size() - 1 ); + } + + traverse( owner,Product_MP.ProductInStockingPoint_MP,pisp_mp ){ + // unit.AsEntity().DisplayNameForSelection() + pispippls := selectset( pisp_mp,ProductInStockingPointInPeriod.astype( ProductInStockingPointInPeriodPlanningLeaf ),pispippl, + pispippl.Period_MP().StartDate() >= startDate + and pispippl.Period_MP().EndDate() <= endDate + and pispippl.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day()); + if( pispippls.Size() <> 0 ){ + row := table.MP_Row( relnew,ProductID := pisp_mp.ProductID(),StockingPointID := pisp_mp.StockingPointID(), CustomName := pisp_mp.Name() ,Index := table.GetRowIndexCache() ); + traverse( pispippls,Elements,pispippl ){ + columnHandle := columnIndexTree.GetHandle( pispippl.Period_MP().StartDate().AsQUILL() ); + columnIndex := guard( columnIndexTree.Root().Child( columnHandle ),null( NamedValue )); + if( not isnull( columnIndex )){ + column := columns.Element( columnIndex.GetValueAsNumber() ); + + row.MP_Cell( relnew,MP_Cell_AnnualPlanReport,MP_Column := column ,NewSupply := pispippl.NewSupplyQuantity()); + } + } + } + } + + return table; + *] +} diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl new file mode 100644 index 0000000..3a8b313 --- /dev/null +++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_CreateFullTable.qbl @@ -0,0 +1,75 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod CreateFullTable ( + const MacroPlans owners, + RecycleBin recycleBin +) as LocalTable +{ + TextBody: + [* + // rislai Aug-7-2024 (created) + tables := construct( MP_Tables ); + traverse( owners,Elements,owner ){ + table := select( owner,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() ); + if( isnull( table )){ + table := MP_Cell_AnnualPlanReport::Create( owner ); + } + tables.Add( table ); + } + + localTable := recycleBin.LocalTable( relnew,Name := MP_Cell_AnnualPlanReport::GetTableName() ); + startDate := minselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate(); + endDate := maxselect( tables,Elements.MP_Column,column,column.CustomDate() ).CustomDate(); + + localColumns := construct( LocalColumns ); + localColumnIndexTree := NamedValueTree::Create(); + for( i := startDate; i <= endDate; i := i + 1 ){ + localColumn := localTable.LocalColumn( relnew,CustomDate := i ,TimeUnit := "Day"); + localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL()); + localColumns.Add( localColumn ); + localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 ); + } + for( i := startDate.StartOfWeek(); i <= endDate.StartOfNextWeek(); i := i.StartOfNextWeek() ){ + localColumn := localTable.LocalColumn( relnew,CustomDate := i ,TimeUnit := "Week"); + localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() + "Week" ); + localColumns.Add( localColumn ); + localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 ); + } + for( i := startDate.StartOfMonth(); i <= endDate.StartOfNextMonth(); i := i.StartOfNextMonth() ){ + localColumn := localTable.LocalColumn( relnew,CustomDate := i ,TimeUnit := "Month"); + localColumnHandle := localColumnIndexTree.GetHandle( i.AsQUILL() + "Month" ); + localColumns.Add( localColumn ); + localColumnIndexTree.Root().AddChild( localColumnHandle,localColumns.Size() - 1 ); + } + traverse( tables,Elements.MP_Row,row ){ + localRow := localTable.LocalRow( relnew,CustomName := row.Name(),ProductID := row.ProductID(),StockingPointID := row.StockingPointID(),Index := localTable.GetRowIndexCache() ); + traverse( row,MP_Cell.astype( MP_Cell_AnnualPlanReport ),cell ){ + localColumnHandle := localColumnIndexTree.GetHandle( cell.MP_Column().Date().AsQUILL() ); + localColumnIndex := guard( localColumnIndexTree.Root().Child( localColumnHandle ),null( NamedValue )); + if( not isnull( localColumnIndex )){ + localColumn := localColumns.Element( localColumnIndex.GetValueAsNumber() ); + localCell := localRow.LocalCell( relnew,LocalCell_Default,LocalColumn := localColumn ); + localCell.RealValue( cell.NewSupply() ); + } + } + } + traverse( localTable,LocalRow,row ){ + traverse( localTable,LocalColumn,column,column.TimeUnit() = "Week" ){ + value := sum( row,LocalCell.astype( LocalCell_Default ),cell, + cell.LocalColumn().TimeUnit() = "Day" and + cell.LocalColumn().CustomDate() >= column.CustomDate() and + cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextWeek(),cell.RealValue()); + row.LocalCell( relnew,LocalCell_Default,LocalColumn := column,RealValue := value ); + } + traverse( localTable,LocalColumn,column,column.TimeUnit() = "Month" ){ + value := sum( row,LocalCell.astype( LocalCell_Default ),cell, + cell.LocalColumn().TimeUnit() = "Day" and + cell.LocalColumn().CustomDate() >= column.CustomDate() and + cell.LocalColumn().CustomDate() < column.CustomDate().StartOfNextMonth(),cell.RealValue()); + row.LocalCell( relnew,LocalCell_Default,LocalColumn := column,RealValue := value ); + } + } + + return localTable; + *] +} diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl new file mode 100644 index 0000000..fdd18d6 --- /dev/null +++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/StaticMethod_GetTableName.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#parent: #root +StaticMethod GetTableName () const declarative remote as owning String +{ + TextBody: + [* + // rislai Aug-7-2024 (created) + return "鍏ㄥ勾璁″垝鎶ヨ〃"; + *] +} diff --git a/_Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl b/_Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl new file mode 100644 index 0000000..8f10ada --- /dev/null +++ b/_Main/BL/Type_MP_Cell_AnnualPlanReport/_ROOT_Type_MP_Cell_AnnualPlanReport.qbl @@ -0,0 +1,9 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +TypeSpecialization MP_Cell_AnnualPlanReport +{ + #keys: '2[412672.1.107700065][412672.1.107700060]' + Parent: MP_Cell + StructuredName: 'MP_Cell_AnnualPlanReports' +} diff --git a/_Main/BL/Type_MP_Row/Attribute_ProductID.qbl b/_Main/BL/Type_MP_Row/Attribute_ProductID.qbl new file mode 100644 index 0000000..1aec101 --- /dev/null +++ b/_Main/BL/Type_MP_Row/Attribute_ProductID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ProductID +{ + #keys: '3[412672.1.107684682][412672.1.107684681][412672.1.107684683]' + ValueType: String +} diff --git a/_Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl b/_Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl new file mode 100644 index 0000000..d274c47 --- /dev/null +++ b/_Main/BL/Type_MP_Row/Attribute_StockingPointID.qbl @@ -0,0 +1,7 @@ +Quintiq file version 2.0 +#parent: #root +Attribute StockingPointID +{ + #keys: '3[412672.1.107684692][412672.1.107684691][412672.1.107684693]' + ValueType: String +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def index 25803c6..be2f284 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def @@ -172,6 +172,17 @@ Taborder: 12 ] } + Component ButtonAnnualPlanReport + { + #keys: '[412672.1.111811769]' + BaseType: 'WebButton' + Properties: + [ + Image: 'DOCUMENT_HEART' + Label: '鍏ㄥ勾璁″垝鎶ヨ〃' + Taborder: 13 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAnnualPlanReport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAnnualPlanReport_OnClick.def new file mode 100644 index 0000000..30862a0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_ButtonAnnualPlanReport_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: ActionBarGroupReport/ButtonAnnualPlanReport +Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_ButtonAnnualPlanReport_OnClick +{ + #keys: '[412672.1.111811838]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + // Open view + ApplicationMacroPlanner.OpenView( 'AnnualPlanReport', this ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def index a70e1aa..9f327be 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBESIWarning/Response_pnlActions_btnOk_OnClick.def @@ -4,6 +4,14 @@ { #keys: '[414996.0.415672898]' DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + flag := efBESI.Text().ToUpper() ~ "BESI"; + if( not flag ){ + feedback := "鏂囦欢鍚嶄腑闇�瑕佸寘鍚獴ESI"; + } + return flag; + *] QuillAction { Body: diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def index 20b8c8e..6d90515 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form701/Component_MatrixEditor.def @@ -45,7 +45,7 @@ Properties: [ DataType: 'LocalTable' - FilterArguments: 'checkedProduct:QMacroPlanner::FormOfflinePlanComparison701.dhFinelProduct' + FilterArguments: 'checkedProduct:QMacroPlanner::FormOfflinePlanChanges.dhFinelProduct' FixedFilter: 'exists( checkedProduct,Elements,product,product.ID() = object.Name() )' Source: 'dhComparisonData' Taborder: 0 @@ -73,7 +73,7 @@ Properties: [ DataType: 'LocalTable' - FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanComparison701.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanComparison701.dhEndDate' + FilterArguments: 'startDate:QMacroPlanner::FormOfflinePlanChanges.dhStartDate;endDate:QMacroPlanner::FormOfflinePlanChanges.dhEndDate' FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() ' Source: 'dhComparisonData' Taborder: 0 diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor.def new file mode 100644 index 0000000..aea0bf8 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor.def @@ -0,0 +1,103 @@ +Quintiq file version 2.0 +Component MatrixEditor +{ + #keys: '[412672.1.106503687]' + BaseType: 'WebMatrixEditor' + Children: + [ + Component MatrixEditorCell + { + #keys: '[412672.1.106503688]' + BaseType: 'WebMatrixEditorCell' + Children: + [ + Component DataExtractorCells + { + #keys: '[412672.1.106503689]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MP_Table' + Source: 'dhComparisonData' + Taborder: 0 + Transformation: 'MP_Row.MP_Cell.astype(MP_Cell_AnnualPlanReport)' + ] + } + ] + Properties: + [ + Attributes: 'NewSupply' + Column: 'MP_Column' + Row: 'MP_Row' + Taborder: 0 + ] + } + Component MatrixEditorRows + { + #keys: '[412672.1.106503690]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractorRows + { + #keys: '[412672.1.106503691]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MP_Table' + FilterArguments: 'checkedProduct:QMacroPlanner::FormAnnualPlanReport.dhFinelProduct;checkedStockingPoint:QMacroPlanner::FormAnnualPlanReport.dhFinelStockingPoint' + FixedFilter: 'exists( checkedProduct,Elements,entity,entity.ID() = object.ProductID()) and exists( checkedStockingPoint,Elements,entity,entity.DisplayName() = object.StockingPointID())' + Source: 'dhComparisonData' + Taborder: 0 + Transformation: 'MP_Row' + ] + } + ] + Properties: + [ + Legend: 'Name' + SortCriteria: 'Index' + Taborder: 1 + ] + } + Component MatrixEditorColumns + { + #keys: '[412672.1.106503692]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractorColumns + { + #keys: '[412672.1.106503693]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MP_Table' + FilterArguments: 'startDate:QMacroPlanner::FormAnnualPlanReport.dhStartDate;endDate:QMacroPlanner::FormAnnualPlanReport.dhEndDate' + FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() ' + Source: 'dhComparisonData' + Taborder: 0 + Transformation: 'MP_Column' + ] + } + ] + Properties: + [ + Legend: 'Date' + SortCriteria: 'Index' + Taborder: 2 + ] + } + #child: matrixEditorActionBarPageDemandComparison + #child: matrixeditorContextMenuDemandComparison + ] + Properties: + [ + AllowMultipleAttributes: true + Columns: 'MatrixEditorColumns' + ContextMenu: 'matrixeditorContextMenuDemandComparison' + Rows: 'MatrixEditorRows' + Taborder: 0 + Visible: false + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor510\043127.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor510\043127.def" new file mode 100644 index 0000000..e0b9cd6 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_MatrixEditor510\043127.def" @@ -0,0 +1,102 @@ +Quintiq file version 2.0 +Component MatrixEditor510 id:MatrixEditor510_127 +{ + #keys: '[412672.1.106503696]' + BaseType: 'WebMatrixEditor' + Children: + [ + Component MatrixEditorCell294 + { + #keys: '[412672.1.106503697]' + BaseType: 'WebMatrixEditorCell' + Children: + [ + Component DataExtractorCells611 + { + #keys: '[412672.1.106503698]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'LocalTable' + Source: 'dhComparisonData854' + Taborder: 0 + Transformation: 'LocalRow.LocalCell.astype(LocalCell_Default)' + ] + } + ] + Properties: + [ + Attributes: 'RealValue' + Column: 'LocalColumn' + Row: 'LocalRow' + Taborder: 0 + ] + } + Component MatrixEditorRows221 + { + #keys: '[412672.1.106503699]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractorRows116 + { + #keys: '[412672.1.106503700]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'LocalTable' + FilterArguments: 'checkedProduct:QMacroPlanner::FormAnnualPlanReport.dhFinelProduct;checkedStockingPoint:QMacroPlanner::FormAnnualPlanReport.dhFinelStockingPoint' + FixedFilter: 'exists( checkedProduct,Elements,entity,entity.ID() = object.ProductID()) and exists( checkedStockingPoint,Elements,entity,entity.DisplayName() = object.StockingPointID())' + Source: 'dhComparisonData854' + Taborder: 0 + Transformation: 'LocalRow' + ] + } + ] + Properties: + [ + Legend: 'Name' + SortCriteria: 'Index' + Taborder: 1 + ] + } + Component MatrixEditorColumns391 + { + #keys: '[412672.1.106503701]' + BaseType: 'WebMatrixEditorHeaderLevel' + Children: + [ + Component DataExtractorColumns655 + { + #keys: '[412672.1.106503702]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'LocalTable' + FilterArguments: 'startDate:QMacroPlanner::FormAnnualPlanReport.dhStartDate;endDate:QMacroPlanner::FormAnnualPlanReport.dhEndDate;timeUnit:QMacroPlanner::FormAnnualPlanReport.dhTimeUnit' + FixedFilter: 'not object.IsAttrbuteColumn() and startDate <= object.Date() and endDate > object.Date() and object.TimeUnit() = timeUnit' + Source: 'dhComparisonData854' + Taborder: 0 + Transformation: 'LocalColumn' + ] + } + ] + Properties: + [ + Legend: 'Date' + SortCriteria: 'Index' + Taborder: 2 + ] + } + #child: matrixEditorActionBarPageDemandComparison234_1 + #child: matrixeditorContextMenuDemandComparison527_1 + ] + Properties: + [ + AllowMultipleAttributes: true + Columns: 'MatrixEditorColumns391' + ContextMenu: 'matrixeditorContextMenuDemandComparison527' + Rows: 'MatrixEditorRows221' + Taborder: 2 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def new file mode 100644 index 0000000..d4eb82e --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelAnnualPlan.def @@ -0,0 +1,105 @@ +Quintiq file version 2.0 +Component PanelAnnualPlan +{ + #keys: '[412672.1.106503682]' + BaseType: 'WebPanel' + Children: + [ + Component dhComparisonData + { + #keys: '[412672.1.106503683]' + BaseType: 'WebDataHolder' + Databinding: 'MP_Table' + Properties: + [ + Taborder: 1 + ] + } + Component dhCheckedProduct + { + #keys: '[412672.1.106503684]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Product_MP]*' + Children: + [ + Component deCheckedProduct + { + #keys: '[412672.1.106503685]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[Product_MP]' + Source: 'ApplicationMacroPlanner.DataHolderCheckedProduct' + Taborder: 0 + Transformation: 'Elements' + ] + } + ] + Properties: + [ + Taborder: 5 + ] + } + Component dhFinelProduct + { + #keys: '[412672.1.106503686]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Product_MP]*' + Properties: + [ + Taborder: 4 + ] + } + Component dhComparisonData854 + { + #keys: '[412672.1.106503705]' + BaseType: 'WebDataHolder' + Databinding: 'LocalTable' + Properties: + [ + Taborder: 3 + ] + } + #child: MatrixEditor + #child: MatrixEditor510_127 + Component dhCheckedStockingPoint + { + #keys: '[412672.1.107978890]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Entity]*' + Children: + [ + Component deCheckedStockingPoint + { + #keys: '[412672.1.107978891]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[Entity]' + Source: 'ApplicationMacroPlanner.DataHolderCheckedEntities' + Taborder: 0 + Transformation: 'Elements' + ] + } + ] + Properties: + [ + Taborder: 7 + ] + } + Component dhFinelStockingPoint + { + #keys: '[412672.1.107978915]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Entity]*' + Properties: + [ + Taborder: 6 + ] + } + ] + Properties: + [ + Taborder: 1 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon\043805.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon\043805.def" new file mode 100644 index 0000000..ea992df --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon\043805.def" @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelRibbon id:PanelRibbon_805 +{ + #keys: '[412672.1.106503600]' + BaseType: 'WebPanel' + Children: + [ + #child: PanelRibbon322 + ] + Properties: + [ + FixedSize: true + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def new file mode 100644 index 0000000..1da6c09 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_PanelRibbon322.def @@ -0,0 +1,102 @@ +Quintiq file version 2.0 +Component PanelRibbon322 +{ + #keys: '[412672.1.106503607]' + BaseType: 'WebPanel' + Children: + [ + Component dsStartDate + { + #keys: '[412672.1.106503612]' + BaseType: 'WebDateSelector' + Properties: + [ + Label: 'Start Date' + Taborder: 4 + ] + } + Component dhStartDate + { + #keys: '[412672.1.106503613]' + BaseType: 'WebDataHolder' + Databinding: 'Date*' + Properties: + [ + Taborder: 5 + ] + } + Component dsEndDate + { + #keys: '[412672.1.106503614]' + BaseType: 'WebDateSelector' + Properties: + [ + Date: 9999-12-31 + Label: 'End Date' + Taborder: 6 + ] + } + Component dhEndDate + { + #keys: '[412672.1.106503615]' + BaseType: 'WebDataHolder' + Databinding: 'Date*' + Properties: + [ + Taborder: 7 + ] + } + Component ButtonRibbon + { + #keys: '[412672.1.106504238]' + BaseType: 'WebButton' + Properties: + [ + Image: 'C_CLAMP' + Label: 'Create' + Taborder: 0 + Visible: false + ] + } + Component ButtonRibbon682 + { + #keys: '[412672.1.108512062]' + BaseType: 'WebButton' + Properties: + [ + Image: 'C_CLAMP' + Label: 'Create full table' + Taborder: 1 + ] + } + Component rbgTimeUnit + { + #keys: '[412672.1.108680900]' + BaseType: 'WebRadioButtonGroup' + Properties: + [ + BoundValue: 'Day' + ButtonLabels: 'Day;Week;Month' + ButtonValues: 'Day;Week;Month' + Taborder: 2 + ] + } + Component dhTimeUnit + { + #keys: '[412672.1.111067302]' + BaseType: 'WebDataHolder' + Databinding: 'String*' + Properties: + [ + Taborder: 3 + ] + } + #child: pExport + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison.def new file mode 100644 index 0000000..34e0ac5 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixEditorActionBarPageDemandComparison +{ + #keys: '[412672.1.106503694]' + BaseType: 'matrixEditorActionBarPage' + Properties: + [ + Taborder: 3 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison234\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison234\0431.def" new file mode 100644 index 0000000..76c954d --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixEditorActionBarPageDemandComparison234\0431.def" @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixEditorActionBarPageDemandComparison234 id:matrixEditorActionBarPageDemandComparison234_1 +{ + #keys: '[412672.1.106503703]' + BaseType: 'matrixEditorActionBarPage' + Properties: + [ + Taborder: 3 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison.def new file mode 100644 index 0000000..a04c4b3 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixeditorContextMenuDemandComparison +{ + #keys: '[412672.1.106503695]' + BaseType: 'matrixeditorContextMenu' + Properties: + [ + Taborder: 4 + ] +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison527\0431.def" "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison527\0431.def" new file mode 100644 index 0000000..b2e5697 --- /dev/null +++ "b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_matrixeditorContextMenuDemandComparison527\0431.def" @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component matrixeditorContextMenuDemandComparison527 id:matrixeditorContextMenuDemandComparison527_1 +{ + #keys: '[412672.1.106503704]' + BaseType: 'matrixeditorContextMenu' + Properties: + [ + Taborder: 4 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def new file mode 100644 index 0000000..35cd231 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Component_pExport.def @@ -0,0 +1,60 @@ +Quintiq file version 2.0 +Component pExport +{ + #keys: '[412672.1.111157999]' + BaseType: 'WebPanel' + Children: + [ + Component bExport id:bExport_474 + { + #keys: '[412672.1.111158037]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Taborder: 0 + ] + } + Component dhXMLDataListener id:dhXMLDataListener_801 + { + #keys: '[412672.1.111158064]' + BaseType: 'WebDataHolder' + Databinding: 'ExportXMLManager' + Children: + [ + Component DataExtractorRibbon id:DataExtractorRibbon_462 + { + #keys: '[412672.1.111158065]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'RecycleBin' + FixedFilter: 'object.Name() = MP_Cell_ScheduleSummary::GetTableName()' + Source: 'RecycleBin' + Taborder: 0 + Transformation: 'ExportXMLManager' + ] + } + ] + Properties: + [ + Taborder: 1 + ] + } + Component bDownload id:bDownload_520 + { + #keys: '[412672.1.111158091]' + BaseType: 'WebButton' + Properties: + [ + Image: 'DOWNLOAD' + Taborder: 2 + ] + } + ] + Properties: + [ + FixedSize: true + Taborder: 8 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged.def new file mode 100644 index 0000000..348b3a1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhCheckedProduct +Response OnDataChanged () id:Response_PanelAnnualPlan_dhCheckedProduct_OnDataChanged +{ + #keys: '[412672.1.106503680]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + if( this.Data().Size() <> 0 ){ + dhFinelProduct.Data( this.Data().Copy() ); + }else{ + dhFinelProduct.Data( DataHolderProduct.Data().Copy() ); + } + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedStockingPoint_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedStockingPoint_OnDataChanged.def new file mode 100644 index 0000000..e3d55cb --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhCheckedStockingPoint_OnDataChanged.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhCheckedStockingPoint +Response OnDataChanged () id:Response_PanelAnnualPlan_dhCheckedStockingPoint_OnDataChanged +{ + #keys: '[412672.1.107978888]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + if( this.Data().Size() <> 0 ){ + dhFinelStockingPoint.Data( this.Data().Copy() ); + }else{ + dhFinelStockingPoint.Data( DataHolderEntities.Data().Copy() ); + } + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnCreated.def new file mode 100644 index 0000000..97b60d1 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnCreated.def @@ -0,0 +1,12 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhComparisonData854 +Response OnCreated () id:Response_PanelAnnualPlan_dhComparisonData854_OnCreated +{ + #keys: '[412672.1.106503674]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnDataChanged.def new file mode 100644 index 0000000..3ea00c6 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData854_OnDataChanged.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhComparisonData854 +Response OnDataChanged () id:Response_PanelAnnualPlan_dhComparisonData854_OnDataChanged +{ + #keys: '[412672.1.106503673]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + PanelAnnualPlan.Title( this.Data().Name() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData_OnCreated.def new file mode 100644 index 0000000..df2f792 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhComparisonData_OnCreated.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhComparisonData +Response OnCreated () id:Response_PanelAnnualPlan_dhComparisonData_OnCreated +{ + #keys: '[412672.1.106503681]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + table := select( MacroPlan,MP_Table,table,table.Name() = MP_Cell_AnnualPlanReport::GetTableName() ); + + dhComparisonData.Data( table ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelProduct_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelProduct_OnCreated.def new file mode 100644 index 0000000..864b3b0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelProduct_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhFinelProduct +Response OnCreated () id:Response_PanelAnnualPlan_dhFinelProduct_OnCreated +{ + #keys: '[412672.1.106503679]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( DataHolderProduct.Data().Copy() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelStockingPoint_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelStockingPoint_OnCreated.def new file mode 100644 index 0000000..a5b1001 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelAnnualPlan_dhFinelStockingPoint_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelAnnualPlan/dhFinelStockingPoint +Response OnCreated () id:Response_PanelAnnualPlan_dhFinelStockingPoint_OnCreated +{ + #keys: '[412672.1.107978913]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( DataHolderEntities.Data().Copy() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def new file mode 100644 index 0000000..e1c1b14 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon682_OnClick.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/ButtonRibbon682 +Response OnClick () id:Response_PanelRibbon322_ButtonRibbon682_OnClick +{ + #keys: '[412672.1.108512122]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + table := MP_Cell_AnnualPlanReport::CreateFullTable( ApplicationMacroPlanner.GetMacroPlans(),RecycleBin ); + dhComparisonData854.Data( table ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def new file mode 100644 index 0000000..c7711e6 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_ButtonRibbon_OnClick.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/ButtonRibbon +Response OnClick () id:Response_PanelRibbon322_ButtonRibbon_OnClick +{ + #keys: '[412672.1.106504261]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + table := MP_Cell_AnnualPlanReport::Create( MacroPlan ); + + dhComparisonData.Data( table ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def new file mode 100644 index 0000000..9975661 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhEndDate_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/dhEndDate +Response OnCreated () id:Response_PanelRibbon322_dhEndDate_OnCreated +{ + #keys: '[412672.1.106503587]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( Date::MaxDate() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def new file mode 100644 index 0000000..f2e53ed --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhStartDate_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/dhStartDate +Response OnCreated () id:Response_PanelRibbon322_dhStartDate_OnCreated +{ + #keys: '[412672.1.106503589]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( Date::MinDate() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def new file mode 100644 index 0000000..d90dcb3 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dhTimeUnit_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/dhTimeUnit +Response OnCreated () id:Response_PanelRibbon322_dhTimeUnit_OnCreated +{ + #keys: '[412672.1.111098277]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( "Day" ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def new file mode 100644 index 0000000..edb6111 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsEndDate_OnChanged.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/dsEndDate +Response OnChanged () id:Response_PanelRibbon322_dsEndDate_OnChanged +{ + #keys: '[412672.1.106503588]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + dhEndDate.Data( this.Date() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def new file mode 100644 index 0000000..d9d9e73 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_dsStartDate_OnChanged.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/dsStartDate +Response OnChanged () id:Response_PanelRibbon322_dsStartDate_OnChanged +{ + #keys: '[412672.1.106503590]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebDateTimeFieldBase_OnChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + dhStartDate.Data( this.Date() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def new file mode 100644 index 0000000..f56289a --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_PanelRibbon322_rbgTimeUnit_OnUserChanged.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelRibbon322/rbgTimeUnit +Response OnUserChanged () id:Response_PanelRibbon322_rbgTimeUnit_OnUserChanged +{ + #keys: '[412672.1.111001324]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebRadioButtonGroup_OnUserChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + dhTimeUnit.Data( this.BoundValue() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bDownload_OnClick.def new file mode 100644 index 0000000..213451f --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bDownload_OnClick.def @@ -0,0 +1,30 @@ +Quintiq file version 2.0 +#parent: pExport/bDownload_520 +Response OnClick () id:Response_pExport_bDownload_OnClick +{ + #keys: '[412672.1.111158090]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + flag := true; + feedback := ""; + if( isnull( dhXMLDataListener.Data() )){ + flag := false; + feedback := "褰撳墠鏃犱笅杞芥暟鎹紝鐐瑰嚮瀵煎嚭鍒涘缓涓嬭浇鏁版嵁銆�" + } + return flag; + *] + QuillAction + { + Body: + [* + binaryValue := dhXMLDataListener.Data( ).Export(); + + Application.Download( MP_Cell_ScheduleSummary::GetTableName() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() ); + + dhXMLDataListener.Data( ).Delete(); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def new file mode 100644 index 0000000..0f71325 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/Response_pExport_bExport_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: pExport/bExport_474 +Response OnClick () id:Response_pExport_bExport_OnClick +{ + #keys: '[412672.1.111158036]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + QuillAction + { + Body: + [* + rows := selectset( dhComparisonData854.Data(),LocalRow,row,exists( dhFinelProduct.Data(),Elements,entity,entity.ID() = row.ProductID()) and exists( dhFinelStockingPoint.Data(),Elements,entity,entity.DisplayName() = row.StockingPointID())); + columns := selectset( dhComparisonData854.Data(),LocalColumn,column,dhStartDate.Data() <= column.Date() and dhEndDate.Data() > column.Date() ); + LocalCell_ScheduleSummary::AsyncExport( RecycleBin,rows,columns ); + //Application.Download( "浜у嚭瀵煎叆妯℃澘.xlsx",data.AsBinaryData() ); + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def new file mode 100644 index 0000000..d525bba --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormAnnualPlanReport/_ROOT_Component_FormAnnualPlanReport.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormAnnualPlanReport +{ + #keys: '[412672.1.106503510]' + BaseType: 'WebForm' + Children: + [ + #child: PanelRibbon_805 + #child: PanelAnnualPlan + ] + Properties: + [ + Image: 'DOCUMENT_HEART' + Title: '鍏ㄥ勾璁″垝鎶ヨ〃' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def b/_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def index 1a7eefd..088afc8 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def +++ b/_Main/UI/MacroPlannerWebApp/Component_FormMachineLogisticsCostReport/Component_pHeader.def @@ -32,6 +32,8 @@ BaseType: 'WebButton' Properties: [ + Image: 'PIG' + Label: 'Button655' Taborder: 2 ] } diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_MatrixEditor859.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_MatrixEditor859.def index 915e9ca..64ff7df 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_MatrixEditor859.def +++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_MatrixEditor859.def @@ -45,6 +45,8 @@ Properties: [ DataType: 'LocalTable' + FilterArguments: 'checkedEntity:QMacroPlanner::FormComprehensiveStandardHoursReport.dhFinelEntity' + FixedFilter: 'exists( checkedEntity,Elements,entity,entity.DisplayName() = object.Name())' Source: 'dhTable' Taborder: 0 Transformation: 'LocalRow' diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_Panel743.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_Panel743.def index 8755839..48edb9f 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_Panel743.def +++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_Panel743.def @@ -16,6 +16,41 @@ Taborder: 1 ] } + Component dhFinelEntity + { + #keys: '[412672.1.111002548]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Entity]*' + Properties: + [ + Taborder: 2 + ] + } + Component dhCheckedEntity + { + #keys: '[412672.1.111002571]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Entity]*' + Children: + [ + Component deCheckedStockingPoint id:deCheckedStockingPoint_217 + { + #keys: '[412672.1.111002572]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[Entity]' + Source: 'ApplicationMacroPlanner.DataHolderCheckedEntities' + Taborder: 0 + Transformation: 'Elements' + ] + } + ] + Properties: + [ + Taborder: 3 + ] + } ] Properties: [ diff --git "a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_pOperaction\043633.def" "b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_pOperaction\043633.def" index 8be63c5..2162fa1 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_pOperaction\043633.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Component_pOperaction\043633.def" @@ -52,10 +52,57 @@ BaseType: 'WebButton' Properties: [ + Image: 'CALCULATOR' Label: 'Calculating' Taborder: 4 ] } + Component bExport + { + #keys: '[412672.1.106501907]' + BaseType: 'WebButton' + Properties: + [ + Image: 'EXPORT1' + Taborder: 5 + ] + } + Component bDownload + { + #keys: '[412672.1.106502003]' + BaseType: 'WebButton' + Properties: + [ + Image: 'DOWNLOAD' + Taborder: 6 + ] + } + Component dhXMLDataListener + { + #keys: '[412672.1.106502023]' + BaseType: 'WebDataHolder' + Databinding: 'structured[ExportXMLManager]*' + Children: + [ + Component DataExtractor510 + { + #keys: '[412672.1.106502024]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'RecycleBin' + FixedFilter: 'object.Name() = "缁煎悎宸ユ椂鍒舵姤琛�" or object.Name() = "鏍囧噯宸ユ椂鍒舵姤琛�"' + Source: 'RecycleBin' + Taborder: 0 + Transformation: 'ExportXMLManager' + ] + } + ] + Properties: + [ + Taborder: 7 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhCheckedEntity_OnDataChanged.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhCheckedEntity_OnDataChanged.def new file mode 100644 index 0000000..e3b873c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhCheckedEntity_OnDataChanged.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: Panel743/dhCheckedEntity +Response OnDataChanged () id:Response_Panel743_dhCheckedEntity_OnDataChanged +{ + #keys: '[412672.1.111002569]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnDataChanged' + GroupServerCalls: true + QuillAction + { + Body: + [* + if( this.Data().Size() <> 0 ){ + dhFinelEntity.Data( this.Data().Copy() ); + }else{ + dhFinelEntity.Data( DataHolderEntities.Data().Copy() ); + } + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhFinelEntity_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhFinelEntity_OnCreated.def new file mode 100644 index 0000000..fb690d3 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_Panel743_dhFinelEntity_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: Panel743/dhFinelEntity +Response OnCreated () id:Response_Panel743_dhFinelEntity_OnCreated +{ + #keys: '[412672.1.111002546]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Data( DataHolderEntities.Data().Copy() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bDownload_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bDownload_OnClick.def new file mode 100644 index 0000000..a657040 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bDownload_OnClick.def @@ -0,0 +1,32 @@ +Quintiq file version 2.0 +#parent: pOperaction/bDownload +Response OnClick () id:Response_PanelOperation_568_bDownload_OnClick +{ + #keys: '[412672.1.106502002]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + Precondition: + [* + flag := true; + feedback := ""; + if( dhXMLDataListener.Data().Size() = 0 ){ + flag := false; + feedback := "褰撳墠鏃犱笅杞芥暟鎹紝鐐瑰嚮瀵煎嚭鍒涘缓涓嬭浇鏁版嵁銆�" + } + return flag; + *] + QuillAction + { + Body: + [* + traverse( dhXMLDataListener.Data(),Elements,element ){ + binaryValue := element.Export(); + + Application.Download( element.Name() + "_" + DateTime::Now().Format( "YM2D2H2mmss" ) + ".xlsx", binaryValue.AsBinaryData() ); + + element.Delete(); + } + *] + GroupServerCalls: false + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bExport_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bExport_OnClick.def new file mode 100644 index 0000000..2fee64b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_StandardHoursReport/Response_pOperaction_bExport_OnClick.def @@ -0,0 +1,18 @@ +Quintiq file version 2.0 +#parent: pOperaction/bExport +Response OnClick () id:Response_pOperaction_bExport_OnClick +{ + #keys: '[412672.1.106502326]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + rows := selectset( dhTable.Data(),LocalRow,row,true ); + columns := selectset( dhTable.Data( ),LocalColumn,column,true ); + LocalCell_Default::AsyncExport( RecycleBin, rows, columns ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Views/AnnualPlanReport.vw b/_Main/UI/MacroPlannerWebApp/Views/AnnualPlanReport.vw new file mode 100644 index 0000000..6e4c2ef --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Views/AnnualPlanReport.vw @@ -0,0 +1,255 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_FormAnnualPlanReport + { + title: 'QMacroPlanner::FormAnnualPlanReport' + shown: true + componentID: 'QMacroPlanner::FormAnnualPlanReport' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 20 + columnPosition: 1 + columnSpan: 9 + } + components + { + FormAnnualPlanReport_PanelRibbon + { + sizeRatio: 1 + } + FormAnnualPlanReport_PanelRibbon322 + { + sizeRatio: 1 + } + FormAnnualPlanReport_pExport + { + sizeRatio: 1 + } + FormAnnualPlanReport_PanelAnnualPlan + { + sizeRatio: 1 + } + FormAnnualPlanReport_MatrixEditor + { + gridColor: '#c4c4c4' + totalHeaderWidth: 341 + attributeHeaderWidthRatio: 0.6 + nameHeaderWidthRatio: 0.4 + columnWidth: 100 + horizontalGrid: true + verticalGrid: true + backendState + { + componentId: 'QMacroPlanner::FormAnnualPlanReport.MatrixEditor' + state + { + cells + { + attributes + { + attribute_NewSupply + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 0 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'NewSupply' + } + } + } + columns + { + sorting + { + criteria: "datamember:'Index'" + } + } + rows + { + sorting + { + criteria: "datamember:'Index'" + } + } + } + } + } + FormAnnualPlanReport_MatrixEditor510 + { + gridColor: '#c4c4c4' + totalHeaderWidth: 200 + attributeHeaderWidthRatio: 0.6 + nameHeaderWidthRatio: 0.4 + columnWidth: 100 + horizontalGrid: true + verticalGrid: true + backendState + { + componentId: 'QMacroPlanner::FormAnnualPlanReport.MatrixEditor510' + state + { + cells + { + attributes + { + attribute_RealValue + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 0 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'RealValue' + } + } + } + columns + { + sorting + { + criteria: "datamember:'Index'" + } + } + rows + { + sorting + { + criteria: "datamember:'Index'" + } + } + } + } + } + } + } + form_FormOptimizerPuzzles + { + title: 'Optimizer Puzzles' + shown: false + componentID: 'FormOptimizerPuzzles' + layout + { + mode: 'dockright' + index: 0 + } + components + { + FormOptimizerPuzzles_ListOptimizerPuzzles + { + } + FormOptimizerPuzzles_DataSetLevelOptimizerPuzzles + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: 'Name' + index: 1 + subtotals: '' + width: 109 + } + column_Description + { + columnId: 'Description' + dataPath: 'Description' + dataType: 'string' + title: 'Description' + index: 2 + subtotals: '' + width: 207 + } + } + } + } + form_FormKPI + { + title: 'KPI Dashboard' + shown: true + componentID: 'FormKPI' + layout + { + mode: 'dockright' + index: 1 + } + components + { + FormKPI_PanelKPI + { + sizeRatio: 1 + activeChild: 'PanelKPISelection' + } + FormKPI_PanelKPIDashboard + { + sizeRatio: 1 + } + FormKPI_PanelKPISelection + { + sizeRatio: 1 + } + FormKPI_ListKPISelection + { + QuillViewData + { + Food_KPISetting: 'Cost of sales;Fulfillment;Fulfillment target;Inventory holding cost;Labor cost;Margin;Safety stock;Sales;Sourcing cost;Total CO2 emission;Transportation cost;Volume' + CarCo_KPISetting: 'Blending' + } + } + FormKPI_DataSetLevelKPISelection + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: 'Name' + index: 1 + subtotals: '' + width: 200 + } + } + } + } + } + userconfigurableinformation + { + } + page: '' + group: '' + index: 26 + image: 'DOCUMENT_HEART' + description: '' + } + formatversion: 2 + id: 'AnnualPlanReport' + name: 'AnnualPlanReport' + isglobal: false + isroot: true +} -- Gitblit v1.9.3