From 8d37eebd5b4e52c12b25e90ca7ce59439798f14e Mon Sep 17 00:00:00 2001 From: limj <limj@taizhitech.com> Date: 星期六, 07 十月 2023 16:27:50 +0800 Subject: [PATCH] Merge branch 'dev' of http://47.101.211.7:10101/r/TIANMA_JITUAN into dev_lmj --- _Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl | 8 _Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl | 10 _Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType#367.def | 3 _Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl | 10 _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def | 20 + _Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def | 14 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def | 35 ++ _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def | 15 + _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def | 19 + _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def | 10 _Main/BL/Type_MacroPlan/Method_MappingProductData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def | 26 + _Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl | 8 _Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def | 17 + _Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def | 15 + _Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def | 2 _Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def | 62 ++++ _Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl | 2 _Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl | 7 _Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl | 8 _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def | 19 + _Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl | 1 _Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl | 4 _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def | 40 ++ _Main/BL/Type_BusinessType/Attribute_DisplayType.qbl | 8 _Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw | 351 +++++++++++++++++++++++ _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def | 15 + _Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def | 33 ++ _Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def | 20 + _Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl | 23 + _Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl | 9 _Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def | 27 + _Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def | 12 _Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl | 5 _Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl | 4 37 files changed, 861 insertions(+), 17 deletions(-) diff --git a/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl b/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl new file mode 100644 index 0000000..53c42ae --- /dev/null +++ b/_Main/BL/Relations/Relation_OrganCode_BusinessType_BusinessType_OrganCode.qbl @@ -0,0 +1,23 @@ +Quintiq file version 2.0 +#parent: #root +Relation OrganCode_BusinessType_BusinessType_OrganCode +{ + #keys: '1[412960.0.276650038]' + DefaultRelationStrategy + { + } + RelationSide.LeftSide BusinessType + { + #keys: '3[412960.0.276650040][412960.0.276650039][412960.0.276650041]' + Cardinality: '0to1' + ObjectDefinition: OrganCode + OwningSide: 'Reference' + } + RelationSide.RightSide OrganCode + { + #keys: '3[412960.0.276650043][412960.0.276650042][412960.0.276650044]' + Cardinality: '1toN' + ObjectDefinition: BusinessType + OwningSide: 'Owned' + } +} diff --git a/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl b/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl index f2fb6a3..44f63a3 100644 --- a/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl +++ b/_Main/BL/Type_BusinessType/Attribute_BusinessTypeName.qbl @@ -3,5 +3,6 @@ Attribute BusinessTypeName { #keys: '3[414382.0.361554811][414382.0.361554810][414382.0.361554812]' + Description: '浜嬩笟閮ㄥ悕绉�' ValueType: String } diff --git a/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl b/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl new file mode 100644 index 0000000..72577fd --- /dev/null +++ b/_Main/BL/Type_BusinessType/Attribute_DisplayType.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute DisplayType +{ + #keys: '3[412960.0.276650024][412960.0.276650023][412960.0.276650025]' + Description: '鏄剧ず绫诲瀷' + ValueType: String +} diff --git a/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl b/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl new file mode 100644 index 0000000..bf93bb5 --- /dev/null +++ b/_Main/BL/Type_BusinessType/Attribute_ScenarioName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute ScenarioName +{ + #keys: '3[412960.0.276650011][412960.0.276650010][412960.0.276650012]' + Description: '鍦烘櫙鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl index c6520fb..a6f9a24 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl @@ -9,7 +9,12 @@ TextBody: [* // renhao Aug-14-2023 (created) - listtodeal := selectset( globalOTDTable,Global_MappingActualProductInStockingPointInPeriod,actual,actual.ActualInventoryLevelEnd() > 0 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listtodeal := selectset( globalOTDTable, + Global_MappingActualProductInStockingPointInPeriod, + actual, + ( actual.ActualInventoryLevelEnd() > 0 ) and + ( organcodelist.Find( actual.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); totalcount := listtodeal.Size(); info( "ActualPISPIP has " + totalcount.AsQUILL() + " rows in total" ); @@ -24,7 +29,7 @@ if( not isnull(businessTypes)){ for( i :=0 ;i < businessTypes.Size();i++ ){ - businessType := businessTypes.Element( i); + businessType := businessTypes.Element( i ); if( product.BusinessType() = businessType and not product.IsCommon()){ ActualProductInStockingPointInPeriod::CreateOrUpdate( this, actual.ProductID(), diff --git a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl index 3a572dc..9d01ece 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl @@ -14,7 +14,12 @@ if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true ); } else { - listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, businessTypes.Find( item.BusinessType() ) <> -1 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listToDeal := selectset( globalOTDTable, + Global_MappingCustomOrder, + item, + ( businessTypes.Find( item.BusinessType() ) <> -1 ) and + ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); } queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl index c6a2bcf..39675d3 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl @@ -11,7 +11,13 @@ // renhao Aug-14-2023 (created) queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); - listtodeal := selectset( globalOTDTable,Global_MappingInventorySupply,externalSupply, externalSupply.UserQuantity()>0 and externalSupply.Date() >= queryStartDate /*and externalSupply.Date() <= queryEndDate*/); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listtodeal := selectset( globalOTDTable, + Global_MappingInventorySupply, + externalSupply, + ( externalSupply.UserQuantity()>0 ) and + ( externalSupply.Date() >= queryStartDate ) and + ( organcodelist.Find( externalSupply.StockingPointID().SubString( 0, 3 ) ) >= 0 )/*and externalSupply.Date() <= queryEndDate*/); totalcount := listtodeal.Size(); description := "鍦ㄩ�斿湪鍒�"; info( "ExternalSupply has " + totalcount.AsQUILL() + " rows in total" ); @@ -32,7 +38,7 @@ if( not isnull(businessTypes)){ for( i :=0 ;i < businessTypes.Size();i++ ){ - businessType := businessTypes.Element( i); + businessType := businessTypes.Element( i ); if( product.BusinessType() = businessType and not product.IsCommon()){ InventorySupply::CreateOrUpdate( externalSupply.ID(), productMP, diff --git a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl index 21b752b..5fbb66c 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl @@ -14,7 +14,13 @@ if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 ); } else { - listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, businessTypes.Find( item.BusinessType() ) <> -1 and item.Quantity()>0 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listToDeal := selectset( globalOTDTable, + Global_MappingForecast, + item, + ( businessTypes.Find( item.BusinessType() ) <> -1 ) and + ( item.Quantity()>0 ) and + ( organcodelist.Find( item.StockingPointID().SubString( 0, 3 ) ) >= 0 ) ); } queryStartDate := guard( min( this, Period_MP, item, true, item.StartDate() ) - Duration::Days( 30 ), DateTime::MinDateTime() ).Date(); queryEndDate := guard( max( this, Period_MP, item, true, item.EndDate() ), Date::MaxDate() ); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl index b716d4d..663464c 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl @@ -14,11 +14,13 @@ if( isKeyProduct ) { keyProductList := selectuniquevalues( globalOTDTable, Global_MappingProduct_MP, item, item.ProductMajorType()="鎴愬搧" or item.ProductMajorType()="鍗婃垚鍝�", item.ID() ); } + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); bomList := selectsortedset( globalOTDTable, Global_MappingOperationBOM, item, ifexpr( isnull( businessTypes ) or businessTypes.Size() = 0, true, // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 ) - businessTypes.Find( item.BusinessType() ) >= 0 ) + ( businessTypes.Find( item.BusinessType() ) >= 0 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ) // and ifexpr( isKeyProduct, // keyProductList.Size() > 0 and keyProductList.Find( item.ComponentCode() ) >= 0, // true ) diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl index 1e71d79..9a458dd 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl @@ -1,6 +1,7 @@ Quintiq file version 2.0 #parent: #root Method MappingOperationCostData ( + GlobalOTDTable globalOTDTable, Strings businesstypes ) { @@ -14,7 +15,12 @@ if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { listtodeal := selectset( this, MappingOperation, item, true ); } else { - listtodeal := selectset( this, MappingOperation, item, businesstypes.Find( item.BusinessType() ) <> -1 ); + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); + listtodeal := selectset( this, + MappingOperation, + item, + ( businesstypes.Find( item.BusinessType() ) <> -1 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ); } // Get the list to deal with max sequence number diff --git a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl index 29e7e21..b09ed68 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl @@ -11,8 +11,10 @@ // 鑾峰彇鏈夊簭鐨勫緟澶勭悊璁板綍 toDealList := construct( Global_MappingOperations ) ; if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) { + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); toDealList := selectsortedset( globalOTDTable, Global_MappingOperation, item, - businessTypes.Find( item.BusinessType() ) >= 0, + ( businessTypes.Find( item.BusinessType() ) >= 0 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ), // businessTypes.Difference( businessTypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0, item.SequenceNumber() ); } else { diff --git a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl index ab7398e..1e0929e 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingProductData.qbl @@ -23,10 +23,10 @@ } } else { if( iskeyproduct = true ){ - listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType()) >= 0 ); + listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, item.KeyProduct() = true and businesstypes.Find( item.BusinessType() ) >= 0 ); } else{ - listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType()) >= 0 ); + listToDeal := selectset( globalOTDTable, Global_MappingProduct_MP, item, businesstypes.Find( item.BusinessType() ) >= 0 ); } } totalcount := listToDeal.Size(); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl index cf459b5..d7f21c2 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingSalesSegmentData.qbl @@ -14,7 +14,10 @@ if( isnull( businessTypes ) or businessTypes.Size() = 0 ) { listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, true ); } else { - listToDeal := selectset( globalOTDTable, Global_MappingSalesSegment_MP, item, businessTypes.Find( item.BusinessType() ) <> -1 ); + listToDeal := selectset( globalOTDTable, + Global_MappingSalesSegment_MP, + item, + businessTypes.Find( item.BusinessType() ) <> -1 ); } //nameList := construct( structured[String] ); //nameList := selectvalues( listToDeal, Elements, item, true, item.Name() ); diff --git a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl index e826ddb..671fe30 100644 --- a/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl +++ b/_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl @@ -15,9 +15,11 @@ if( isnull( businesstypes ) or businesstypes.Size() = 0 ) { listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true ); } else { + organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() ); listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, // businesstypes.Difference( businesstypes.Difference( item.BusinessType().Tokenize( ", " ) ) ).Size() > 0 - businesstypes.Find( item.BusinessType() ) >= 0 + ( businesstypes.Find( item.BusinessType() ) >= 0 ) and + ( organcodelist.Find( item.OrganCode() ) >= 0 ) ); } diff --git a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl index b4361d5..875645b 100644 --- a/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl +++ b/_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl @@ -131,7 +131,7 @@ // todo 鍒堕�犳垚鏈�-16 info( "InventoryCost Finished, Start OperationCost Mapping" ); - macroPlan.MappingOperationCostData( businessTypes ); + macroPlan.MappingOperationCostData( globalOTDTable, businessTypes ); // 璁㈠崟棰勬祴-17 Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable); diff --git a/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl b/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl new file mode 100644 index 0000000..bdf1f0e --- /dev/null +++ b/_Main/BL/Type_OrganCode/Attribute_OrganCodeName.qbl @@ -0,0 +1,8 @@ +Quintiq file version 2.0 +#parent: #root +Attribute OrganCodeName +{ + #keys: '3[412960.0.276650052][412960.0.276650051][412960.0.276650053]' + Description: '缁勭粐缂栫爜鍚嶇О' + ValueType: String +} diff --git a/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl b/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl new file mode 100644 index 0000000..3a16e43 --- /dev/null +++ b/_Main/BL/Type_OrganCode/_ROOT_Type_OrganCode.qbl @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +#root +#parent: #DomainModel +Type OrganCode +{ + #keys: '5[412960.0.276650035][412960.0.276650033][0.0.0][412960.0.276650034][412960.0.276650036]' + BaseType: Object + Description: '浜嬩笟閮ㄥ搴旂殑缁勭粐缂栫爜闆嗗悎' + StructuredName: 'OrganCodes' +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def index b6cdcbb..07b8549 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogBusinessType/Component_pnlContent.def @@ -12,10 +12,35 @@ Properties: [ DataBinding: 'DataHolderBusinessType.Data.BusinessTypeName' - Label: 'Business Type Name' + Description: '浜嬩笟閮ㄥ悕绉拌緭鍏�' + Label: '浜嬩笟閮ㄥ悕绉�' Taborder: 0 ] } + Component editScenarioName + { + #keys: '[412960.0.275480603]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderBusinessType.Data.ScenarioName' + Description: '鍦烘櫙鍚嶇О缂栬緫' + Label: '鍦烘櫙鍚嶇О' + Taborder: 1 + ] + } + Component editDisplayType + { + #keys: '[412960.0.278321833]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderBusinessType.Data.DisplayType' + Description: '鏄剧ず绫诲瀷缂栬緫' + Label: '鏄剧ず绫诲瀷' + Taborder: 2 + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def new file mode 100644 index 0000000..262d308 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlActions.def @@ -0,0 +1,40 @@ +Quintiq file version 2.0 +Component pnlActions +{ + #keys: '[412960.0.278371059]' + BaseType: 'WebPanel' + Children: + [ + Component btnOk + { + #keys: '[412960.0.278371063]' + BaseType: 'WebButton' + Properties: + [ + Label: 'OK' + Taborder: 0 + ] + } + Component btnCancel + { + #keys: '[412960.0.278371065]' + BaseType: 'WebButton' + Properties: + [ + Label: 'Cancel' + Taborder: 1 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + Border: true + ExcludeFromActiveComponent: true + FixedSize: true + Orientation: 'horizontal' + Padding: 'true' + Style: 'footer' + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def new file mode 100644 index 0000000..459a754 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Component_pnlContent.def @@ -0,0 +1,26 @@ +Quintiq file version 2.0 +Component pnlContent +{ + #keys: '[412960.0.278371057]' + BaseType: 'WebPanel' + Children: + [ + Component editOrganCodeName + { + #keys: '[412960.0.280135212]' + BaseType: 'WebEditField' + Properties: + [ + DataBinding: 'DataHolderOrganCode.Data.OrganCodeName' + Description: '缁勭粐缂栫爜鍚嶇О缂栬緫' + Label: '缁勭粐缂栫爜' + Taborder: 0 + ] + } + ] + Properties: + [ + Padding: 'true' + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def new file mode 100644 index 0000000..4e90d83 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_ClickBtnOk.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: #root +Method ClickBtnOk () id:Method_DialogOrganCode_ClickBtnOk +{ + #keys: '[412960.0.279955432]' + Body: + [* + // Disabled button to prevent the possibility of multiple firing + + btnOk.Enabled(false,''); + + // OnOk + this.ApplyChanges(); + + DataHolderOrganCode.Data().Commit(); + + this.Close(); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def new file mode 100644 index 0000000..299bad9 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_Edit.def @@ -0,0 +1,17 @@ +Quintiq file version 2.0 +#parent: #root +Method Edit ( + OrganCode selection +) id:Method_DialogOrganCode_Edit +{ + #keys: '[412960.0.279955433]' + Body: + [* + // Edits assumption + data := shadow( selection ); + + DataHolderOrganCode.Data( &data ); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def new file mode 100644 index 0000000..b312c1c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Method_New.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: #root +Method New ( + BusinessType owner +) id:Method_DialogOrganCode_New +{ + #keys: '[412960.0.279955435]' + Body: + [* + data := owner.OrganCode(relshadow); + DataHolderOrganCode.Data( &data); + + ApplicationMacroPlanner.ShowFormModal( this ); + *] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def new file mode 100644 index 0000000..fb27680 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnCancel_OnClick.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnCancel +Response OnClick () id:Response_pnlActions_btnCancel_OnClick +{ + #keys: '[412960.0.278371069]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.Close(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def new file mode 100644 index 0000000..3ac7bbe --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/Response_pnlActions_btnOk_OnClick.def @@ -0,0 +1,15 @@ +Quintiq file version 2.0 +#parent: pnlActions/btnOk +Response OnClick () id:Response_pnlActions_btnOk_OnClick +{ + #keys: '[412960.0.278371068]' + DefinitionID: 'Responsedef_WebButton_OnClick' + GroupServerCalls: true + QuillAction + { + Body: + [* + Form.ClickBtnOk() + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def new file mode 100644 index 0000000..c681a1b --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_DialogOrganCode/_ROOT_Component_DialogOrganCode.def @@ -0,0 +1,33 @@ +Quintiq file version 2.0 +#root +#parent: MacroPlannerWebApp +OrphanComponent DialogOrganCode +{ + #keys: '[412960.0.278371055]' + BaseType: 'WebForm' + Children: + [ + #child: pnlContent + #child: pnlActions + Component DataHolderOrganCode + { + #keys: '[412960.0.279955517]' + BaseType: 'WebDataHolder' + Databinding: 'shadow[OrganCode]*' + Properties: + [ + Taborder: 2 + ] + } + ] + Properties: + [ + Alignment: 'trailing' + Description: '缁勭粐缂栫爜杈圭晫寮圭獥' + EnterButton: 'btnOk' + EscapeButton: 'btnCancel' + ExcludeFromActiveComponent: true + Padding: 'false' + Title: '缁勭粐缂栫爜缂栬緫' + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def index b0713d9..c7e5490 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListBusinessType.def @@ -28,7 +28,7 @@ ] Properties: [ - Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}}]' + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessTypeName","title":"BusinessTypeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessTypeName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayType","title":"DisplayType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"DisplayType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ScenarioName","title":"ScenarioName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ScenarioName"}}]' ContextMenu: 'listContextMenuBusinessType655' Taborder: 2 ] diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def new file mode 100644 index 0000000..055b426 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_ListOrganCode.def @@ -0,0 +1,62 @@ +Quintiq file version 2.0 +Component ListOrganCode +{ + #keys: '[412960.0.278370451]' + BaseType: 'WebList' + Children: + [ + Component DataExtractorOrganCode + { + #keys: '[412960.0.278370452]' + BaseType: 'WebDataExtractor' + Properties: + [ + DataType: 'BusinessType' + Description: '缁勭粐缂栫爜' + ExtractionMode: 'Selected' + Source: 'ListBusinessType' + Taborder: 0 + Transformation: 'OrganCode' + ] + } + #child: listActionBarPageOrganCode + Component DataSetLevelOrganCode + { + #keys: '[412960.0.278370457]' + BaseType: 'WebDataSetLevel' + Children: + [ + #child: listContextMenuBusinessType + ] + Properties: + [ + Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrganCodeName","title":"OrganCodeName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrganCodeName"}}]' + ContextMenu: 'listContextMenuBusinessType' + Taborder: 2 + ] + } + ] + Properties: + [ + Description: '缁勭粐缂栫爜' + Taborder: 0 + ] + ResponseDefinitions: + [ + DelegatedResponseDefinition OnClick id:Responsedef_ListOrganCode_WebMenu_OnClick + { + #keys: '[412960.0.280046014]' + Initiator: 'WebMenu' + IsInherited: false + ResponseType: 'OnClick' + Arguments: + [ + ResponseDefinitionArgument selection + { + #keys: '[507.0.16811226]' + Binding: 'this.Selection()' + } + ] + } + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def new file mode 100644 index 0000000..9e8ac81 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_PanelBusinessType.def @@ -0,0 +1,14 @@ +Quintiq file version 2.0 +Component PanelBusinessType +{ + #keys: '[412960.0.278370440]' + BaseType: 'WebPanel' + Children: + [ + #child: ListOrganCode + ] + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def new file mode 100644 index 0000000..cc122e0 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listActionBarPageOrganCode.def @@ -0,0 +1,10 @@ +Quintiq file version 2.0 +Component listActionBarPageOrganCode +{ + #keys: '[412960.0.278370454]' + BaseType: 'listActionBarPage' + Properties: + [ + Taborder: 1 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def new file mode 100644 index 0000000..d8d6b3c --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType.def @@ -0,0 +1,35 @@ +Quintiq file version 2.0 +Component listContextMenuBusinessType +{ + #keys: '[412960.0.278370459]' + BaseType: 'listContextMenu' + Children: + [ + Component MenuEdit526 + { + #keys: '[412960.0.278370780]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'PENCIL' + Taborder: 3 + Title: 'Edit' + ] + } + Component MenuDelete267 + { + #keys: '[412960.0.278370833]' + BaseType: 'WebMenu' + Properties: + [ + Image: 'DELETE' + Taborder: 4 + Title: 'Delete' + ] + } + ] + Properties: + [ + Taborder: 0 + ] +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def index 30edf41..6d6b098 100644 --- a/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Component_listContextMenuBusinessType655.def @@ -38,6 +38,18 @@ Title: 'Delete' ] } + Component MenuNewOrganCode + { + #keys: '[412960.0.280077335]' + BaseType: 'WebMenu' + Properties: + [ + Description: '鏂板缓缁勭粐缂栫爜' + Image: 'EARTH_ADD' + Taborder: 6 + Title: 'Add Organ Code' + ] + } ] Properties: [ diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def new file mode 100644 index 0000000..fbc8746 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListBusinessType_MenuNewOrganCode_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: ListBusinessType +Response OnClick ( + BusinessType selection +) id:Response_ListBusinessType_MenuNewOrganCode_OnClick +{ + #keys: '[412960.0.280105097]' + CanBindMultiple: false + DefinitionID => /ListBusinessType/Responsedef_ListBusinessType_WebMenu_OnClick + GroupServerCalls: true + Initiator: 'MenuNewOrganCode' + QuillAction + { + Body: + [* + dlg := construct( DialogOrganCode ); + dlg.New( selection ); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def new file mode 100644 index 0000000..cb47729 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuDelete267_OnClick.def @@ -0,0 +1,19 @@ +Quintiq file version 2.0 +#parent: ListOrganCode +Response OnClick ( + OrganCode selection +) id:Response_ListOrganCode_MenuDelete267_OnClick +{ + #keys: '[412960.0.280046423]' + CanBindMultiple: false + DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick + GroupServerCalls: true + Initiator: 'MenuDelete267' + QuillAction + { + Body: + [* + selection.Delete(); + *] + } +} diff --git a/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def new file mode 100644 index 0000000..1cbf4e6 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Component_Form367/Response_ListOrganCode_MenuEdit526_OnClick.def @@ -0,0 +1,20 @@ +Quintiq file version 2.0 +#parent: ListOrganCode +Response OnClick ( + OrganCode selection +) id:Response_ListOrganCode_MenuEdit526_OnClick +{ + #keys: '[412960.0.280046170]' + CanBindMultiple: false + DefinitionID => /ListOrganCode/Responsedef_ListOrganCode_WebMenu_OnClick + GroupServerCalls: true + Initiator: 'MenuEdit526' + QuillAction + { + Body: + [* + dlg := construct( DialogOrganCode ); + dlg.Edit( selection ); + *] + } +} diff --git "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" index e23342a..d9814cb 100644 --- "a/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" +++ "b/_Main/UI/MacroPlannerWebApp/Component_Form367/_ROOT_Component_FormBusinessType\043367.def" @@ -8,9 +8,10 @@ Children: [ #child: ListBusinessType + #child: PanelBusinessType ] Properties: [ - Title: 'Business Type' + Title: '浜嬩笟閮�&缁勭粐缂栫爜缁存姢' ] } diff --git a/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw b/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw new file mode 100644 index 0000000..7903c23 --- /dev/null +++ b/_Main/UI/MacroPlannerWebApp/Views/Business_Type_Maintain.vw @@ -0,0 +1,351 @@ +Quintiq file version 2.0 +{ + viewcontents + { + forms + { + form_legacy_1 + { + title: 'Scenario manager' + shown: true + componentID: 'FormScenarioManager' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 8 + columnPosition: 1 + columnSpan: 5 + } + components + { + FormScenarioManager_ListScenario + { + } + FormScenarioManager_DataSetLevelScenario + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 90 + } + column_Name + { + columnId: 'Name' + dataPath: 'Name' + dataType: 'string' + title: '鍚嶇О' + index: 1 + subtotals: '' + width: 277 + } + column_ChangedBy + { + columnId: 'ChangedBy' + dataPath: 'ChangedBy' + dataType: 'string' + title: 'Changed by' + index: 2 + subtotals: '' + width: 106 + } + column_ChangedOn + { + columnId: 'ChangedOn' + dataPath: 'ChangedOn' + dataType: 'datetime' + title: 'Changed on' + index: 3 + subtotals: '' + width: 99 + } + column_StorageMode + { + columnId: 'StorageMode' + dataPath: 'StorageMode' + dataType: 'string' + title: 'StorageMode' + index: 4 + subtotals: '' + width: 40 + } + } + } + } + form_legacy_2 + { + title: 'Assumptions' + shown: true + componentID: 'FormAssumptions' + layout + { + mode: 'open' + rowPosition: 9 + rowSpan: 8 + columnPosition: 1 + columnSpan: 5 + } + components + { + FormAssumptions_ListAssumptions + { + } + FormAssumptions_DataSetLevelAssumptions + { + groupDepth: -1 + column_All_constraints + { + columnId: 'All constraints' + dataPath: 'All constraints' + dataType: 'string' + title: 'All constraints' + index: 0 + subtotals: '' + width: 32 + } + column_Category + { + columnId: 'Category' + dataPath: 'Category' + dataType: 'string' + title: '绫诲埆' + index: 1 + subtotals: '' + width: 108 + } + column_Importance + { + columnId: 'Importance' + dataPath: 'Importance' + dataType: 'string' + title: '閲嶈鎬�' + index: 2 + subtotals: '' + width: 110 + } + column_Title + { + columnId: 'Title' + dataPath: 'Title' + dataType: 'string' + title: '鏍囬' + index: 3 + subtotals: '' + width: 150 + } + column_ChangedBy + { + columnId: 'ChangedBy' + dataPath: 'ChangedBy' + dataType: 'string' + title: 'Changed by' + index: 4 + subtotals: '' + width: 150 + } + column_CreatedOn + { + columnId: 'CreatedOn' + dataPath: 'CreatedOn' + dataType: 'datetime' + title: 'Created on' + index: 5 + subtotals: '' + width: 150 + } + } + } + } + form_FormScenariosKPIsComparison + { + title: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + shown: true + componentID: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison' + layout + { + mode: 'open' + rowPosition: 1 + rowSpan: 16 + columnPosition: 6 + columnSpan: 7 + } + components + { + FormScenariosKPIsComparison_MatrixEditorFinancialKPIs + { + gridColor: '#c4c4c4' + totalHeaderWidth: 200 + attributeHeaderWidthRatio: 0.6 + nameHeaderWidthRatio: 0.4 + columnWidth: 100 + horizontalGrid: true + verticalGrid: true + backendState + { + componentId: 'QLibMacroPlannerWebUI::FormScenariosKPIsComparison.MatrixEditorFinancialKPIs' + state + { + cells + { + attributes + { + attribute_DisplayValue + { + type: 'MatrixEditorWebApiCellDataModelInterest' + index: 0 + rowsubtotal: '' + columnsubtotal: '' + attribute: 'DisplayValue' + } + } + } + columns + { + sorting + { + criteria: '' + } + } + rows + { + sorting + { + criteria: "datamember:'KPISetting.DisplayIndex'" + } + } + } + } + } + } + } + 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: '鍚嶇О' + index: 1 + subtotals: '' + width: 109 + } + column_Description + { + columnId: 'Description' + dataPath: 'Description' + dataType: 'string' + title: '鎻忚堪' + 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' + } + } + 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: '鍚嶇О' + index: 1 + subtotals: '' + width: 200 + } + } + } + } + } + userconfigurableinformation + { + } + index: 3 + image: 'ELEMENTS_TREE_EDIT' + page: 'applicationDevelopmentActionBarPageDef' + group: '' + description: '' + } + formatversion: 2 + id: 'Business_Type_Maintain' + name: 'Business Type Maintain' + isglobal: false + isroot: true +} -- Gitblit v1.9.3