From 7804ec7a70a7ffe3116daec64154c15842f8c513 Mon Sep 17 00:00:00 2001 From: yanweiyuan3 <yanweiyuan3@gmail.com> Date: 星期一, 11 九月 2023 16:51:00 +0800 Subject: [PATCH] Add Forecast form --- _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def | 10 + _Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw | 183 ++++++++++++++++++++++++++ _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def | 16 ++ _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def | 63 +++++++++ _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def | 15 ++ _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def | 24 +++ _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def | 10 + _Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp | 2 _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def | 43 ++++++ _Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def | 41 +++++ 10 files changed, 406 insertions(+), 1 deletions(-) diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def new file mode 100644 index 0000000..f825db9 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_ListForecastForHedging.def @@ -0,0 +1,41 @@ +Quintiq file version 2.0 +Component ListForecastForHedging +{ + #keys: '[412960.0.117650662]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorForecastForHedging453 + { + #keys: '[412960.0.117650663]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'structured[Forecast]' + Source: 'DataHolderForecastForHedging' + Taborder: 0 + Transformation: 'Elements' + ] + } + #child: listActionBarPageForecastForHedging + Component DataSetLevelForecastForHedging + { + #keys: '[412960.0.117650668]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuForecastForHedging + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductID","title":"ProductID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Quantity","title":"Quantity","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Quantity"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}}]' + ContextMenu: 'listContextMenuForecastForHedging' + Taborder: 2 + ] + } + ] + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def new file mode 100644 index 0000000..cc6a096 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +Component PanelForecastForHedging +{ + #keys: '[412960.0.117670724]' + BaseType: 'WebPanel' + Children: + [ + #child: ListForecastForHedging + #child: PanelForecastForHedging961 + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def new file mode 100644 index 0000000..4940eca --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_PanelForecastForHedging961.def @@ -0,0 +1,63 @@ +Quintiq file version 2.0 +Component PanelForecastForHedging961 +{ + #keys: '[412960.0.124780919]' + BaseType: 'WebPanel' + Children: + [ + Component DateSelectorForecastForHedging + { + #keys: '[412960.0.124781002]' + BaseType: 'WebDateSelector' + Properties: + [ + Date: 2023-01-01 + DateFormat: 'YMM' + Label: '鎴鏃ユ湡' + MinDate: 2023-01-01 + Taborder: 1 + ] + } + Component ButtonForecastForHedging + { + #keys: '[412960.0.124781317]' + BaseType: 'WebButton' + Properties: + [ + BadgeTextColor: 'blue' + ButtonSize: 'compact' + Label: ' 鎼滅储 ' + Taborder: 2 + ] + } + Component EditFieldForecastForHedging + { + #keys: '[412960.0.124781382]' + BaseType: 'WebEditField' + Properties: + [ + PlaceHolder: '妯$硦鎼滅储' + Taborder: 0 + ] + } + Component LabelForecastForHedging + { + #keys: '[412960.0.124781423]' + BaseType: 'WebLabel' + Properties: + [ + Label: '鎼滅储' + Taborder: 3 + Text: '鎼滅储' + Visible: false + ] + } + ] + Properties: + [ + FixedSize: true + Orientation: 'horizontal' + SizeRatio: 0 + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def new file mode 100644 index 0000000..c92b3a7 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listActionBarPageForecastForHedging.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageForecastForHedging +{ + #keys: '[412960.0.117650665]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def new file mode 100644 index 0000000..3da0a0b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Component_listContextMenuForecastForHedging.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listContextMenuForecastForHedging +{ + #keys: '[412960.0.117650670]' + BaseType: 'listContextMenu' + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def new file mode 100644 index 0000000..7e09df5 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick.def @@ -0,0 +1,24 @@ +Quintiq file version 2.0 +#parent: PanelForecastForHedging961/ButtonForecastForHedging +Response OnClick () id:Response_PanelForecastForHedging961_ButtonForecastForHedging_OnClick +{ + #keys: '[412960.0.124781470]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + DataExtractorForecastForHedging.FixedFilter( + "( object.ID().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" + + " or " + "object.ProductID().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" + // + " or " + "object.Quantity().AsString().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" + + " or " + "object.UnitOfMeasureName().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " )" + + " or " + "object.SalesSegmentName().LikeUserLocale( " + EditFieldForecastForHedging.Text().AsQUILL() + " ) )" + + "and" + "( object.EndDate() < " + DateSelectorForecastForHedging.Date().StartOfNextMonth().AsQUILL() + + " and " + "object.EndDate() >= " + DateSelectorForecastForHedging.Date().StartOfMonth().AsQUILL() + " )" + ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def new file mode 100644 index 0000000..2d9b51d --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated.def @@ -0,0 +1,16 @@ +Quintiq file version 2.0 +#parent: PanelForecastForHedging961/DateSelectorForecastForHedging +Response OnCreated () id:Response_PanelForecastForHedging961_DateSelectorForecastForHedging_OnCreated +{ + #keys: '[412960.0.124961321]' + CanBindMultiple: false + DefinitionID: 'Responsedef_WebComponent_OnCreated' + GroupServerCalls: true + QuillAction + { + Body: + [* + this.Date( Date::ActualDate() ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def new file mode 100644 index 0000000..d3b3f75 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_FormForecastForHedging/_ROOT_Component_FormForecastForHedging.def @@ -0,0 +1,43 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent FormForecastForHedging +{ + #keys: '[412960.0.116513237]' + BaseType: 'WebForm' + Children: + [ + #child: PanelForecastForHedging + Component DataHolderForecastForHedging + { + #keys: '[412960.0.117670741]' + BaseType: 'WebDataHolder' + Databinding: 'structured[Forecast]*' + Children: + [ + Component DataExtractorForecastForHedging + { + #keys: '[412960.0.117620894]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'MacroPlan' + Source: 'MacroPlan' + Taborder: 0 + Transformation: 'SalesDemand.astype(Forecast)' + ] + } + ] + Properties: + [ + Taborder: 1 + ] + } + ] + Properties: + [ + Description: '鍐插噺鍔熻兘涓嬬殑棰勬祴鏁版嵁鐣岄潰' + Image: 'PURCHASE_ORDER' + Title: '棰勬祴鍒楄〃椤�' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw b/_Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw new file mode 100644 index 0000000..7bb36cf --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Views/Test_for_hedging.vw @@ -0,0 +1,183 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_legacy_1 + { + title: 'Currencies' + shown: true + componentID: 'FormCurrency' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 8 + columnPosition: 1 + columnSpan: 6 + } + components + { + FormCurrency_PanelCurrency + { + sizeRatio: 1 + } + FormCurrency_ListCurrency + { + } + FormCurrency_DataSetLevelCurrency + { + groupDepth: -1 + sort: 'DESC:IsBase,Name' + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 33 + } + column_Base + { + columnId: 'Base' + dataPath: 'Base' + dataType: 'string' + title: '鍩虹' + index: 1 + subtotals: '' + width: 30 + } + column_InUse + { + columnId: 'InUse' + dataPath: 'InUse' + dataType: 'string' + title: 'InUse' + index: 2 + subtotals: '' + width: 30 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: '鍚嶇О' + index: 3 + subtotals: '' + width: 150 + } + column_Symbol + { + columnId: 'Symbol' + dataPath: 'Symbol' + dataType: 'string' + title: '璞″緛' + index: 4 + subtotals: '' + width: 150 + } + } + } + } + form_legacy_2 + { + title: 'Currency rates' + shown: true + componentID: 'FormCurrencyRates' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 8 + columnPosition: 7 + columnSpan: 6 + } + components + { + FormCurrencyRates_ListCurrencyRate + { + } + FormCurrencyRates_DataSetLevelCurrencyRate + { + groupDepth: -1 + sort: 'DESC:Start' + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 33 + } + column_Start + { + columnId: 'Start' + dataPath: 'Start' + dataType: 'date' + title: '寮�濮�' + index: 1 + subtotals: '' + width: 150 + } + column_Rate + { + columnId: 'Rate' + dataPath: 'Rate' + dataType: 'real' + title: '閫熷害' + index: 2 + subtotals: '' + width: 150 + } + } + } + } + form_legacy_3 + { + title: 'Currency rates chart' + shown: true + componentID: 'FormCurrencyRatesChart' + layout + { + mode: 'open' + rowPosition: 9 + rowSpan: 8 + columnPosition: 1 + columnSpan: 12 + } + components + { + FormCurrencyRatesChart_DashboardChartCurrencyRates + { + SynchronizationGroup: '' + } + FormCurrencyRatesChart_DashboardChartCurrencyRates_legend + { + LegendItems: + [ + ] + } + } + } + } + userconfigurableinformation + { + } + page: 'applicationDevelopmentActionBarPageDef' + group: '' + index: 0 + image: 'APPLICATION_SERVER_PREFERENCES' + description: '' + } + formatversion: 2 + id: 'Test_for_hedging' + name: 'Test for hedging' + isglobal: false + isroot: true +} diff --git a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp index cb94597..237ed78 100644 --- a/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp +++ b/_Main/UI/MacroPlannerWebApp/_ROOT_Project_MacroPlannerWebApp.qp @@ -5,7 +5,7 @@ ProjectProperties { ApplicationComponentName: 'ApplicationMacroPlanner' - BuildVersion: '2022.3.0.32' + BuildVersion: '2022.3.0.72' Description: 'Quintiq Macro Planner' ProjectKind: 'WebClient' } -- Gitblit v1.9.3