yypsybs
2023-10-10 2e55c32ab671ce5e4a5d1c713fac74ae0b2724e6
Merge branch 'dev' into dev_yx
已修改52个文件
已添加50个文件
已删除5个文件
4814 ■■■■ 文件已修改
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl 28 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/Attribute_CurrencyID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/Attribute_UnitOfMeasure_MPID.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateCustomOrder.qbl 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FillingCapacityOrder/StaticMethod_OrderOffset.qbl 58 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Forecast/StaticMethod_DoSync.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_OnException.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_OnException.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl 45 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetCurrency_MP.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetProduct_MP.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetSalesSegment_MP.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetStockingPoing_MP.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetUnitOfMeasure_MP.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLane/StaticMethod_OnException.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_OnException.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_OnException.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_Forecast.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowCell/StaticMethod_GenerateDataThroughReflection.qbl 30 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl 181 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl 53 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl 31 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl 18 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl 101 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgTest.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def 78 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_abgTest_btnTest_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClic.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFillin.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnDockingERPForPRRelease_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPanelPullingMaterialGroupOperations_O.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPanelPullingMaterialOperationsOfEachB.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def 41 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2#456.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def 20 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def 13 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct#844.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_listContextMenuProduct#1.def 28 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_ListCustomOrder.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_ListForecast.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_ListUnitOfMeasure_MP.def 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_MatrixEditorShowInterfaceData.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelCustomOrder#682.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelForecast.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelInterfaceDataDisplayContent.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelUnitOfMeasure_MP.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listActionBarPageCustomOrder.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listActionBarPageForecast.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listActionBarPageUnitOfMeasure_MP.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listContextMenuCustomOrder.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listContextMenuForecast.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listContextMenuUnitOfMeasure_MP.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/_ROOT_Component_FormShowInterfaceData.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_Panel391.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Response_Panel391_Button655_OnClick.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Test.vw 525 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/对接ERP进行PR释放.vw 168 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/年度产销复盘.vw 777 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/面板拉料_各事业部操作.vw 94 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/面板拉料_集团操作.vw 1471 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CapacityAllocationResults/StaticMethod_IterativeGeneration2.qbl
@@ -14,8 +14,24 @@
  [*
    numberOfLayers++;
    //info( "目标时间:", targetDate.Format( "Y-M2-D2" ) );
    info( pisp.Name() );
    //info( pisp.Name() );
    traverse ( pisp, ProductInStockingPointInPeriodPlanning.astype( ProductInStockingPointInPeriodPlanningLeaf ), pispippl, pispippl.Start().Date() = targetDate ) {
      //info( "是否有供应:", pispippl.NewSupply( relsize ) > 0, "    åº“存:", pispippl.InventoryLevelEnd() );
      if ( numberOfLayers <> 1 and pispippl.NewSupply( relsize ) = 0 ) {
        previous := pispippl.PreviousPlanningPISPIP().astype( ProductInStockingPointInPeriodPlanningLeaf );
        if ( not previous.Period_MP().IsHistorical() ) {
          previousDate := previous.Start().Date();
          CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
                                                           pisp,
                                                           previousDate,
                                                           carrcs,
                                                           numberOfLayers,
                                                           firstLevelSupply,
                                                           currentLayerDependentDemandQuantity
                                                          );
        }
      }
      traverse ( pispippl, NewSupply, ns, ns.Quantity() > 0 ) {
        if ( numberOfLayers = 1 ) {
          firstLevelSupply := ns;
@@ -24,7 +40,7 @@
        ontype( ns.PeriodTask_MP() ) {
          PeriodTaskOperation as pto : {
    //        info( "Operation周期任务..." );     
            traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd ) {
            traverse ( ns, PeriodTask_MP.astype( PeriodTaskOperation ).DependentDemand, dd, dd.Quantity() > 0 ) {
              if ( numberOfLayers = 1 ) {
                currentLayerDependentDemandQuantity := ns.Quantity();
              }
@@ -56,8 +72,8 @@
                                                        ModuleMeasurementUnit := firstLevelSupply.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().UnitOfMeasureName(),
                                                        ModuleBase            := guard( firstLevelSupply.PeriodTask_MP().astype( PeriodTaskOperation ).Operation().UnitID(), "车道运输" ),
                                                        Division              := carrc.Division(),
                                                        RequirementDate       := ns.Start().Date(),
                                                        Date                  := ns.Start().Date(),
                                                        RequirementDate       := firstLevelSupply.Start().Date(),
                                                        Date                  := firstLevelSupply.Start().Date(),
                                                        Description           := "",
                                                        ID                    := OS::GenerateGUIDAsString(),
                                                        ProductID             := ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().ProductID(),
@@ -67,7 +83,7 @@
                                                       );
                                                        
            }
            info( "-----------------------------------------------------------------------------------------------------------------" );
            //info( "-----------------------------------------------------------------------------------------------------------------" );
          }
          
          PeriodTaskLaneLeg as ptll : {
@@ -76,7 +92,7 @@
    //        info( "层数:", numberOfLayers,"    å½“前供应的pisp:", ns.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), "    æ€»ä¾›åº”值:", ns.Quantity(), "    éœ€è¦ä¾›åº”值:", currentLayerDependentDemandQuantity,
    //              "    å½“前需求pisp:", targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP().Name(), "    éœ€æ±‚值:", currentLayerDependentDemandQuantity );
    //        info( "LaneLeg周期任务..." );
            info( "-----------------------------------------------------------------------------------------------------------------" );
            //info( "-----------------------------------------------------------------------------------------------------------------" );
            CapacityAllocationResults::IterativeGeneration2( globalOTDTable,
                                                             targetDependentDemand.ProductInStockingPointInPeriodPlanningLeaf().ProductInStockingPoint_MP(),
                                                             targetDate,
_Main/BL/Type_CustomerOrder/StaticMethod_DoSync.qbl
@@ -3,7 +3,8 @@
StaticMethod DoSync (
  MacroPlan macroPlan,
  Strings businessTypes,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
@@ -12,6 +13,6 @@
    //info( "Forecast Finished, Start CustomerOrder Data Broker" );
    //macroPlan.Broker_OTD_CustomerOrder().Execute();
    info( "CustomerOrder Data Broker Finished, Start CustomerOrder Mapping" );
    macroPlan.MappingCustomerOrderData( businessTypes,globalOTDTable );
    macroPlan.MappingCustomerOrderData( businessTypes,globalOTDTable, organcodelist );
  *]
}
_Main/BL/Type_FillingCapacityOrder/Attribute_CurrencyID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute CurrencyID
{
  #keys: '3[414502.0.397320037][414502.0.397320036][414502.0.397320038]'
  ValueType: String
}
_Main/BL/Type_FillingCapacityOrder/Attribute_UnitOfMeasure_MPID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute UnitOfMeasure_MPID
{
  #keys: '3[414502.0.397254634][414502.0.397254633][414502.0.397254635]'
  ValueType: String
}
_Main/BL/Type_FillingCapacityOrder/StaticMethod_CreateCustomOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateCustomOrder (
  MacroPlan macroPlan,
  FillingCapacityOrder fillingCapacityOrder,
  Real quantity
) as CustomerOrder
{
  TextBody:
  [*
    targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = fillingCapacityOrder.ProductID() );
    targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = fillingCapacityOrder.StockingPointID() );
    targetCustomerOrder := CustomerOrder::Create( targetProduct_MP,
                                                  targetStockingPoint_MP,
                                                  OS::GenerateGUIDAsString(),
                                                  fillingCapacityOrder.OrderDate(),
                                                  quantity,
                                                  0.0,
                                                  "Normal",
                                                  fillingCapacityOrder.SalesSegmentName(),
                                                  fillingCapacityOrder.CurrencyID(),
                                                  fillingCapacityOrder.UnitOfMeasureName(),
                                                  false,
                                                  fillingCapacityOrder.Customer(),
                                                  fillingCapacityOrder.CustomerID(),
                                                  "",
                                                  "",
                                                  true,
                                                  true,
                                                  false
                                                 );
    return targetCustomerOrder;
  *]
}
_Main/BL/Type_FillingCapacityOrder/StaticMethod_OrderOffset.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,58 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OrderOffset (
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    needOffsetFillingCapacityOrders := selectset( macroPlan, FillingCapacityOrder, tempFCO, tempFCO.State() = "未冲减" or tempFCO.State() ="" );
    traverse ( needOffsetFillingCapacityOrders, Elements, fco, fco.Quantity() > 0 ) {
      originalCounterSignedOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.CustomerName() = fco.Customer()  and
                                                                                                    tempCO.ProductID()    = fco.ProductID() and
                                                                                                    tempCO.OrderTag()     = "反签"
                                           );
      if ( fco.OrderType() = "反签" ) {
        if ( isnull( originalCounterSignedOrder ) ) {
          customerOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, fco.Quantity() );
          customerOrder.OrderTag( "反签" );
        } else {
          originalCounterSignedOrder.Quantity( originalCounterSignedOrder.Quantity() + fco.Quantity() );
        }
      } else if ( fco.OrderType() = "授权" ) {
        originalAuthorizedOrder := select( macroPlan, SalesDemand.astype( CustomerOrder ), tempCO, tempCO.CustomerName() = fco.Customer()  and
                                                                                                   tempCO.ProductID()    = fco.ProductID() and
                                                                                                   tempCO.OrderTag()     = "授权"
                                          );
        if ( isnull( originalCounterSignedOrder ) ) {
          if ( isnull( originalAuthorizedOrder ) ) {
            customOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, fco.Quantity() );
            customOrder.OrderTag( "授权" );
          } else {
            originalAuthorizedOrder.Quantity( originalAuthorizedOrder.Quantity() + fco.Quantity() );
          }
        } else {
          numberOfReverseSignatures := originalCounterSignedOrder.Quantity();
          newNumberOfAuthorizations := ifexpr( ( fco.Quantity() - numberOfReverseSignatures ) >= 0, fco.Quantity() - numberOfReverseSignatures, 0 );
          numberOfReverseSignatures := ifexpr( ( fco.Quantity() - numberOfReverseSignatures ) >= 0, 0, numberOfReverseSignatures - fco.Quantity() );
          if ( numberOfReverseSignatures >= 0 ) {
            originalCounterSignedOrder.Quantity( numberOfReverseSignatures );
          } else {
            originalCounterSignedOrder.Delete();
          }
          if ( newNumberOfAuthorizations > 0 ) {
            if ( isnull( originalAuthorizedOrder ) ) {
              customerOrder := FillingCapacityOrder::CreateCustomOrder( macroPlan, fco, newNumberOfAuthorizations );
              customerOrder.OrderTag( "授权" );
            } else {
              originalAuthorizedOrder.Quantity( originalAuthorizedOrder.Quantity() + newNumberOfAuthorizations );
            }
          }
        }
      }
    }
  *]
}
_Main/BL/Type_Forecast/StaticMethod_DoSync.qbl
@@ -3,7 +3,8 @@
StaticMethod DoSync (
  MacroPlan macroPlan,
  Strings businessTypes,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
@@ -12,6 +13,6 @@
    //info( "OperationCost Finished, Start Forecast Data Broker" );
    //macroPlan.Broker_OTD_Forecast().Execute();
    info( "Forecast Data Broker Finished, Start Forecast Mapping" );
    macroPlan.MappingForecastData( businessTypes,globalOTDTable );
    macroPlan.MappingForecastData( businessTypes,globalOTDTable, organcodelist );
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SynchronizationAllMappingBrokerAndAPIByOption.qbl
@@ -89,31 +89,31 @@
    if ( isStockingPoint_MP ) {
      this.Global_MappingStockingPoint_MP( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "StockingPoint_MP", executionUser );
      this -> OnException( this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception(), this );
    //  this -> Global_MappingStockingPoint_MP::CreateByAPI() -> Exception() -> Global_MappingStockingPoint_MP::OnException( this );
    }
    
    if ( isCurrency_MP ) {
      this.Global_MappingCurrency_MP( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "Currency_MP", executionUser );
      this -> OnException( this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception(), this );
    //  this -> Global_MappingCurrency_MP::CreateByAPI() -> Exception() -> Global_MappingCurrency_MP::OnException( this );
    }
    
    if ( isCurrencyRate_MP ) {
      this.Global_MappingCurrencyRate_MP( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "CurrencyRate_MP", executionUser );
      this -> OnException( this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception(), this );
    //  this -> Global_MappingCurrencyRate_MP::CreateByAPI() -> Exception() -> Global_MappingCurrencyRate_MP::OnException( this );
    }
    
    if ( isLane ) {
      this.Global_MappingLane( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "Lane", executionUser );
      this -> OnException( this -> Global_MappingLane::CreateByAPI() -> Exception(), this );
    //  this -> Global_MappingLane::CreateByAPI() -> Exception() -> Global_MappingLane::OnException( this );
    }
    
    if ( isLaneLeg ) {
      this.Global_MappingLaneLeg( relflush );
      Global_BrokerExecuteLog::CreateInOperation( this, "LaneLeg", executionUser );
      this -> OnException( this -> Global_MappingLaneLeg::CreateByAPI() -> Exception(), this );
    //  this -> Global_MappingLaneLeg::CreateByAPI() -> Exception() -> Global_MappingLaneLeg::OnException( this );
    }
  *]
}
_Main/BL/Type_GlobalDTOTable/Method_SynchronizeDataToMacroPlan#127.qbl
@@ -2,7 +2,9 @@
#parent: #root
Method SynchronizeDataToMacroPlan (
  MacroPlan macroPlan,
  Boolean isUnitOfMeasure_MP
  String executionUser,
  Boolean isUnitOfMeasure_MP,
  Boolean isCustomOrder
)
{
  TextBody:
@@ -10,5 +12,9 @@
    if ( isUnitOfMeasure_MP ) {
      Global_MappingUnitOfMeasure_MP::SynchronizeMacroPlanData( this, macroPlan );
    }
    if ( isCustomOrder ) {
      Global_MappingCustomOrder::SynchronizeMacroPlanData( this, macroPlan, executionUser );
    }
  *]
}
_Main/BL/Type_Global_MappingCurrencyRate_MP/StaticMethod_OnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnException (
  Exception e,
  GlobalOTDTable globalOTDTable
)
{
  TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "CurrencyRate_MP", "货币汇率接口数据" );'
}
_Main/BL/Type_Global_MappingCurrency_MP/StaticMethod_OnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnException (
  Exception e,
  GlobalOTDTable globalOTDTable
)
{
  TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "Currency_MP", "货币接口数据" );'
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_CreateCustomOrder.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,45 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateCustomOrder (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    traverse ( globalOTDTable, Global_MappingCustomOrder, gmco ) {
      targetProduct_MP := Global_MappingCustomOrder::GetProduct_MP( macroPlan, gmco );
      targetStockingPoint_MP := Global_MappingCustomOrder::GetStockingPoing_MP( macroPlan, gmco );
      Global_MappingCustomOrder::GetSalesSegment_MP( macroPlan, gmco );
      Global_MappingCustomOrder::GetCurrency_MP( macroPlan, gmco );
      Global_MappingCustomOrder::GetUnitOfMeasure_MP( macroPlan, gmco );
      targetCustomerOrder := CustomerOrder::Create( targetProduct_MP,
                                                    targetStockingPoint_MP,
                                                    gmco.ID(),
                                                    gmco.OrderDate(),
                                                    gmco.Quantity(),
                                                    gmco.Price(),
                                                    "Normal",
                                                    gmco.SalesSegmentName(),
                                                    gmco.CurrencyID(),
                                                    gmco.UnitOfMeasureName(),
                                                    false,
                                                    gmco.Customer(),
                                                    gmco.CustomerID(),
                                                    gmco.OrderID(),
                                                    gmco.OrderLineID(),
                                                    true,
                                                    true,
                                                    false
                                                   );
      targetCustomerOrder.BusinessType( gmco.BusinessType() );
      targetCustomerOrder.OrderType( gmco.OrderType() );
      targetCustomerOrder.IsAvailable( gmco.IsAvailable() );
      targetCustomerOrder.ProductGrade( gmco.ProductGrade() );
      targetCustomerOrder.SegmentPriority( gmco.SegmentPriority() );
      targetCustomerOrder.SheetProfitability( gmco.SheetProfitability() );
      targetCustomerOrder.OrderTime( gmco.OrderTime() );
    }
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetCurrency_MP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetCurrency_MP (
  MacroPlan macroPlan,
  Global_MappingCustomOrder gmco
)
{
  TextBody:
  [*
    isExists := exists( macroPlan, Currency_MP, tempCMP, tempCMP.ID() = gmco.CurrencyID() );
    if ( not isExists ) {
      Currency_MP::Create( gmco.CurrencyID(), macroPlan, gmco.CurrencyID(), "", false, false );
    }
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetProduct_MP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetProduct_MP (
  MacroPlan macroPlan,
  Global_MappingCustomOrder gmco
) as Product_MP
{
  TextBody:
  [*
    targetProduct_MP := select( macroPlan, Product_MP, tempPMP, tempPMP.ID() = gmco.ProductID() );
    if ( isnull( targetProduct_MP ) ) {
      targetProduct_MP := Product_MP::Create( gmco.ProductID(), macroPlan, null( Product_MP ), gmco.ProductID(), null( SupplyChainView ), 0, 0, false );
    }
    return targetProduct_MP;
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetSalesSegment_MP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetSalesSegment_MP (
  MacroPlan macroPlan,
  Global_MappingCustomOrder gmco
)
{
  TextBody:
  [*
    isExists := exists( macroPlan, SalesSegment_MP, tempSSMP, tempSSMP.Name() = gmco.SalesSegmentName() );
    if ( not isExists ) {
      SalesSegment_MP::Create( macroPlan, "", gmco.SalesSegmentName(), 0, false );
    }
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetStockingPoing_MP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetStockingPoing_MP (
  MacroPlan macroPlan,
  Global_MappingCustomOrder gmco
) as StockingPoint_MP
{
  TextBody:
  [*
    targetStockingPoint_MP := select( macroPlan, StockingPoint_MP, tempSPMP, tempSPMP.ID() = gmco.StockingPointID() );
    if ( isnull( targetStockingPoint_MP ) ) {
      targetStockingPoint_MP := StockingPoint_MP::Create( gmco.StockingPointID(), macroPlan, null( Unit ), gmco.StockingPointID(), null( SupplyChainView ), 0, 0, false );
    }
    return targetStockingPoint_MP;
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_GetUnitOfMeasure_MP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetUnitOfMeasure_MP (
  MacroPlan macroPlan,
  Global_MappingCustomOrder gmco
)
{
  TextBody:
  [*
    isExists := exists( macroPlan, UnitOfMeasure_MP, tempUOMMP, tempUOMMP.Name() = gmco.UnitOfMeasureName() );
    if ( not isExists ) {
      UnitOfMeasure_MP::Create( macroPlan, gmco.UnitOfMeasureName(), false, false );
    }
  *]
}
_Main/BL/Type_Global_MappingCustomOrder/StaticMethod_SynchronizeMacroPlanData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SynchronizeMacroPlanData (
  GlobalOTDTable globalOTDTable,
  MacroPlan macroPlan,
  String executionUser
)
{
  TextBody:
  [*
    global_BrokerExecuteLog := globalOTDTable.Global_BrokerExecuteLog( relnew,
                                                                       Name        := "同步订单数据",
                                                                       IsSuccess   := true,
                                                                       ExecuteUser := executionUser
                                                                      );
    try {
      Global_MappingCustomOrder::CreateCustomOrder( globalOTDTable, macroPlan );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
      global_BrokerExecuteLog.SuccessDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
    } onerror {
      global_BrokerExecuteLog.IsSuccess( false );
      global_BrokerExecuteLog.ErrorNo( e.ErrorNr() );
      global_BrokerExecuteLog.ErrorMessage( e.GeneralInformation() );
      global_BrokerExecuteLog.ErrorDateTime( DateTime::ActualTime().Format( "Y-M-D H2:m:s" ) );
      global_BrokerExecuteLog.ExecutionStatus( "Complete" );
    }
  *]
}
_Main/BL/Type_Global_MappingLane/StaticMethod_OnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnException (
  Exception e,
  GlobalOTDTable globalOTDTable
)
{
  TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "Lane", "车道接口数据" );'
}
_Main/BL/Type_Global_MappingLaneLeg/StaticMethod_OnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnException (
  Exception e,
  GlobalOTDTable globalOTDTable
)
{
  TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "LaneLeg", "车道支架接口数据" );'
}
_Main/BL/Type_Global_MappingStockingPoint_MP/StaticMethod_OnException.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#parent: #root
StaticMethod OnException (
  Exception e,
  GlobalOTDTable globalOTDTable
)
{
  TextBody: 'globalOTDTable.SettingFailureDetails( e.ErrorNumber(), e.Message(), "StockingPoint_MP", "库存接口数据" );'
}
_Main/BL/Type_Global_ShowCell/StaticMethod_CreateShowData_Forecast.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateShowData_Forecast (
  GlobalOTDTable globalOTDTable
)
{
  TextBody:
  [*
    businessTypeColumn       := Global_ShowColumn::CreateColumn( globalOTDTable, 0, "事业部" );
    idColumn                 := Global_ShowColumn::CreateColumn( globalOTDTable, 0, "ID" );
    productIDColumn          := Global_ShowColumn::CreateColumn( globalOTDTable, 0, "产品编码" );
    i := 1;
    traverse ( globalOTDTable, Global_MappingForecast, gmf ) {
      gloabal_ShowRow := globalOTDTable.Global_ShowRow( relnew, RowNr := i );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmf.BusinessType(), businessTypeColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmf.ID(), idColumn, gloabal_ShowRow );
      Global_ShowCell::SetColumnsAndRows( globalOTDTable, gmf.ProductID(), productIDColumn, gloabal_ShowRow );
      i++;
    }
  *]
}
_Main/BL/Type_Global_ShowCell/StaticMethod_GenerateDataThroughReflection.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,30 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GenerateDataThroughReflection (
  GlobalOTDTable globalOTDTable,
  String className
)
{
  TextBody:
  [*
    //columnIndex := 0;
    //rowIndex    := 0;
    //
    //traverse ( globalOTDTable, Global_MappingUnitOfMeasure_MP, gmuommp ) {
    //  gloabal_ShowRow := globalOTDTable.Global_ShowRow( relnew, RowNr := rowIndex );
    //  traverse ( typeof( Global_MappingUnitOfMeasure_MP ), MdlAttrElements, mae ) {
    //    targetReflectionAttribute := Reflection::FindAttribute( className, mae.Name() );
    //    if ( not isnull( targetReflectionAttribute ) ) {
    //      targetsGlobal_ShowColumn := select( globalOTDTable, Global_ShowColumn, tempGSC, tempGSC.ColumnName() = mae.Name() );
    //      if ( isnull( targetsGlobal_ShowColumn ) ) {
    //        targetsGlobal_ShowColumn := Global_ShowColumn::CreateColumn( globalOTDTable, columnIndex, mae.Name() );
    //        columnIndex++;
    //      }
    //
    //      Global_ShowCell::SetColumnsAndRows( globalOTDTable, targetReflectionAttribute.Get( gmuommp )., targetsGlobal_ShowColumn, gloabal_ShowRow );
    //    }
    //  }
    //  rowIndex++;
    //}
  *]
}
_Main/BL/Type_Global_ShowCell/StaticMethod_ShowData.qbl
@@ -10,5 +10,13 @@
    if ( global_BrokerExecuteLog.BrokerName() = "GlobalOTDTable_CustomOrder" ) {
      Global_ShowCell::CreateShowData_CustomOrder( globalOTDTable );
    }
    if ( global_BrokerExecuteLog.BrokerName() = "GlobalOTDTable_Forecast" ) {
    //  Global_ShowCell::CreateShowData_Forecast( globalOTDTable );
    }
    if ( global_BrokerExecuteLog.BrokerName() = "GlobalOTDTable_UnitOfMeasure_MP" ) {
      Global_ShowCell::GenerateDataThroughReflection( globalOTDTable, "Global_MappingUnitOfMeasure_MP" );
    }
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_GetMaterialData.qbl
@@ -24,10 +24,10 @@
    strMsg :="";
    
    try{
      if( Owner.MappingBOM(relsize )>0)
      if( GlobData.Global_MappingOperationBOM(relsize )>0)
      {
        // å¾—到下一级数据
        AllData:= selectset( GlobData, Global_MappingOperationBOM,object,object.ComponentCode()=ParentSKU);
        AllData:= selectset( GlobData, Global_MappingOperationBOM,object,object.ProductCode()=ParentSKU);
        ObjProduct := null( Product_MP,constcontent );
        ObjUnit := null( Unit,constcontent );
        MaterialType:="";
@@ -51,24 +51,24 @@
          traverse( AllData,Elements,Obj,not isnull( Obj))
          {
            // å¾—到当前已存在的物料信息(订单ID + SKU)
            ObjMaterial := select( Owner,H_MaterialInfo,ObjM,ObjM.ForecastID()=ForecastId and ObjM.SKU()=Obj.ProductCode());
            ObjMaterial := select( Owner,H_MaterialInfo,ObjM,ObjM.ForecastID()=ForecastId and ObjM.SKU()=Obj.ComponentCode());
            if( isnull( ObjMaterial))
            {
              // ç‰©æ–™ç±»åž‹
              MaterialType := Obj.ProductType();
              // å¾—到物料信息
              ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner,Obj.ProductCode());
              ObjProduct:= H_FunctionClass::SM_GetProductInfo(Owner,Obj.ComponentCode());
              if( not isnull( ObjProduct))
              {
                MaterialType:= ObjProduct.ParentID();
                MaterialName:=ObjProduct.Name();
              }
              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ProductCode());
              ObjUnit:= H_FunctionClass::SM_GetUnitBySKU( Owner,Obj.ComponentCode());
              if( not isnull( ObjUnit))
              {
                StockPoint:= ObjUnit.Name();
              }
              Owner.H_MaterialInfo(relnew,ParentSKU := Obj.ComponentCode(),SKU := Obj.ProductCode(),ForecastID := ForecastId,OrgCode := Obj.OrganCode(),VCode := VCode
              Owner.H_MaterialInfo(relnew,ParentSKU := ParentSKU,SKU := Obj.ComponentCode(),ForecastID := ForecastId,OrgCode := Obj.OrganCode(),VCode := VCode
                                    ,ID := H_FunctionClass::SM_GenerateID( "MI"),MaterialType := MaterialType,NeedDate := NDate
                                    ,NeedQty := [Number](ProductQty/NRate*NComponentsUsed).Round( 0),Unit := Obj.UnitOfMeasureName()
                                    ,StockPoint :=StockPoint,MaterialName := MaterialName );
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderHedgingEx.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,181 @@
Quintiq file version 2.0
#parent: #root
StaticMethod SM_OrderHedgingEx (
  MacroPlan Owner,
  String Operator
) as owning JSON
{
  Description: '填产后冲减'
  TextBody:
  [*
    /*******************************填产后订单冲减***********************
    *函数名称:SM_OrderHedgingEx
    *创 å»º äººï¼šyunying
    *创建时间:2023-09-27
    *描    è¿°ï¼šå¡«äº§åŽè®¢å•冲减,填产后的表:Owner.FillingCapacityOrder
    *参    æ•°ï¼šOperator æ“ä½œäºº
    *返 å›ž å€¼ï¼šJSON {Status: true æˆåŠŸ/false å¤±è´¥,Msg:"提示消息",Count: 0(冲减订单的数量)}
    *******************************************************************/
    // åˆå§‹åŒ–结果
    bStatus := false;
    strMsg :="";
    // å†²å‡æˆåŠŸæ¡æ•°
    nCount:=0;
    try
    {
      if(not isnull( Owner))
      {
        // èŽ·å–æ“ä½œè®¢å•
        NewOrders := selectset( Owner,FillingCapacityOrder,Obj,Obj.State() = "未冲减" or Obj.State() ="");
        if(NewOrders.Size()>0)
        {
          // æ–°è®¢å•与原订单冲减
          traverse( NewOrders,Elements,Obj)
          {
            if( (Obj.OrderType()="反签" or Obj.OrderType()="授权") and Obj.Quantity()>0 )
            {
              // å¾—到操作相关的反签订单
              ROrders:= select( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,
                                   ObjOrder.CustomerName() = Obj.Customer()
                                   and ObjOrder.ProductID()=Obj.ProductID()
                                   and ObjOrder.OrderTag() ="反签"
                                   );
              // åç­¾æ— å†²å‡ï¼Œç›´æŽ¥å‘订单中加入反签数据
              if( Obj.OrderType()="反签")
              {
                if( not isnull( ROrders))
                {
                  ROrders.Quantity(ROrders.Quantity()+Obj.Quantity());
                }
                else
                {
                  // æ–°å¢žè®¢å•
                  error( "----------------请实现新增反签订单功能代码---------------------");
                  // è®¢å•必要信息如下:
                  // OrderTag = "反签"
                  // Quantity = Obj.Quantity()
                  // å…¶ä»–信息继承当前的订单
                }
              }
              else if(Obj.OrderType()="授权")
              {
                // å¾—到操作相关的授权订单
                AOrders:= select( Owner,SalesDemand.astype( CustomerOrder ),ObjOrder,
                                   ObjOrder.CustomerName() = Obj.Customer()
                                   and ObjOrder.ProductID()=Obj.ProductID()
                                   and ObjOrder.OrderTag() ="授权"
                                   );
                if( not isnull( ROrders))
                {
                  // å½“前反签数量
                  RQty:=ROrders.Quantity();
                  // è®¡ç®—新的授权数量
                  AQty:= Obj.Quantity() - ROrders.Quantity();
                  // æŽˆæƒå¤§äºŽ0,反签被冲没,否则授权被冲,反签等于AQty的绝对值
                  if( AQty>=0)
                  {
                    RQty:=0;
                  }
                  else
                  {
                    RQty :=ROrders.Quantity() - Obj.Quantity();
                    AQty :=0;
                  }
                  // æ›´æ–°åç­¾æ•°æ®
                  if( RQty>=0)
                  {
                    ROrders.Quantity(RQty);
                  }
                  else
                  {
                    ROrders.Delete();
                  }
                  // æ›´æ–°æŽˆæƒæ•°æ®
                  if(AQty>0 )
                  {
                    if( not isnull( AOrders))
                    {
                      AOrders.Quantity(AOrders.Quantity()+AQty);
                    }
                    // æ–°å¢žæŽˆæƒè®¢å•
                    // error( "----------------请实现新增授权订单功能代码---------------------");
                    customOrder := CustomerOrder::Create( select( Owner, Product_MP, tmepPMP, tmepPMP.ID() = Obj.ProductID() ),
                                                          select( Owner, StockingPoint_MP, tempSPMP, tempSPMP.ID() = Obj.StockingPointID() ),
                                                          OS::GenerateGUIDAsString(),
                                                          Obj.OrderDate(),
                                                          AQty,
                                                          0.0,
                                                          "Normal",
                                                          Obj.SalesSegmentName(),
                                                          Obj.CurrencyID(),
                                                          Obj.UnitOfMeasureName(),
                                                          false,
                                                          Obj.Customer(),
                                                          Obj.CustomerID(),
                                                          "",
                                                          "",
                                                          true,
                                                          true,
                                                          false
                                                         );
                    customOrder.OrderTag( "授权" );
                    // è®¢å•必要信息如下:
                    // OrderTag = "授权"
                    // Quantity = AQty
                    // å…¶ä»–信息继承当前的订单
                  }
                }
                else
                {
                  // å°†æ–°æŽˆæƒæ•°æ®ç´¯åŠ åˆ°è®¢å•ä¸­
                  if( not isnull( AOrders))
                  {
                    AOrders.Quantity(AOrders.Quantity()+Obj.Quantity());
                  }
                  else
                  {
                    // æ–°å¢žæŽˆæƒè®¢å•
                    error( "----------------请实现新增授权订单功能代码---------------------");
                    // è®¢å•必要信息如下:
                    // OrderTag = "授权"
                    // Quantity = Obj.Quantity()
                    // å…¶ä»–信息继承当前的订单
                  }
                }
              }
              // æ›´æ–°å†²å‡çŠ¶æ€
              Obj.State("已冲减");
              nCount++;
            }
            else
            {
              // æ— æ³•识别的类型,或数量为0时暂不处理
              //strMsg :="订单类型:" + Obj.OrderType() + "无法冲减!";
            }
          }
          bStatus:=true;
          strMsg :="填产后冲减完成!";
        }
        else
        {
          strMsg :="无可冲减的数据!";
        }
      }
      else
      {
        strMsg :="加载数据失败,请创建或选择场景后再操作!";
      }
    }
    onerror
    {
      strMsg :="填产后订单冲减发生错误,请联系系统管理员!";
      // è®°å½•错误日志
    //  Owner.H_ErrorLogs(relnew,EClassName := "H_FunctionClass",EDateTime := DateTime::ActualGMTTime(),EFunctionName := "SM_OrderHedgingEx",
    //                     DeveloperInformation :=  e.DeveloperInformation(),ErrorNr := e.ErrorNr(),DetailedInformation := e.DetailedInformation(),
    //                     GeneralInformation := e.GeneralInformation());
    }
    return JSON::Object().Add( "Status",bStatus)
                         .Add( "Count",nCount)
                         .Add( "Msg",strMsg).Build();
  *]
}
_Main/BL/Type_H_FunctionClass/StaticMethod_SM_OrderReverseOrAuthorize.qbl
@@ -39,7 +39,7 @@
        nReverseQtyNew :=0;   //计算后的反签数量
        nAuthorizeQtyNew :=0; //计算后的授权数量
        nHaveForecastQty :=0; //有预测数量
        nNoHaveForecastQty:=0;//五预测数量
        nNoHaveForecastQty:=0;//无预测数量
        // èŽ·å–é¢„æµ‹æ•°é‡ï¼ˆå®¢æˆ·+SKU+月份 ç†è®ºæ˜¯æ²¡æœ‰ç‰©æ–™é¢„测)
        OrderForecast := select(Owner, H_OrderForecastRealQty , Obj, Obj.SKU() = SKU 
                                              and Obj.CustomCode() = CustomerCode 
_Main/BL/Type_MacroPlan/Method_MappingActualPISPIPData.qbl
@@ -3,13 +3,13 @@
Method MappingActualPISPIPData (
  Strings businessTypes,
  GlobalOTDTable globalOTDTable,
  Boolean nuclear
  Boolean nuclear,
  Strings organcodelist
)
{
  TextBody:
  [*
    // renhao Aug-14-2023 (created)
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingActualProductInStockingPointInPeriod,
                             actual,
_Main/BL/Type_MacroPlan/Method_MappingCustomerOrderData.qbl
@@ -2,7 +2,8 @@
#parent: #root
Method MappingCustomerOrderData (
  Strings businessTypes,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  Description: 'ETL订单预测'
@@ -14,7 +15,6 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingCustomOrder, item, true );
    } else {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listToDeal := selectset( globalOTDTable, 
                                 Global_MappingCustomOrder, 
                                 item, 
_Main/BL/Type_MacroPlan/Method_MappingExternalSupplyData.qbl
@@ -3,7 +3,8 @@
Method MappingExternalSupplyData (
  Strings businessTypes,
  Boolean nuclear,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
@@ -11,7 +12,6 @@
    // 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() );
    organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    listtodeal := selectset( globalOTDTable,
                             Global_MappingInventorySupply,
                             externalSupply, 
_Main/BL/Type_MacroPlan/Method_MappingForecastData.qbl
@@ -2,7 +2,8 @@
#parent: #root
Method MappingForecastData (
  Strings businessTypes,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  Description: 'ETL订单预测'
@@ -14,7 +15,6 @@
    if( isnull( businessTypes ) or businessTypes.Size() = 0 ) {
        listToDeal := selectset( globalOTDTable, Global_MappingForecast, item, item.Quantity() > 0 );
    } else {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listToDeal := selectset( globalOTDTable, 
                                 Global_MappingForecast, 
                                 item, 
_Main/BL/Type_MacroPlan/Method_MappingOperationBOMData.qbl
@@ -4,7 +4,8 @@
  Strings businessTypes,
  Boolean isKeyProduct,
  Boolean createPurchaseSupplyMaterial,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
@@ -14,7 +15,6 @@
    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, 
_Main/BL/Type_MacroPlan/Method_MappingOperationCostData.qbl
@@ -2,7 +2,8 @@
#parent: #root
Method MappingOperationCostData (
  GlobalOTDTable globalOTDTable,
  Strings businesstypes
  Strings businesstypes,
  Strings organcodelist
)
{
  Description: 'Get operation cost data from operation mapping'
@@ -10,24 +11,21 @@
  [*
    // Administrator Aug-21-2023 (created)
    // list to deal
    listtodeal := construct( structured[MappingOperation] );
    listtodeal := construct( structured[Global_MappingOperation] );
    
    if( isnull( businesstypes ) or businesstypes.Size() = 0 ) {
        listtodeal := selectset( this, MappingOperation, item, true );
        listtodeal := selectset( globalOTDTable, Global_MappingOperation, item, true );
    } else {
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
        listtodeal := selectset( this,
                                 MappingOperation,
        listtodeal := selectset( globalOTDTable, Global_MappingOperation,
                                 item, 
                                 ( businesstypes.Find( item.BusinessType() ) <> -1 ) and 
                                 ( organcodelist.Find( item.OrganCode() ) >= 0 ) );
    }
    
    // Get the list to deal with max sequence number
    listtodealwithmaxsn := construct( structured[MappingOperation] );
    listtodealwithmaxsn := construct( structured[Global_MappingOperation] );
    traverse( listtodeal, Elements, item ){
      maxsn := maxselect( this,
                          MappingOperation,
      maxsn := maxselect( globalOTDTable, Global_MappingOperation,
                          moperation, 
                          moperation.OrganCode() = item.OrganCode(), 
                          moperation.ProductID() = item.ProductID(), 
@@ -47,26 +45,31 @@
      if( count - [Number](count/1000) * 1000 = 0 or count = totalcount ){
        info( "Now is dealing with the " + count.AsQUILL() + "OperationCost " + "( " + count.AsQUILL() + "/" + totalcount.AsQUILL() + " ) " + (count/totalcount*100).Round( 1 ).AsQUILL() + "%" );
        }
      id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection();
      id := item.OrganCode() + "_" + item.ProductID() + "_" + item.ProcessSection()+"_" + [String]item.SequenceNumber();
      if( guard( item.Line(), "" ).Length() > 0 ) {
          id := id + "_" + item.Line();
        }
      operation := Operation::FindOperationTypeIndex( id );
      account := Account_MP::FindByName( this, "Operation cost" );
      isfromdb := false;
      existoperationcost := OperationCost::FindOperationCostTypeIndex( id );
      if( isnull( existoperationcost ) ){
        connecteditem := select( this,
                                 MappingOperationCost,
                                 moperationcost,
                                 moperationcost.OrgCode() = item.OrganCode(),
                                 moperationcost.ProductID() = item.ProductID() );
        cost := connecteditem.Cost();
        lengthoftime := connecteditem.LengthOfTime();
        start := connecteditem.Start();
        timeunit := connecteditem.TimeUnit();
        OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb );
        }
      if(not isnull(operation)){
            account := Account_MP::FindByName( this, "Operating cost" );
            isfromdb := false;
            existoperationcost := OperationCost::FindOperationCostTypeIndex( id );
            if( isnull( existoperationcost ) ){
              connecteditem := select( globalOTDTable,
                                       Global_MappingOperationCost,
                                       moperationcost,
                                       moperationcost.OrgCode() = item.OrganCode(),
                                       moperationcost.ProductID() = item.ProductID() );
              if( not isnull( connecteditem)){
                  cost := connecteditem.Cost();
                  lengthoftime := connecteditem.LengthOfTime();
                  start := connecteditem.Start();
                  timeunit := connecteditem.TimeUnit();
                  OperationCost::Create( id, operation, account, "Volume", start, timeunit, lengthoftime, cost, isfromdb );
                }
              }
      }
    }
  *]
}
_Main/BL/Type_MacroPlan/Method_MappingOperationData.qbl
@@ -2,7 +2,8 @@
#parent: #root
Method MappingOperationData (
  Strings businessTypes,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  TextBody:
@@ -11,7 +12,6 @@
    // èŽ·å–æœ‰åºçš„å¾…å¤„ç†è®°å½•
    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 ) and 
                                       ( organcodelist.Find( item.OrganCode() ) >= 0 ), 
_Main/BL/Type_MacroPlan/Method_MappingUnitData.qbl
@@ -2,7 +2,8 @@
#parent: #root
Method MappingUnitData (
  Strings businesstypes,
  GlobalOTDTable globalOTDTable
  GlobalOTDTable globalOTDTable,
  Strings organcodelist
)
{
  Description: 'Get unit data from operation mapping'
@@ -15,7 +16,6 @@
    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 ) and 
_Main/BL/Type_MacroPlan/StaticMethod_DoSync0.qbl
@@ -15,11 +15,26 @@
    // å¸ç§å’Œå¸ç§æ±‡çއ
    //Currency_MP::CreateCurrencyFromJson( macroPlan, jsonDataRow );
    info( "Prepare to do sync" )
    info( "Get organ code list" )
    organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
    if( not isnull( businessTypes ) and businessTypes.Size() > 0 ) {
        traverse( businessTypes, Elements, item ) {
            info( "Business type : " + item )  
        }
        organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, businessTypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
    }
    else{
      if( businessTypes.Size() = 0 ){
        if( not isnull( selectset( globalOTDTable, BusinessType, b, b.BusinessTypeName() = "" ) ) ){
          organcodelist := selectvalues( globalOTDTable, BusinessType.OrganCode, organ, organ.BusinessType().BusinessTypeName() = "", organ.OrganCodeName() );
          }
        }
      }
    if( organcodelist.Size() = 0 ){
      organcodelist := selectvalues( globalOTDTable, Global_MappingOperationBOM, bom,true, bom.OrganCode() );
      }
    info( "KeyProduct : " + [String]isKeyProduct )
    info( "Create purchase supply material : " + [String]createPurchaseSupplyMaterial )
    
@@ -38,7 +53,7 @@
    //info( "BaseConversionFactor Finished, Start Operation Data Broker" );
    //macroPlan.Broker_OTD_Operation().Execute();
    info( "Operation Data Broker Finished, Start Unit Mapping" );
    macroPlan.MappingUnitData( businessTypes ,globalOTDTable);
    macroPlan.MappingUnitData( businessTypes ,globalOTDTable, organcodelist);
    
    // åº“存点-3
    info( "Sales Segment Finished, Start Get StockingPoint From Api" )
@@ -82,11 +97,11 @@
    
    // å·¥è‰ºè·¯çº¿ + BOM-9
    info( "Unit Finished, Start Operation Mapping" );
    macroPlan.MappingOperationData( businessTypes ,globalOTDTable);
    macroPlan.MappingOperationData( businessTypes ,globalOTDTable, organcodelist );
    //info( "Operation Finished, Start BOM Data Broker" );
    //macroPlan.Broker_OTD_BOM().Execute();
    info( "BOM Data Broker Finished, Start BOM Mapping" );
    macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable );
    macroPlan.MappingOperationBOMData( businessTypes, isKeyProduct, createPurchaseSupplyMaterial,globalOTDTable, organcodelist );
    
    //车道信息-10
    info( "BOM Finished, Start Get Lanes From Api" );
@@ -118,26 +133,26 @@
    //info( "ProductInLane Finished, Start ActualPISPIP Data Broker" );
    //macroPlan.Broker_OTD_ActualPISPIP().Execute();
    info( "ActualPISPIP Data Broker Finished, Start ActualPISPIP Mapping" );
    macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct );
    macroPlan.MappingActualPISPIPData( businessTypes, globalOTDTable,isKeyProduct, organcodelist );
    
    // åœ¨é€”库存-14
    //info( "ActualPISPIP Finished, Start ExternalSupply Data Broker" );
    //macroPlan.Broker_OTD_ExternalSupply().Execute();
    info( "ExternalSupply Data Broker Finished, Start ExternalSupply Mapping" );
    macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable);
    macroPlan.MappingExternalSupplyData( businessTypes, isKeyProduct ,globalOTDTable, organcodelist );
    
    // åº“存成本-15
    InventoryValueAndCost::DoSync( macroPlan,globalOTDTable );
    
    // todo åˆ¶é€ æˆæœ¬-16
    info( "InventoryCost Finished, Start OperationCost Mapping" );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes );
    macroPlan.MappingOperationCostData( globalOTDTable, businessTypes, organcodelist );
    
    // è®¢å•预测-17
    Forecast::DoSync( macroPlan, businessTypes ,globalOTDTable);
    Forecast::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    
    // è®¢å•需求-18
    CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable);
    CustomerOrder::DoSync( macroPlan, businessTypes, globalOTDTable, organcodelist );
    
    //删除多余报错数据-19
    macroPlan.DeleteSnaityCheck();
_Main/BL/Type_PriorityFactor/StaticMethod_InitData.qbl
@@ -18,15 +18,15 @@
    {
          
          // æ·»åŠ äº‹ä¸šéƒ¨å¯¹åº”çš„é¢„åˆ¶ä¼˜å…ˆçº§å› å­æ•°æ®
          owner.PriorityFactor(relnew,Name := "客户策略" ,Desc := "将事业部计算的优先级,按该细分项比例阶梯确定该项得分。如:81%≤X≤100% 5分,61%≤X≤80% 4分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "客户等级" ,Desc := "根据需求数据中客户,匹配客户等级",BusinessType := businessType);
          owner.PriorityFactor(relnew,Name := "大张盈利水平" ,Desc := "1、获取客户*SKU大张盈利数 2、定义客户*SKU大张盈利数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "细分市场等级" ,Desc := "1、获取客户*SKU对应细分市场等级 2、匹配需求数据中客户及SKU对应细分市场评分等级,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "需求类型" ,Desc := "匹配不同需求种类,得到对应得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "订单下单时间" ,Desc := "根据需求订单中下单时间与需求时间差值,匹配阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "产品等级" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType );
          owner.PriorityFactor(relnew,Name := "客户策略" ,Desc := "将事业部计算的优先级,按该细分项比例阶梯确定该项得分。如:81%≤X≤100% 5分,61%≤X≤80% 4分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "客户等级" ,Desc := "根据需求数据中客户,匹配客户等级",BusinessType := businessType, Coefficient := 100);
          owner.PriorityFactor(relnew,Name := "大张盈利水平" ,Desc := "1、获取客户*SKU大张盈利数 2、定义客户*SKU大张盈利数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "细分市场等级" ,Desc := "1、获取客户*SKU对应细分市场等级 2、匹配需求数据中客户及SKU对应细分市场评分等级,得到对应阶梯得分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "需求类型" ,Desc := "匹配不同需求种类,得到对应得分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "订单下单时间" ,Desc := "根据需求订单中下单时间与需求时间差值,匹配阶梯得分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "产品等级" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "DOI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType, Coefficient := 100 );
          owner.PriorityFactor(relnew,Name := "DSI" ,Desc := "1、获取客户*SKU DOI&DSI数 2、定义客户*SKUDOI&DSI数阶梯得分 3、匹配需求数据中客户及SKU数据,得到对应阶梯得分", BusinessType := businessType, Coefficient := 100 );
          
          // ä¼˜å…ˆçº§å› å­ç»†åˆ†
          priorityFactorList := selectset( owner,PriorityFactor,p,
_Main/BL/Type_PriorityResult/StaticMethod_calculatePriorityResult.qbl
@@ -10,8 +10,14 @@
  [*
    // NBoTk Sep-26-2023 (created)
    
    // è®¡ç®—客户订单的优先级得分 å›žå¡«æƒé‡æ•°æ® ç”Ÿæˆæ–°çš„Priority明细数据
    // å…ˆåˆ é™¤åŽ†å²çš„è·‘åˆ†è¯¦æƒ…
    traverse( macroPlan,PriorityResult,p)
    {
          p.PriorityResultBusinessTypeDetail(relflush );
          p.Delete();
    }
    
    // è®¡ç®—客户订单的优先级得分 å›žå¡«æƒé‡æ•°æ® ç”Ÿæˆæ–°çš„Priority明细数据
    traverse( macroPlan,SalesDemand.astype( CustomerOrder ),e)
    {
         // äº‹ä¸šéƒ¨ä¿¡æ¯
@@ -27,8 +33,8 @@
         priorityResult := macroPlan.PriorityResult(relnew,CustomerOrderID := e.ID(),BusinessType := businessType,Customer := e.CustomerName(),CustomerID := e.CustomerID(),
                                                     DemandDate := e.EndDate(),ProductID := e.ProductID(),Quantity := e.Quantity(),SalesSegmentName := e.SalesSegmentName(),
                                                     StockingPointID := e.StockingPointID(),UnitOfMeasureName := e.UnitOfMeasureName()
                                                     );
                                                     );
         // åˆ¤æ–­æ˜¯é›†å›¢ è¿˜æ˜¯äº‹ä¸šéƒ¨
         if( businessType.FindString( "集团",0 ) <> -1)
         {
@@ -54,42 +60,73 @@
                                   result.PriorityResultScore()
                                   )
    
    // Quintiq优先级分10级 éœ€è¦åˆ†æ®µè®¡ç®—
    subLevel := resultList.Size() div 10;
    // Quintiq优先级分10级 éœ€è¦åˆ†æ®µè®¡ç®— å‘上取整
    subLevel := round( resultList.Size() div 10);
    subLevelCount := 0;
    
    priorityValue := 1;
    traverse( resultList,Elements,e)
    if( resultList.Size() <= 10 )
    {
        obj := selectobject( macroPlan,SalesDemand.astype( CustomerOrder ),order,
                             order.ID() = e.CustomerOrderID()
                             );
        // è®¢å•数据不为空再做处理
        if( not isnull( obj ) )
        traverse( resultList,Elements,e)
        {
              obj.PriorityName([String]priorityValue);
              // åˆ›å»ºä¼˜å…ˆçº§æ•°æ® éœ€è¦å…ˆæ¸…除上一次的计算结果
              // åˆ¤æ–­å½“前customerOrder是否存在
              oldPriority := selectobject( macroPlan,Priority,p,p.Name() = [String]priorityValue);
              if(isnull( oldPriority ) )
              {
                    macroPlan.Priority(relnew,Weight := priorityValue,Name := [String]priorityValue);
              }
            obj := selectobject( macroPlan,SalesDemand.astype( CustomerOrder ),order,
                         order.ID() = e.CustomerOrderID()
                         );
            // è®¢å•数据不为空再做处理
            if( not isnull( obj ) )
            {
                  obj.PriorityName([String]priorityValue);
                  // åˆ›å»ºä¼˜å…ˆçº§æ•°æ® éœ€è¦å…ˆæ¸…除上一次的计算结果
                  // åˆ¤æ–­å½“前customerOrder是否存在
                  oldPriority := selectobject( macroPlan,Priority,p,p.Name() = [String]priorityValue);
                  if(isnull( oldPriority ) )
                  {
                        macroPlan.Priority(relnew,Weight := priorityValue,Name := [String]priorityValue);
                  }
            }
            // åˆ¤æ–­è®¡ç®—分段数量与Quintiq原始优先级
            //优先级+1
            priorityValue := priorityValue + 1;
        }
    }
    else
    {
        traverse( resultList,Elements,e)
        {
            obj := selectobject( macroPlan,SalesDemand.astype( CustomerOrder ),order,
                                 order.ID() = e.CustomerOrderID()
                                 );
            // è®¢å•数据不为空再做处理
            if( not isnull( obj ) )
            {
                  obj.PriorityName([String]priorityValue);
                  // åˆ›å»ºä¼˜å…ˆçº§æ•°æ® éœ€è¦å…ˆæ¸…除上一次的计算结果
                  // åˆ¤æ–­å½“前customerOrder是否存在
                  oldPriority := selectobject( macroPlan,Priority,p,p.Name() = [String]priorityValue);
                  if(isnull( oldPriority ) )
                  {
                        macroPlan.Priority(relnew,Weight := priorityValue,Name := [String]priorityValue);
                  }
            }
            // åˆ¤æ–­è®¡ç®—分段数量与Quintiq原始优先级
            subLevelCount := subLevelCount + 1;
            if( subLevelCount = subLevel )
            {
                // å½“到达分段数量后 ä¼˜å…ˆçº§+1 åˆ†æ®µè®¡æ•°ä»Ž0开始
                if( priorityValue < 10 )
                {
                      priorityValue := priorityValue + 1;
                }
                subLevelCount := 0;
            }
        }
    
        // åˆ¤æ–­è®¡ç®—分段数量与Quintiq原始优先级
        subLevelCount := subLevelCount + 1;
        if( subLevelCount = subLevel )
        {
            // å½“到达分段数量后 ä¼˜å…ˆçº§+1 åˆ†æ®µè®¡æ•°ä»Ž0开始
            if( priorityValue < 10 )
            {
                  priorityValue := priorityValue + 1;
            }
            subLevelCount := 0;
        }
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgTest.def
@@ -5,13 +5,17 @@
  BaseType: 'WebActionBarGroup'
  Children:
  [
    Component btnTest
    Component btnTestAttempt
    {
      #keys: '[414702.0.358311907]'
      #keys: '[414502.0.409422371]'
      BaseType: 'WebButton'
      Children:
      [
        #child: cmTestAttempt
      ]
      Properties:
      [
        Image: 'WATER_FISH'
        Image: 'ANTENNA'
        Label: '测试视图'
        Taborder: 0
      ]
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_cmTestAttempt.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,78 @@
Quintiq file version 2.0
Component cmTestAttempt
{
  #keys: '[414502.0.409457922]'
  BaseType: 'WebContextMenu'
  Children:
  [
    Component mnCapacityAllocationAndProductionFilling
    {
      #keys: '[414502.0.409457923]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'WATER_FISH'
        Taborder: 0
        Title: '产能分配&填产'
      ]
    }
    Component mnAnnualProductionAndSalesReview
    {
      #keys: '[414502.0.409488417]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'PIG'
        Taborder: 5
        Title: '年度产销复盘'
      ]
    }
    Component mnPanelPullingMaterialOperationsOfEachBusinessUnit
    {
      #keys: '[414702.1.5481991]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'BANANA'
        Taborder: 1
        Title: '面板拉料_事业部操作'
      ]
    }
    Component mnPanelPullingMaterialGroupOperations
    {
      #keys: '[414702.1.5522564]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'CLIENT_NETWORK'
        Taborder: 2
        Title: '面板拉料_集团操作'
      ]
    }
    Component mn224
    {
      #keys: '[414702.1.5593849]'
      BaseType: 'WebMenu'
      Properties:
      [
        Separator: true
        Taborder: 4
      ]
    }
    Component mnDockingERPForPRRelease
    {
      #keys: '[414702.1.5920760]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'BEER_GLASS'
        Taborder: 3
        Title: '对接ERP进行PR释放'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_abgTest_btnTest_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClic.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: cmTestAttempt/mnAnnualProductionAndSalesReview
Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnAnnualProductionAndSalesReview_OnClick
{
  #keys: '[414502.0.409488583]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "年度产销复盘", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFillin.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: cmTestAttempt/mnCapacityAllocationAndProductionFilling
Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnCapacityAllocationAndProductionFilling_OnClick
{
  #keys: '[414502.0.409488282]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "Test", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnDockingERPForPRRelease_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: cmTestAttempt/mnDockingERPForPRRelease
Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnDockingERPForPRRelease_OnClick
{
  #keys: '[414702.1.7136407]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "对接ERP进行PR释放", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPanelPullingMaterialGroupOperations_O.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: cmTestAttempt/mnPanelPullingMaterialGroupOperations
Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnPanelPullingMaterialGroupOperations_OnClick
{
  #keys: '[414702.1.5773124]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "面板拉料_集团操作", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_TIANMA_JITUAN_cmTestAttempt_mnPanelPullingMaterialOperationsOfEachB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: cmTestAttempt/mnPanelPullingMaterialOperationsOfEachBusinessUnit
Response OnClick () id:Response_TIANMA_JITUAN_cmTestAttempt_mnPanelPullingMaterialOperationsOfEachBusinessUnit_OnClick
{
  #keys: '[414702.1.4243881]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "面板拉料_各事业部操作", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogChoosePriorityPolicy/Response_pnlActions_btnOk_OnClick.def
@@ -11,7 +11,7 @@
      name := PriorityPolicyStringList.Text();
      dlg := construct( DialogChoosePriorityPolicy );
      dlg.CalculatePriorityResult(name);
      dlg.Close();
      Form.Close();
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Component_pnlContent.def
@@ -70,7 +70,7 @@
        DataBinding: 'DataHolderFillingCapacityOrder.Data.Quantity'
        Label: '数量'
        Mask: 'REAL'
        Taborder: 12
        Taborder: 13
      ]
    }
    Component dropDownStringListUnitOfMeasureName id:dropDownStringListUnitOfMeasureName_750
@@ -97,7 +97,7 @@
        DataBinding: 'DataHolderFillingCapacityOrder.Data.SalesAmount'
        Label: '销售额'
        Mask: 'NUMBER'
        Taborder: 13
        Taborder: 14
      ]
    }
    Component dsDemandDate
@@ -108,7 +108,7 @@
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.DemandDate'
        Label: '需求日期'
        Taborder: 15
        Taborder: 16
      ]
    }
    Component dsForecastDemandDate
@@ -119,7 +119,7 @@
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.ForecastDemandDate'
        Label: '预期需求日期'
        Taborder: 14
        Taborder: 15
      ]
    }
    Component ddlSalesSegment
@@ -268,7 +268,7 @@
      [
        DataBinding: 'DataHolderFillingCapacityOrder.Data.Customer'
        Label: 'Customer name'
        Taborder: 10
        Taborder: 11
      ]
    }
    Component efCustomID
@@ -278,7 +278,7 @@
      Properties:
      [
        Label: 'Customer ID'
        Taborder: 11
        Taborder: 12
      ]
    }
    Component ddslOrderType
@@ -290,7 +290,34 @@
        DataBinding: 'DataHolderFillingCapacityOrder.Data.OrderType'
        Label: '订单类型'
        Strings: '反签;授权'
        Taborder: 16
        Taborder: 17
      ]
    }
    Component ddlCurrency_MP
    {
      #keys: '[414502.0.395021898]'
      BaseType: 'WebDropDownList'
      Databinding: 'Currency_MP'
      Children:
      [
        Component deContent593
        {
          #keys: '[414502.0.395021900]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'Currency_MP'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: '货币'
        Taborder: 10
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_DialogFillingCapacityOrder/Response_pnlActions_btnOk_OnClick.def
@@ -35,7 +35,8 @@
                                        ForecastDemandDate := dsForecastDemandDate.Date(),
                                        DemandDate         := dsDemandDate.Date(),
                                        OrderType          := ddslOrderType.Text(),
                                        SalesAmount        := [Number]edtSalesAmount.Text()
                                        SalesAmount        := [Number]edtSalesAmount.Text(),
                                        CurrencyID         := ddlCurrency_MP.Data().ID()
                                       );
      } else {
        data.ProductID( guard( ddlProduct_MP.Data().ID(), "null" ) );
@@ -49,6 +50,7 @@
        data.DemandDate( dsDemandDate.Date() );
        data.OrderType( ddslOrderType.Text() );
        data.SalesAmount( [Number]edtSalesAmount.Text() );
        data.CurrencyID( ddlCurrency_MP.Data().ID() );
      }
      
      Form.Close();
_Main/UI/MacroPlannerWebApp/Component_FormFillingCapacityOrder/Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#parent: PanelFillingCapacityOrder/ButtonDeduct
Response OnClick () id:Response_PanelFillingCapacityOrder_ButtonDeduct_OnClick
{
  #keys: '[414502.0.395021805]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      //H_FunctionClass::SM_OrderHedgingEx( MacroPlan, ApplicationMacroPlanner.GetUserName() );
      FillingCapacityOrder::OrderOffset( MacroPlan );
      WebMessageBox::Success( "冲减成功!!!", true );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption1.def
@@ -21,7 +21,7 @@
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Forecast'
        Label: 'Forecast '
        Taborder: 1
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption2#456.def
@@ -21,7 +21,7 @@
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Operation'
        Label: 'Operation '
        Taborder: 1
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Component_PanelInterfaceOption4.def
@@ -41,7 +41,7 @@
      BaseType: 'WebCheckbox'
      Properties:
      [
        Label: 'Lane'
        Label: 'Lane '
        Taborder: 3
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_ListInterfaceTest_MenuCreateShowData_OnClick.def
@@ -8,15 +8,25 @@
  CanBindMultiple: false
  DefinitionID => /ListInterfaceTest/Responsedef_ListInterfaceTest_WebMenu_OnClick
  Initiator: 'MenuCreateShowData'
  Precondition:
  [*
    //flag := selection.BrokerName() = "GlobalOTDTable_CustomOrder"
    //
    //if ( not flag ) {
    //  feedback := "暂不支持!!!";
    //}
    //
    //return flag;
  *]
  QuillAction
  {
    Body:
    [*
      GlobalOTDTable.Global_ShowRow( relflush );
      GlobalOTDTable.Global_ShowColumn( relflush );
      GlobalOTDTable.Global_ShowCell( relflush );
      Global_ShowCell::ShowData( GlobalOTDTable, selection );
      //GlobalOTDTable.Global_ShowRow( relflush );
      //GlobalOTDTable.Global_ShowColumn( relflush );
      //GlobalOTDTable.Global_ShowCell( relflush );
      //
      //Global_ShowCell::ShowData( GlobalOTDTable, selection );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormInterfaceTest/Response_PanelInterfaceTest_ButtonSynchronizeDataToMacroPlan_OnClick.def
@@ -14,7 +14,9 @@
    Body:
    [*
      GlobalOTDTable.SynchronizeDataToMacroPlan( MacroPlan, 
                                                 CheckboxUnitOfMeasure_MP.Checked()
                                                 ApplicationMacroPlanner.GetUserName(),
                                                 CheckboxUnitOfMeasure_MP.Checked(),
                                                 CheckboxCustomOrder.Checked()
                                                );
      
      WebMessageBox::Success( "同步成功!", true );
_Main/UI/MacroPlannerWebApp/Component_FormOrderLock/Response_PanelOrderLockHeader_545_ButtonOrderLockHeaderFresh_OnClick.def
@@ -13,7 +13,8 @@
      macroplan := MacroPlan;
      global := GlobalOTDTable;
      businesstypes := DataHolderOrderLockGlobal.Data().BusinessType().Tokenize( ',' );
      CustomerOrder::DoSync( macroplan, businesstypes, global );
      organcodelist := selectvalues( global, BusinessType.OrganCode, organ, businesstypes.Find( organ.BusinessType().BusinessTypeName() ) <> -1, organ.OrganCodeName() );
      CustomerOrder::DoSync( macroplan, businesstypes, global, organcodelist );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Component_listContextMenuPriorityFactor.def
@@ -5,39 +5,6 @@
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEdit
    {
      #keys: '[414382.0.485622263]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 4
        Title: '编辑'
      ]
    }
    Component MenuNew
    {
      #keys: '[414382.0.593001800]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_ADD'
        Taborder: 3
        Title: '新增'
      ]
    }
    Component MenuDel
    {
      #keys: '[414382.0.593001811]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_DELETE'
        Taborder: 5
        Title: '删除'
      ]
    }
    Component MenuInit
    {
      #keys: '[414382.0.600301960]'
@@ -45,7 +12,7 @@
      Properties:
      [
        Image: 'GEAR_NEW'
        Taborder: 6
        Taborder: 3
        Title: '初始化'
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DataHolderPriorityFactorSelect_OnDataChanged.def
@@ -9,8 +9,8 @@
  {
    Body:
    [*
      data := selectset( MacroPlan,PriorityFactor,p,true);
      this.Data(&data);
      //data := selectset( MacroPlan,PriorityFactor,p,true);
      //this.Data(&data);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnCreated.def
@@ -9,9 +9,8 @@
  {
    Body:
    [*
      info( "create" + DropDownStringListBusinessType.Text());
      list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      DataHolderPriorityFactorSelect.Data(&list);
      //list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      //DataHolderPriorityFactorSelect.Data(&list);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_DropDownStringListBusinessType_OnSelectionChanged.def
@@ -9,9 +9,8 @@
  {
    Body:
    [*
      info( "selection" + DropDownStringListBusinessType.Text());
      list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      DataHolderPriorityFactorSelect.Data(&list);
      //list := PriorityFactor::GetDataByBusinessType( MacroPlan, DropDownStringListBusinessType.Text());
      //DataHolderPriorityFactorSelect.Data(&list);
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuDel_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuEdit_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/Response_ListPriorityFactor_MenuNew_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactor/_ROOT_Component_FormPriorityFactor.def
@@ -12,6 +12,21 @@
      #keys: '[414382.0.453562359]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[PriorityFactor]*'
      Children:
      [
        Component DataExtractorPriorityFactorSelect
        {
          #keys: '[414382.0.608512605]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'PriorityFactor'
          ]
        }
      ]
      Properties:
      [
        Taborder: 1
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Component_listContextMenuPriorityFactorGrading.def
@@ -3,20 +3,6 @@
{
  #keys: '[414382.0.479530873]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuEdit
    {
      #keys: '[414382.0.478491125]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'GEAR_EDIT'
        Taborder: 3
        Title: '编辑'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
_Main/UI/MacroPlannerWebApp/Component_FormPriorityFactorGrading/Response_ListPriorityFactorGrading_MenuEdit_OnClick.def
ÎļþÒÑɾ³ý
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyCoefficient_902_ButtonCommit_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.506250033]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonAddPriorityPolicy_OnClick.def
@@ -7,9 +7,18 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    feedback := "该优先级因子已被选择."
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    
    return not LabelFormula.Text() ~ DropDownStringList.Text();
    if( not check)
    {
        // åˆ¤æ–­è¯¥ä¼˜å…ˆçº§å› å­æ˜¯å¦å·²ç»è¢«é€‰æ‹©
        check := LabelFormula.Text() ~ DropDownStringList.Text();
        feedback := "该优先级因子已被选择."
    }
    return not check;
  *]
  QuillAction
  {
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonDivide_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.500261587]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonLeftParenthesis_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.500261667]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonMultiply_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.500261507]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRightParenthesis_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.500261748]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonRollBack_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.506055261]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_ButtonSubtract_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.500261427]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PanelPriorityPolicyOperationButton_Buttonplus_OnClick.def
@@ -5,6 +5,13 @@
  #keys: '[414382.0.500261347]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    // å½“前是否有选中的优先级策略
    feedback := "请先选择一条优先级策略后再进行编辑公式";
    check := PanelPriorityPolicyOperationName.Text() = "";
    return not check;
  *]
  QuillAction
  {
    Body:
_Main/UI/MacroPlannerWebApp/Component_FormPriorityPolicy/Response_PriorityPolicyBusinessType_OnSelectionChanged.def
@@ -11,6 +11,12 @@
    [*
      list := PriorityPolicy::GetDataByBusinessType( MacroPlan, PriorityPolicyBusinessType.Text());
      DataHolderPriorityPolicyShowList.Data(&list);
      PanelPriorityPolicyOperationName.Text("");
      LabelFormula.Text("");
      LabelCalculateValue.Text("");
      data := shadow( null( PriorityPolicy ) );
      DataHolderEditPriorityPolicy.Data( &data );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_ListProduct#844.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component ListProduct id:ListProduct_844 #extension
{
  Children:
  [
    Component DataSetLevelRootProduct #extension
    {
      Children:
      [
        #child: listContextMenuProduct_1
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_PanelList.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
Component PanelList #extension
{
  Children:
  [
    #child: ListProduct_844
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Component_listContextMenuProduct#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,28 @@
Quintiq file version 2.0
Component listContextMenuProduct id:listContextMenuProduct_1 #extension
{
  Children:
  [
    Component MenuMarkingPanelMaterial
    {
      #keys: '[414502.0.406261865]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'EARTH2'
        Taborder: 11
        Title: '标记面板物料'
      ]
    }
    Component Menu860
    {
      #keys: '[414502.0.406252405]'
      BaseType: 'WebMenu'
      Properties:
      [
        Separator: true
        Taborder: 10
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/Response_TIANMA_JITUAN_ListProduct_844_MenuMarkingPanelMaterial_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListProduct_844
Response OnClick (
  Product_MP selection
) id:Response_ListProduct_844_MenuMarkingPanelMaterial_OnClick
{
  #keys: '[414502.0.406201138]'
  CanBindMultiple: false
  DefinitionID => /ListProduct_844/Responsedef_ListProduct_844_WebMenu_OnClick
  Initiator: 'MenuMarkingPanelMaterial'
  QuillAction
  {
    Body:
    [*
      selection.IsPanelMaterial( not selection.IsPanelMaterial() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormProducts/_ROOT_Component_FormProducts.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: LibMacroPlannerWebUI
OrphanComponent FormProducts #extension
{
  Children:
  [
    #child: PanelList
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_ListCustomOrder.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListCustomOrder
{
  #keys: '[414502.0.410384594]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorCustomOrder
    {
      #keys: '[414502.0.410384595]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'Global_MappingCustomOrder'
      ]
    }
    #child: listActionBarPageCustomOrder
    Component DataSetLevelCustomOrder
    {
      #keys: '[414502.0.410384600]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuCustomOrder
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Customer","title":"Customer","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Customer"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CustomerID","title":"CustomerID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CustomerID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsAvailable","title":"IsAvailable","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsAvailable"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderDate","title":"OrderDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderID","title":"OrderID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderLineID","title":"OrderLineID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderLineID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderTime","title":"OrderTime","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderTime"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"OrderType","title":"OrderType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"OrderType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ProductGrade","title":"ProductGrade","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"ProductGrade"}},{"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":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SegmentPriority","title":"SegmentPriority","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SegmentPriority"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"SheetProfitability","title":"SheetProfitability","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SheetProfitability"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
        ContextMenu: 'listContextMenuCustomOrder'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_ListForecast.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListForecast
{
  #keys: '[414502.0.410501478]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorForecast
    {
      #keys: '[414502.0.410501479]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'Global_MappingForecast'
      ]
    }
    #child: listActionBarPageForecast
    Component DataSetLevelForecast
    {
      #keys: '[414502.0.410501484]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuForecast
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"BusinessType","title":"BusinessType","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"BusinessType"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"CurrencyID","title":"CurrencyID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"CurrencyID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"ID","title":"ID","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"ID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Price","title":"Price","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Price"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"PriorityName","title":"PriorityName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"PriorityName"}},{"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":"SalesSegmentName","title":"SalesSegmentName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"SalesSegmentName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StockingPointID","title":"StockingPointID","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StockingPointID"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"UnitOfMeasureName","title":"UnitOfMeasureName","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"UnitOfMeasureName"}}]'
        ContextMenu: 'listContextMenuForecast'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_ListUnitOfMeasure_MP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
Component ListUnitOfMeasure_MP
{
  #keys: '[414502.0.410391545]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorUnitOfMeasure_MP
    {
      #keys: '[414502.0.410391546]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'GlobalOTDTable'
        Source: 'GlobalOTDTable'
        Taborder: 0
        Transformation: 'Global_MappingUnitOfMeasure_MP'
      ]
    }
    #child: listActionBarPageUnitOfMeasure_MP
    Component DataSetLevelUnitOfMeasure_MP
    {
      #keys: '[414502.0.410391551]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuUnitOfMeasure_MP
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"IsDefault","title":"IsDefault","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"IsDefault"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"Name"}}]'
        ContextMenu: 'listContextMenuUnitOfMeasure_MP'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_MatrixEditorShowInterfaceData.def
@@ -93,5 +93,6 @@
    ContextMenu: 'matrixeditorContextMenuShowInterfaceData'
    Rows: 'MatrixEditorRowsShowInterfaceData'
    Taborder: 0
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelCustomOrder#682.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelCustomOrder
{
  #keys: '[414502.0.409352936]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListCustomOrder
  ]
  Properties:
  [
    Taborder: 0
    Title: 'CustomOrder'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelForecast.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelForecast
{
  #keys: '[414502.0.409524617]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListForecast
  ]
  Properties:
  [
    Taborder: 1
    Title: 'Forecast '
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelInterfaceDataDisplayContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
Component PanelInterfaceDataDisplayContent
{
  #keys: '[414502.0.409352883]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelCustomOrder
    #child: PanelForecast
    #child: PanelUnitOfMeasure_MP
  ]
  Properties:
  [
    Orientation: 'tab'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_PanelUnitOfMeasure_MP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelUnitOfMeasure_MP
{
  #keys: '[414502.0.410390401]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListUnitOfMeasure_MP
  ]
  Properties:
  [
    Taborder: 2
    Title: 'UnitOfMeasure_MP'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listActionBarPageCustomOrder.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageCustomOrder
{
  #keys: '[414502.0.410384597]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listActionBarPageForecast.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageForecast
{
  #keys: '[414502.0.410501481]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listActionBarPageUnitOfMeasure_MP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageUnitOfMeasure_MP
{
  #keys: '[414502.0.410391548]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listContextMenuCustomOrder.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuCustomOrder
{
  #keys: '[414502.0.410384602]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listContextMenuForecast.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuForecast
{
  #keys: '[414502.0.410501486]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/Component_listContextMenuUnitOfMeasure_MP.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listContextMenuUnitOfMeasure_MP
{
  #keys: '[414502.0.410391553]'
  BaseType: 'listContextMenu'
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShowInterfaceData/_ROOT_Component_FormShowInterfaceData.def
@@ -8,6 +8,7 @@
  Children:
  [
    #child: MatrixEditorShowInterfaceData
    #child: PanelInterfaceDataDisplayContent
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_FrmAuthorizeAndCountersign_Order/Response_OnCreated.def
@@ -23,18 +23,10 @@
          lb_SKUCode_FAAC.Text(SelForecast.Get( "SKU").GetString());
          lb_SKUName_FAAC.Text("产品");
          lb_Util_FAAC.Text(SelForecast.Get( "Util").GetString());
          lb_SKUName_FAAC.Text(SelForecast.Get( "SKUName").GetString());
          txt_CustomID_FAAC.Text(SelForecast.Get( "CustomCode").GetString());
          txt_CustomName_FAAC.Text(SelForecast.Get( "CustomName").GetString());
          lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName());
      //    StrValue := SelectItem.Value().Tokenize( ";");
      //    lb_SKUCode_FAAC.Text(StrValue.Element( 0));
      //    lb_SKUName_FAAC.Text("产品");
      //    lb_Operator_FAAC.Text("");
      //    lb_Util_FAAC.Text(StrValue.Element( 1));
      //    txt_CustomID_FAAC.Text(StrValue.Element( 2));
      //    txt_CustomName_FAAC.Text(StrValue.Element( 3));
      //    lb_Operator_FAAC.Text(ApplicationMacroPlanner.GetUserName());
        }
      }
    *]
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_List710.def
@@ -36,6 +36,6 @@
  ]
  Properties:
  [
    Taborder: 1
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Component_Panel391.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component Panel391
{
  #keys: '[414724.0.193860534]'
  BaseType: 'WebPanel'
  Children:
  [
    Component Button655
    {
      #keys: '[414724.0.193860558]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'BULL'
        Label: '填产冲减'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/Response_Panel391_Button655_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#parent: Panel391/Button655
Response OnClick () id:Response_Panel391_Button655_OnClick
{
  #keys: '[414724.0.194975663]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan);
  *]
  QuillAction
  {
    Body:
    [*
      HResult := H_FunctionClass::SM_OrderHedgingEx( MacroPlan,"测试用户" );
      Msg := HResult.Get( "Msg").GetString();
      if( HResult.Get( "Status").GetBoolean())
      {
        if( Msg.Length()>0)
        {
          WebMessageBox::Information(Msg);
        }
      }
      else
      {
        if( Msg.Length()>0)
        {
          WebMessageBox::Warning(Msg);
        }
        else
        {
          WebMessageBox::Information("运行错误!");
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FrmErrorLogs/_ROOT_Component_FrmErrorLogs.def
@@ -30,9 +30,10 @@
      ]
      Properties:
      [
        Taborder: 0
        Taborder: 1
      ]
    }
    #child: Panel391
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Views/Test.vw
@@ -310,6 +310,10 @@
        }
        components
        {
          FormFillingCapacityOrder_PanelFillingCapacityOrder
          {
            sizeRatio: 1
          }
          FormFillingCapacityOrder_ListFillingCapacityOrder
          {
          }
@@ -436,536 +440,19 @@
          }
        }
      }
      form_FormPriorityPolicy
      {
        title: 'QTIANMA_JITUAN::FormPriorityPolicy'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPriorityPolicy'
        layout
        {
          mode: 'open'
          rowPosition: 32
          rowSpan: 13
          columnPosition: 5
          columnSpan: 8
        }
        components
        {
          FormPriorityPolicy_ListPriorityPolicy
          {
          }
          FormPriorityPolicy_DataSetLevelPriorityPolicy
          {
            groupDepth: -1
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Formula
            {
              columnId: 'Formula'
              dataPath: 'Formula'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CalculateValue
            {
              columnId: 'CalculateValue'
              dataPath: 'CalculateValue'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_Desc
            {
              columnId: 'Desc'
              dataPath: 'Desc'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
          }
          FormPriorityPolicy_PanelPriorityPolicyOperation
          {
            sizeRatio: 1
          }
          FormPriorityPolicy_PanelPriorityPolicyOperationButton
          {
            sizeRatio: 1
          }
          FormPriorityPolicy_PanelPriorityPolicyCoefficient
          {
            sizeRatio: 1
          }
        }
      }
      form_FormPriorityResult
      {
        title: 'QTIANMA_JITUAN::FormPriorityResult'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPriorityResult'
        layout
        {
          mode: 'open'
          rowPosition: 45
          rowSpan: 17
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormPriorityResult_PanelPriorityResult
          {
            sizeRatio: 1
          }
          FormPriorityResult_ListPriorityResult
          {
          }
          FormPriorityResult_DataSetLevelPriorityResult
          {
            groupDepth: -1
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 6
              subtotals: ''
              width: 150
            }
            column_DemandDate
            {
              columnId: 'DemandDate'
              dataPath: 'DemandDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_PriorityResultScore
            {
              columnId: 'PriorityResultScore'
              dataPath: 'PriorityResultScore'
              dataType: 'real'
              index: 8
              subtotals: ''
              width: 150
            }
          }
          FormPriorityResult_PanelPriorityResultDetails
          {
            sizeRatio: 1
          }
          FormPriorityResult_ListPriorityResultBusinessTypeDetails
          {
          }
          FormPriorityResult_DataSetLevelPriorityResultDetails
          {
            groupDepth: -1
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 4
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 5
              subtotals: ''
              width: 150
            }
            column_DemandDate
            {
              columnId: 'DemandDate'
              dataPath: 'DemandDate'
              dataType: 'date'
              index: 6
              subtotals: ''
              width: 150
            }
            column_PriorityResultScore
            {
              columnId: 'PriorityResultScore'
              dataPath: 'PriorityResultScore'
              dataType: 'real'
              index: 7
              subtotals: ''
              width: 150
            }
            column_PriorityPolicyName
            {
              columnId: 'PriorityPolicyName'
              dataPath: 'PriorityPolicyName'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_PriorityFactorName
            {
              columnId: 'PriorityFactorName'
              dataPath: 'PriorityFactorName'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_PriorityFactorGradingName
            {
              columnId: 'PriorityFactorGradingName'
              dataPath: 'PriorityFactorGradingName'
              dataType: 'string'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityTotalScore
            {
              columnId: 'PriorityTotalScore'
              dataPath: 'PriorityTotalScore'
              dataType: 'real'
              index: 11
              subtotals: ''
              width: 150
            }
          }
          FormPriorityResult_ListPriorityResultGroupDetails
          {
          }
          FormPriorityResult_DataSetLevelPriorityResultDetails872
          {
            groupDepth: -1
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'real'
              index: 4
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 5
              subtotals: ''
              width: 150
            }
            column_DemandDate
            {
              columnId: 'DemandDate'
              dataPath: 'DemandDate'
              dataType: 'date'
              index: 6
              subtotals: ''
              width: 150
            }
            column_PriorityResultScore
            {
              columnId: 'PriorityResultScore'
              dataPath: 'PriorityResultScore'
              dataType: 'real'
              index: 7
              subtotals: ''
              width: 150
            }
            column_PriorityPolicyName
            {
              columnId: 'PriorityPolicyName'
              dataPath: 'PriorityPolicyName'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_PriorityFactorName
            {
              columnId: 'PriorityFactorName'
              dataPath: 'PriorityFactorName'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_PriorityFactorGradingName
            {
              columnId: 'PriorityFactorGradingName'
              dataPath: 'PriorityFactorGradingName'
              dataType: 'string'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityTotalScore
            {
              columnId: 'PriorityTotalScore'
              dataPath: 'PriorityTotalScore'
              dataType: 'real'
              index: 11
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPriorityFactor
      {
        title: 'QTIANMA_JITUAN::FormPriorityFactor'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPriorityFactor'
        layout
        {
          mode: 'open'
          rowPosition: 37
          rowSpan: 8
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormPriorityFactor_ListPriorityFactor
          {
          }
          FormPriorityFactor_DataSetLevelPriorityFactor
          {
            groupDepth: -1
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Coefficient
            {
              columnId: 'Coefficient'
              dataPath: 'Coefficient'
              dataType: 'real'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Desc
            {
              columnId: 'Desc'
              dataPath: 'Desc'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPriorityFactorGrading
      {
        title: 'QTIANMA_JITUAN::FormPriorityFactorGrading'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPriorityFactorGrading'
        layout
        {
          mode: 'open'
          rowPosition: 32
          rowSpan: 5
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormPriorityFactorGrading_ListPriorityFactorGrading
          {
          }
          FormPriorityFactorGrading_DataSetLevelPriorityFactorGrading
          {
            groupDepth: -1
            column_GradingName
            {
              columnId: 'GradingName'
              dataPath: 'GradingName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_GradeValueStr
            {
              columnId: 'GradeValueStr'
              dataPath: 'GradeValueStr'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_GradeDesc
            {
              columnId: 'GradeDesc'
              dataPath: 'GradeDesc'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    image: 'BEAR'
    page: ''
    group: ''
    index: 0
    image: 'BEAR'
    description: ''
  }
  formatversion: 2
  id: 'Test'
  name: 'Test'
  name: '产能分配_填产'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/¶Ô½ÓERP½øÐÐPRÊÍ·Å.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,168 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormWorkOrderType
      {
        title: 'QTIANMA_JITUAN::FormWorkOrderType'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormWorkOrderType'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 1
          columnSpan: 3
        }
        components
        {
          FormWorkOrderType_ListWorkOrderType
          {
          }
          FormWorkOrderType_DataSetLevelWorkOrderType
          {
            groupDepth: -1
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_TypeName
            {
              columnId: 'TypeName'
              dataPath: 'TypeName'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormIssueWorkOrder
      {
        title: 'QTIANMA_JITUAN::FormIssueWorkOrder'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormIssueWorkOrder'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 4
          columnSpan: 9
        }
        components
        {
          FormIssueWorkOrder_PanelButton
          {
            sizeRatio: 1
          }
          FormIssueWorkOrder_PanelIssueWorkOrder
          {
            sizeRatio: 1
          }
          FormIssueWorkOrder_ListIssueWorkOrder
          {
          }
          FormIssueWorkOrder_DataSetLevelIssueWorkOrder
          {
            groupDepth: -1
            column_ProductionWorkOrderNumber
            {
              columnId: 'ProductionWorkOrderNumber'
              dataPath: 'ProductionWorkOrderNumber'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_ProductModel
            {
              columnId: 'ProductModel'
              dataPath: 'ProductModel'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_MaterialDescription
            {
              columnId: 'MaterialDescription'
              dataPath: 'MaterialDescription'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_StartDate
            {
              columnId: 'StartDate'
              dataPath: 'StartDate'
              dataType: 'date'
              index: 3
              subtotals: ''
              width: 150
            }
            column_EndDate
            {
              columnId: 'EndDate'
              dataPath: 'EndDate'
              dataType: 'date'
              index: 4
              subtotals: ''
              width: 150
            }
            column_PlannedQuantity
            {
              columnId: 'PlannedQuantity'
              dataPath: 'PlannedQuantity'
              dataType: 'real'
              index: 5
              subtotals: ''
              width: 150
            }
            column_WorkOrderType
            {
              columnId: 'WorkOrderType'
              dataPath: 'WorkOrderType'
              dataType: 'string'
              index: 6
              subtotals: ''
              width: 150
            }
            column_WorkOrderStatus
            {
              columnId: 'WorkOrderStatus'
              dataPath: 'WorkOrderStatus'
              dataType: 'string'
              index: 7
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
    image: 'INDUSTRIAL_ROBOT'
    description: ''
  }
  formatversion: 2
  id: '对接ERP进行PR释放'
  name: '对接ERP进行PR释放'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/Äê¶È²úÏú¸´ÅÌ.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,777 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormCapacityAndSaleBudge
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudge'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudge'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 1
          columnSpan: 2
        }
        components
        {
          FormCapacityAndSaleBudge_ListCapacityAndSaleBudge
          {
          }
          FormCapacityAndSaleBudge_DataSetLevelCapacityAndSaleBudge
          {
            groupDepth: -1
            column_Deleted
            {
              columnId: 'Deleted'
              dataPath: 'Deleted'
              dataType: 'boolean'
              index: 0
              subtotals: ''
              width: 150
            }
            column_YearNo
            {
              columnId: 'YearNo'
              dataPath: 'YearNo'
              dataType: 'number'
              index: 1
              subtotals: ''
              width: 150
            }
            column_OrgCode
            {
              columnId: 'OrgCode'
              dataPath: 'OrgCode'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_DisplayTechnology
            {
              columnId: 'DisplayTechnology'
              dataPath: 'DisplayTechnology'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 4
              subtotals: ''
              width: 150
            }
            column_LineAndSpecification
            {
              columnId: 'LineAndSpecification'
              dataPath: 'LineAndSpecification'
              dataType: 'string'
              index: 5
              subtotals: ''
              width: 150
            }
            column_ProductCode
            {
              columnId: 'ProductCode'
              dataPath: 'ProductCode'
              dataType: 'string'
              index: 6
              subtotals: ''
              width: 150
            }
            column_PlaceOfProductionOfArray
            {
              columnId: 'PlaceOfProductionOfArray'
              dataPath: 'PlaceOfProductionOfArray'
              dataType: 'string'
              index: 7
              subtotals: ''
              width: 150
            }
            column_PlaceOfProductionOfEvaporation
            {
              columnId: 'PlaceOfProductionOfEvaporation'
              dataPath: 'PlaceOfProductionOfEvaporation'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_Resolution
            {
              columnId: 'Resolution'
              dataPath: 'Resolution'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_ShippingForm
            {
              columnId: 'ShippingForm'
              dataPath: 'ShippingForm'
              dataType: 'string'
              index: 10
              subtotals: ''
              width: 150
            }
            column_NumberOfCut
            {
              columnId: 'NumberOfCut'
              dataPath: 'NumberOfCut'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_CapacityEquivalent
            {
              columnId: 'CapacityEquivalent'
              dataPath: 'CapacityEquivalent'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_NumberOfMask
            {
              columnId: 'NumberOfMask'
              dataPath: 'NumberOfMask'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth1
            {
              columnId: 'CapacityInPCSInMonth1'
              dataPath: 'CapacityInPCSInMonth1'
              dataType: 'real'
              index: 14
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth2
            {
              columnId: 'CapacityInPCSInMonth2'
              dataPath: 'CapacityInPCSInMonth2'
              dataType: 'real'
              index: 15
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth3
            {
              columnId: 'CapacityInPCSInMonth3'
              dataPath: 'CapacityInPCSInMonth3'
              dataType: 'real'
              index: 16
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth4
            {
              columnId: 'CapacityInPCSInMonth4'
              dataPath: 'CapacityInPCSInMonth4'
              dataType: 'real'
              index: 17
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth5
            {
              columnId: 'CapacityInPCSInMonth5'
              dataPath: 'CapacityInPCSInMonth5'
              dataType: 'real'
              index: 18
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth6
            {
              columnId: 'CapacityInPCSInMonth6'
              dataPath: 'CapacityInPCSInMonth6'
              dataType: 'real'
              index: 19
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth7
            {
              columnId: 'CapacityInPCSInMonth7'
              dataPath: 'CapacityInPCSInMonth7'
              dataType: 'real'
              index: 20
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth8
            {
              columnId: 'CapacityInPCSInMonth8'
              dataPath: 'CapacityInPCSInMonth8'
              dataType: 'real'
              index: 21
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth9
            {
              columnId: 'CapacityInPCSInMonth9'
              dataPath: 'CapacityInPCSInMonth9'
              dataType: 'real'
              index: 22
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth10
            {
              columnId: 'CapacityInPCSInMonth10'
              dataPath: 'CapacityInPCSInMonth10'
              dataType: 'real'
              index: 23
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth11
            {
              columnId: 'CapacityInPCSInMonth11'
              dataPath: 'CapacityInPCSInMonth11'
              dataType: 'real'
              index: 24
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSInMonth12
            {
              columnId: 'CapacityInPCSInMonth12'
              dataPath: 'CapacityInPCSInMonth12'
              dataType: 'real'
              index: 25
              subtotals: ''
              width: 150
            }
            column_CapacityInPCSTotal
            {
              columnId: 'CapacityInPCSTotal'
              dataPath: 'CapacityInPCSTotal'
              dataType: 'real'
              index: 26
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth1
            {
              columnId: 'CapacityInSheetInMonth1'
              dataPath: 'CapacityInSheetInMonth1'
              dataType: 'real'
              index: 27
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth2
            {
              columnId: 'CapacityInSheetInMonth2'
              dataPath: 'CapacityInSheetInMonth2'
              dataType: 'real'
              index: 28
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth3
            {
              columnId: 'CapacityInSheetInMonth3'
              dataPath: 'CapacityInSheetInMonth3'
              dataType: 'real'
              index: 29
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth4
            {
              columnId: 'CapacityInSheetInMonth4'
              dataPath: 'CapacityInSheetInMonth4'
              dataType: 'real'
              index: 30
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth5
            {
              columnId: 'CapacityInSheetInMonth5'
              dataPath: 'CapacityInSheetInMonth5'
              dataType: 'real'
              index: 31
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth6
            {
              columnId: 'CapacityInSheetInMonth6'
              dataPath: 'CapacityInSheetInMonth6'
              dataType: 'real'
              index: 32
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth7
            {
              columnId: 'CapacityInSheetInMonth7'
              dataPath: 'CapacityInSheetInMonth7'
              dataType: 'real'
              index: 33
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth8
            {
              columnId: 'CapacityInSheetInMonth8'
              dataPath: 'CapacityInSheetInMonth8'
              dataType: 'real'
              index: 34
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth9
            {
              columnId: 'CapacityInSheetInMonth9'
              dataPath: 'CapacityInSheetInMonth9'
              dataType: 'real'
              index: 35
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth10
            {
              columnId: 'CapacityInSheetInMonth10'
              dataPath: 'CapacityInSheetInMonth10'
              dataType: 'real'
              index: 36
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth11
            {
              columnId: 'CapacityInSheetInMonth11'
              dataPath: 'CapacityInSheetInMonth11'
              dataType: 'real'
              index: 37
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetInMonth12
            {
              columnId: 'CapacityInSheetInMonth12'
              dataPath: 'CapacityInSheetInMonth12'
              dataType: 'real'
              index: 38
              subtotals: ''
              width: 150
            }
            column_CapacityInSheetTotal
            {
              columnId: 'CapacityInSheetTotal'
              dataPath: 'CapacityInSheetTotal'
              dataType: 'real'
              index: 39
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth1
            {
              columnId: 'SaleAmountInMonth1'
              dataPath: 'SaleAmountInMonth1'
              dataType: 'real'
              index: 40
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth2
            {
              columnId: 'SaleAmountInMonth2'
              dataPath: 'SaleAmountInMonth2'
              dataType: 'real'
              index: 41
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth3
            {
              columnId: 'SaleAmountInMonth3'
              dataPath: 'SaleAmountInMonth3'
              dataType: 'real'
              index: 42
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth5
            {
              columnId: 'SaleAmountInMonth5'
              dataPath: 'SaleAmountInMonth5'
              dataType: 'real'
              index: 43
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth4
            {
              columnId: 'SaleAmountInMonth4'
              dataPath: 'SaleAmountInMonth4'
              dataType: 'real'
              index: 44
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth6
            {
              columnId: 'SaleAmountInMonth6'
              dataPath: 'SaleAmountInMonth6'
              dataType: 'real'
              index: 45
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth7
            {
              columnId: 'SaleAmountInMonth7'
              dataPath: 'SaleAmountInMonth7'
              dataType: 'real'
              index: 46
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth8
            {
              columnId: 'SaleAmountInMonth8'
              dataPath: 'SaleAmountInMonth8'
              dataType: 'real'
              index: 47
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth9
            {
              columnId: 'SaleAmountInMonth9'
              dataPath: 'SaleAmountInMonth9'
              dataType: 'real'
              index: 48
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth10
            {
              columnId: 'SaleAmountInMonth10'
              dataPath: 'SaleAmountInMonth10'
              dataType: 'real'
              index: 49
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth11
            {
              columnId: 'SaleAmountInMonth11'
              dataPath: 'SaleAmountInMonth11'
              dataType: 'real'
              index: 50
              subtotals: ''
              width: 150
            }
            column_SaleAmountInMonth12
            {
              columnId: 'SaleAmountInMonth12'
              dataPath: 'SaleAmountInMonth12'
              dataType: 'real'
              index: 51
              subtotals: ''
              width: 150
            }
            column_SaleAmountTotal
            {
              columnId: 'SaleAmountTotal'
              dataPath: 'SaleAmountTotal'
              dataType: 'real'
              index: 52
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormCapacityAndSaleBudgeCompare
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeCompare'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeCompare'
        layout
        {
          mode: 'open'
          rowPosition: 5
          rowSpan: 10
          columnPosition: 5
          columnSpan: 8
        }
        components
        {
          FormCapacityAndSaleBudgeCompare_MatrixEditorCapacityAndSaleBudgeCompare
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeCompare.MatrixEditorCapacityAndSaleBudgeCompare'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_CellContent
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CellContent'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'ColumnNo'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'RowNo'"
                  }
                }
              }
            }
          }
        }
      }
      form_FormCapacityAndSaleBudgeFilterItem
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterItem'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterItem'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 3
          columnSpan: 2
        }
        components
        {
          FormCapacityAndSaleBudgeFilterItem_ListCapacityAndSaleBudgeFilterItem
          {
          }
          FormCapacityAndSaleBudgeFilterItem_DataSetLevelCapacityAndSaleBudgeFilterItem
          {
            groupDepth: -1
            column_ItemName
            {
              columnId: 'ItemName'
              dataPath: 'ItemName'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormCapacityAndSaleBudgeChart
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeChart'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeChart'
        layout
        {
          mode: 'open'
          rowPosition: 5
          rowSpan: 11
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormCapacityAndSaleBudgeChart_ChartCapacityAndSaleBudgeChart
          {
            SynchronizationGroup: ''
          }
          FormCapacityAndSaleBudgeChart_ChartCapacityAndSaleBudgeChart_legend
          {
            LegendItems:
            [
            ]
          }
        }
      }
      form_FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 5
          columnSpan: 2
        }
        components
        {
          FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_ListCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
          {
          }
          FormCapacityAndSaleBudgeFilterPlaceOfProductionOfArray_DataSetLevelCapacityAndSaleBudgeFilterPlaceOfProductionOfArray
          {
            groupDepth: -1
            column_PlaceOfProductionOfArray
            {
              columnId: 'PlaceOfProductionOfArray'
              dataPath: 'PlaceOfProductionOfArray'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormCapacityAndSaleBudgeFilterYear
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterYear'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterYear'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 7
          columnSpan: 2
        }
        components
        {
          FormCapacityAndSaleBudgeFilterYear_ListCapacityAndSaleBudgeFilterYear
          {
          }
          FormCapacityAndSaleBudgeFilterYear_DataSetLevelCapacityAndSaleBudgeFilterYear
          {
            groupDepth: -1
            column_YearNo
            {
              columnId: 'YearNo'
              dataPath: 'YearNo'
              dataType: 'number'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormCapacityAndSaleBudgeFilterBusinessType
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterBusinessType'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterBusinessType'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 11
          columnSpan: 2
        }
        components
        {
          FormCapacityAndSaleBudgeFilterBusinessType_ListCapacityAndSaleBudgeFilterBusinessType
          {
          }
          FormCapacityAndSaleBudgeFilterBusinessType_DataSetLevelCapacityAndSaleBudgeFilterBusinessType
          {
            groupDepth: -1
            column_BusinessType
            {
              columnId: 'BusinessType'
              dataPath: 'BusinessType'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormCapacityAndSaleBudgeFilterMonth
      {
        title: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterMonth'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormCapacityAndSaleBudgeFilterMonth'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 4
          columnPosition: 9
          columnSpan: 2
        }
        components
        {
          FormCapacityAndSaleBudgeFilterMonth_ListCapacityAndSaleBudgeFilterMonth
          {
          }
          FormCapacityAndSaleBudgeFilterMonth_DataSetLevelCapacityAndSaleBudgeFilterMonth
          {
            groupDepth: -1
            column_MonthNo
            {
              columnId: 'MonthNo'
              dataPath: 'MonthNo'
              dataType: 'number'
              index: 0
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    image: 'PIG'
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2
  id: '年度产销复盘'
  name: '年度产销复盘'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/Ãæ°åÀ­ÁÏ_¸÷ÊÂÒµ²¿²Ù×÷.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,94 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormPanelPullPlanReport
      {
        title: 'QTIANMA_JITUAN::FormPanelPullPlanReport'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelPullPlanReport'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 16
          columnPosition: 1
          columnSpan: 6
        }
        components
        {
          FormPanelPullPlanReport_PanelPanelPullPlanReport
          {
            sizeRatio: 1
          }
          FormPanelPullPlanReport_PanelFunctionButtons
          {
            sizeRatio: 1
          }
          FormPanelPullPlanReport_PanelData
          {
            sizeRatio: 1
          }
          FormPanelPullPlanReport_ListData
          {
          }
          FormPanelPullPlanReport_DataSetLevelData
          {
            groupDepth: -1
            column_PanelModel
            {
              columnId: 'PanelModel'
              dataPath: 'PanelModel'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_MaterialDescription
            {
              columnId: 'MaterialDescription'
              dataPath: 'MaterialDescription'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_StartDate
            {
              columnId: 'StartDate'
              dataPath: 'StartDate'
              dataType: 'date'
              index: 2
              subtotals: ''
              width: 150
            }
            column_DemandQuantity
            {
              columnId: 'DemandQuantity'
              dataPath: 'DemandQuantity'
              dataType: 'real'
              index: 3
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    image: 'BARREL'
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2
  id: '面板拉料_各事业部操作'
  name: '面板拉料_各事业部操作'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/Ãæ°åÀ­ÁÏ_¼¯ÍŲÙ×÷.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,1471 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormPanelMaterialSpecializedDisplay
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialSpecializedDisplay'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialSpecializedDisplay'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 6
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialSpecializedDisplay_ListPanelMaterialSpecializedDisplay
          {
          }
          FormPanelMaterialSpecializedDisplay_DataSetLevelPanelMaterialSpecializedDisplay
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialSportsHealth
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialSportsHealth'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialSportsHealth'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 6
          columnPosition: 5
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialSportsHealth_ListPanelMaterialSportsHealth
          {
          }
          FormPanelMaterialSportsHealth_DataSetLevelPanelMaterialSportsHealth
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialTM17
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialTM17'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialTM17'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 6
          columnPosition: 9
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialTM17_ListPanelMaterialTM
          {
          }
          FormPanelMaterialTM17_DataSetLevelPanelMaterialTM
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialTM18
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialTM18'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialTM18'
        layout
        {
          mode: 'open'
          rowPosition: 7
          rowSpan: 6
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialTM18_ListPanelMaterialTM
          {
          }
          FormPanelMaterialTM18_DataSetLevelPanelMaterialTM
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialIT
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialIT'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialIT'
        layout
        {
          mode: 'open'
          rowPosition: 7
          rowSpan: 6
          columnPosition: 5
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialIT_ListPanelMaterialIT
          {
          }
          FormPanelMaterialIT_DataSetLevelPanelMaterialIT
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialTianHua
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialTianHua'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialTianHua'
        layout
        {
          mode: 'open'
          rowPosition: 7
          rowSpan: 6
          columnPosition: 9
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialTianHua_ListPanelMaterialTianHua
          {
          }
          FormPanelMaterialTianHua_DataSetLevelPanelMaterialTianHua
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialAutomotiveElectronics
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialAutomotiveElectronics'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialAutomotiveElectronics'
        layout
        {
          mode: 'open'
          rowPosition: 13
          rowSpan: 6
          columnPosition: 1
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialAutomotiveElectronics_ListPanelMaterialAutomotiveElectronics
          {
          }
          FormPanelMaterialAutomotiveElectronics_DataSetLevelPanelMaterialAutomotiveElectronics
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_FormPanelMaterialVehicle
      {
        title: 'QTIANMA_JITUAN::FormPanelMaterialVehicle'
        shown: true
        componentID: 'QTIANMA_JITUAN::FormPanelMaterialVehicle'
        layout
        {
          mode: 'open'
          rowPosition: 13
          rowSpan: 6
          columnPosition: 5
          columnSpan: 4
        }
        components
        {
          FormPanelMaterialVehicle_ListPanelMaterialVehicle
          {
          }
          FormPanelMaterialVehicle_DataSetLevelPanelMaterialVehicle
          {
            groupDepth: -1
            column_CurrencyID
            {
              columnId: 'CurrencyID'
              dataPath: 'CurrencyID'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_Customer
            {
              columnId: 'Customer'
              dataPath: 'Customer'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_CustomerID
            {
              columnId: 'CustomerID'
              dataPath: 'CustomerID'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
            column_ID
            {
              columnId: 'ID'
              dataPath: 'ID'
              dataType: 'string'
              index: 3
              subtotals: ''
              width: 150
            }
            column_IsEligibleForNetting
            {
              columnId: 'IsEligibleForNetting'
              dataPath: 'IsEligibleForNetting'
              dataType: 'boolean'
              index: 4
              subtotals: ''
              width: 150
            }
            column_IsExcludedFromFulfillmentKPIUser
            {
              columnId: 'IsExcludedFromFulfillmentKPIUser'
              dataPath: 'IsExcludedFromFulfillmentKPIUser'
              dataType: 'boolean'
              index: 5
              subtotals: ''
              width: 150
            }
            column_IsFirmed
            {
              columnId: 'IsFirmed'
              dataPath: 'IsFirmed'
              dataType: 'boolean'
              index: 6
              subtotals: ''
              width: 150
            }
            column_OrderDate
            {
              columnId: 'OrderDate'
              dataPath: 'OrderDate'
              dataType: 'date'
              index: 7
              subtotals: ''
              width: 150
            }
            column_OrderID
            {
              columnId: 'OrderID'
              dataPath: 'OrderID'
              dataType: 'string'
              index: 8
              subtotals: ''
              width: 150
            }
            column_OrderLineID
            {
              columnId: 'OrderLineID'
              dataPath: 'OrderLineID'
              dataType: 'string'
              index: 9
              subtotals: ''
              width: 150
            }
            column_Price
            {
              columnId: 'Price'
              dataPath: 'Price'
              dataType: 'real'
              index: 10
              subtotals: ''
              width: 150
            }
            column_PriorityName
            {
              columnId: 'PriorityName'
              dataPath: 'PriorityName'
              dataType: 'string'
              index: 11
              subtotals: ''
              width: 150
            }
            column_ProductID
            {
              columnId: 'ProductID'
              dataPath: 'ProductID'
              dataType: 'string'
              index: 12
              subtotals: ''
              width: 150
            }
            column_Quantity
            {
              columnId: 'Quantity'
              dataPath: 'Quantity'
              dataType: 'string'
              index: 13
              subtotals: ''
              width: 150
            }
            column_SalesSegmentName
            {
              columnId: 'SalesSegmentName'
              dataPath: 'SalesSegmentName'
              dataType: 'string'
              index: 14
              subtotals: ''
              width: 150
            }
            column_StockingPointID
            {
              columnId: 'StockingPointID'
              dataPath: 'StockingPointID'
              dataType: 'string'
              index: 15
              subtotals: ''
              width: 150
            }
            column_UnitOfMeasureName
            {
              columnId: 'UnitOfMeasureName'
              dataPath: 'UnitOfMeasureName'
              dataType: 'string'
              index: 16
              subtotals: ''
              width: 150
            }
          }
        }
      }
      form_DialogFusionData
      {
        title: 'QTIANMA_JITUAN::DialogFusionData'
        shown: true
        componentID: 'QTIANMA_JITUAN::DialogFusionData'
        layout
        {
          mode: 'open'
          rowPosition: 13
          rowSpan: 6
          columnPosition: 9
          columnSpan: 4
        }
        components
        {
          DialogFusionData_pnlContent
          {
            sizeRatio: 1
          }
          DialogFusionData_pnlReceiveDatas
          {
            sizeRatio: 1
          }
          DialogFusionData_pnlSelectVersion
          {
            sizeRatio: 1
          }
          DialogFusionData_pnlActions
          {
            sizeRatio: 1
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    image: 'WATER_FISH'
    page: ''
    group: ''
    index: 0
    description: ''
  }
  formatversion: 2
  id: '面板拉料_集团操作'
  name: '面板拉料_集团操作'
  isglobal: false
  isroot: true
}
_var/_Main/ModelSettings/Common/Dev-21/_ROOT_Role_Dev-21.properties
@@ -501,7 +501,7 @@
domainmodel.mdsstoragedefinitionmanager=template:domainmodel.mdsstoragedefinitionmanager
domainmodel.mdsstoragedefinitionmanager.audittrailenabled=false
domainmodel.mdsstoragedefinitionmanager.audittraillocation=
domainmodel.mdsstoragedefinitionmanager.databaseenabled=false
domainmodel.mdsstoragedefinitionmanager.databaseenabled=true
domainmodel.mdsstoragedefinitionmanager.datasetstoredatasource=MacroPlanner
domainmodel.mdsstoragedefinitionmanager.datasetstoreenabled=false
domainmodel.mdsstoragedefinitionmanager.datasetstoreislocal=false