rislai
2024-08-16 bcd7eb876bff759f6aef96f1014b0bca7a3322ff
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已添加302个文件
已修改53个文件
已删除3个文件
6724 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_CCEngineLogisticsCostCell_Column_CCEngineLogisticsCostColumn_Cell.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CCEngineLogisticsCostCell_Row_CCEngineLogisticsCostRow_Cell.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CCEngineLogisticsCostReport_Column_CCEngineLogisticsCostColumn_Repo.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CCEngineLogisticsCostReport_MacroPlan_MacroPlan_CCEngineLogisticsCo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CCEngineLogisticsCostRow_Report_CCEngineLogisticsCostReport_Row.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CCEngineLogisticsCostSearch_MacroPlan_MacroPlan_CCEngineLogisticsCo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CC_EngineRackCell_CC_EngineRackColumn_CC_EngineRackColumn_CC_Engine.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CC_EngineRackColumn_MacroPlan_MacroPlan_CC_EngineRackColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CC_EngineRackRow_CC_EngineRackCell_CC_EngineRackCell_CC_EngineRackR.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CC_EngineRackRow_MacroPlan_MacroPlan_CC_EngineRackRow.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DLEngineLogisticsCostColumn_Cell_DLEngineLogisticsCostCell_Column.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DLEngineLogisticsCostReport_Column_DLEngineLogisticsCostColumn_Repo.qbl 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DLEngineLogisticsCostReport_MacroPlan_MacroPlan_DLEngineLogisticsCo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DLEngineLogisticsCostReport_Row_DLEngineLogisticsCostRow_Report.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DLEngineLogisticsCostRow_Cell_DLEngineLogisticsCostCell_Row.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DLEngineLogisticsCostSearch_MacroPlan_MacroPlan_DLEngineLogisticsCo.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRa.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackR.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionImportData_Cell_FinancialProductionCell_ImportDa.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionImportData_MacroPlan_MacroPlan_FPImportData.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialProductionRow_Product_MP_Product_MP_FinancialProductionRow.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialSalesImportData_Cell_FinancialSalesCell_FSImportData.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialSalesImportData_MacroPlan_MacroPlan_FSImportData.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_FinancialSalesRow_Product_MP_Product_MP_FinancialSalesRow.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_Coefficient.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_EstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_FactoryToRentTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentEnterCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentOutCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentStorageCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_TotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimatedTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell/_ROOT_Type_CCEngineLogisticsCostCell.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCLongTransCoat.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentEnterCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentOutCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentStorageCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCShortTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_Coefficient.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentEnterCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOutCost#0.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentStorageCost#0.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_EstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_FactoryToDLRentTransCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_TotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimatedTotalCost.qbl 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcTotalCost.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostCell0/_ROOT_Type_DLEngineLogisticsCostCell#0.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn/Attribute_Index.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn/Attribute_StartDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn/Function_CalcIndex.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn/_ROOT_Type_CCEngineLogisticsCostColumn.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Attribute_Index.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Attribute_StartDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/Function_CalcIndex.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostColumn0/_ROOT_Type_DLEngineLogisticsCostColumn#0.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Attribute_IsShow.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/DefaultValue_ID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Clear.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_GenerateColumn.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_GetRow.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/Method_IsInUnit.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl 152 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultAllUnit.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultCCUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultName.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetStockingPointCCLine.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetStockingPointCCRent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl 166 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport/_ROOT_Type_CCEngineLogisticsCostReport.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Attribute_ID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Attribute_IsShow.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/DefaultValue_ID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Clear.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl 68 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_GenerateColumn.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_GetRow.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_IsInUnit.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl 212 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultAllUnit.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultCCUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultDLUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultName.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetStockingPointCCRent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetStockingPointDLLine.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetStockingPointDLRent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl 272 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostReport0/_ROOT_Type_DLEngineLogisticsCostReport#0.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Attribute_RowNr.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_Initialize.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetFactoryToRentTransCost.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentEnterCost#517.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentOutCost.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentStorageCost.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow/_ROOT_Type_CCEngineLogisticsCostRow.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Attribute_RowNr.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_Initialize.qbl 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetFactoryToRentTransCost.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentOutCost.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentStorageCost.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostRow0/_ROOT_Type_DLEngineLogisticsCostRow#0.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/Attribute_Generation.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/Attribute_MqbMlb.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/Attribute_Power.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/DefaultValue_Generation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/DefaultValue_MqbMlb.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/DefaultValue_Power.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CCEngineLogisticsCostSearch/_ROOT_Type_CCEngineLogisticsCostSearch.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_CleaningCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_Coefficient.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_EstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_ExternalRentalWarehouseTransportationCosts.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_OutboundExpensesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_RentalWarehouseStorageFees.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_StorageFeesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_TotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackCell/_ROOT_Type_CC_EngineRackCell.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackColumn/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackColumn/_ROOT_Type_CC_EngineRackColumn.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackRow/Attribute_Generation.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackRow/Attribute_MLB_MQB.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackRow/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackRow/Function_CalcName.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_CC_EngineRackRow/_ROOT_Type_CC_EngineRackRow.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/Attribute_Generation.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/Attribute_MqbMlb.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/Attribute_Power.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/DefaultValue_Generation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/DefaultValue_MqbMlb.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/DefaultValue_Power.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DLEngineLogisticsCostSearch/_ROOT_Type_DLEngineLogisticsCostSearch.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_CCLineHaulCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_CCOutboundExpensesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_CCRentalWarehouseStorageFees.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_CCShortDistanceTransportationCosts.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_CCStorageFeesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_CleaningCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_Coefficient.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_DLExternalRentalWarehouseTransportationCosts.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_DLOutboundExpensesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_DLRentalWarehouseStorageFees.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_DLStorageFeesForRentedWarehouses.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_EstimatedTotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_TotalCost.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl 36 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackCell/_ROOT_Type_DL_EngineRackCell.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackColumn/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackColumn/_ROOT_Type_DL_EngineRackColumn.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/Attribute_Generation.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/Attribute_MLB_MQB.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/DefaultValue_Generation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/DefaultValue_MLB_MQB.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/DefaultValue_Name.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/Function_CalcName.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_DL_EngineRackRow/_ROOT_Type_DL_EngineRackRow.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineColumn/Attribute_EndDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineColumn/Attribute_Period.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineColumn/Attribute_StartDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/Method_GetColumnByUnit.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultCCALineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultCCMPLineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultDLALineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultDLMPLineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultName.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineRow/Method_SetCellDemandValue.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineRow/Method_SetCellProductionValue.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_Generation.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_MqbMlb.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_Power.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_ProductID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/DefaultValue_Generation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/DefaultValue_MqbMlb.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/DefaultValue_Power.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionImportData/_ROOT_Type_FinancialProductionImportData.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/Method_GetRowByUnit.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCALineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCMPLineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLALineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLMPLineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionRow/Method_Initialize#110.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_Generation.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_MqbMlb.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_Power.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_ProductID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_Quantity.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Attribute_Unit.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/DefaultValue_Generation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/DefaultValue_MqbMlb.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/DefaultValue_Power.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/DefaultValue_ProductID.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/DefaultValue_Unit.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/Function_CalcQuantity.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesImportData/_ROOT_Type_FinancialSalesImportData.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesReport/Method_IsInUnit.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCALineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCMPLineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLALineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLMPLineUnit.qbl 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineCell/StaticMethod_Initialize.qbl 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineColumn0/Attribute_CCAssemblyPlanQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineColumn0/Attribute_DLAssemblyPlanQty.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineColumn0/Attribute_EndDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineColumn0/Attribute_Period.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineColumn0/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/Method_GetColumnByUnit.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultCCProductionUnit.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultDLProductionUnit.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultProductParent.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineRow/Method_SetCellAssemblyValue.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineRow/Method_SetCellTransferValue.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Routing/StaticMethod_ThermalTrialRatio.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/CCEngineLogisticsCostCell.qrp 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp 66 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/InventorySummaryCell.qrp 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/MachiningPipelineCell.qrp 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def 54 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuEngineLogisticsCostReport.def 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPipelineReport.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bCC_EngineRackReport_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuEngineLogisticsCostReport_MenuCCEngineLogis.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuEngineLogisticsCostReport_MenuDLEngineLogis.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlContent.def 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlContent.def 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlContent.def 23 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlContent.def 44 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlContent_ddslDestination_OnCreated.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlContent_ddslOrigin_OnCreated.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Component_pnlContent.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Response_pnlContent_ddslName_OnCreated.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurveEnable.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPAEnable.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurveEnable_cCurveEnable_OnChanged.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_bCurve_OnClick.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnUserChanged.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAEnable_cPPAEnable_OnChanged.def 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_bPPA_OnClick.def 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_cPPA_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPreviousEditionCurve_cPreviousEditionCurve_OnCreated.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPreviousEditionCurve_cPreviousEditionCurve_OnUserChanged.def 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_MatrixEditorTable#358.def 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelCCEngineLogisticsCostReportHeader.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelCCEngineLogisticsCostReportSearch.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport#670.def 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelGeneration#969.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelMQBMLB#667.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelPower#653.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelTable#211.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_matrixEditorActionBarPageTable#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_matrixeditorContextMenuTable#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_MatrixEditorTable_358_OnUpdateValue.def 32 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_ButtonExport_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_ButtonSearch_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelGeneration_969_ddslGeneration_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelGeneration_969_ddslGeneration_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelMQBMLB_667_ddslMQBMLB_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelMQBMLB_667_ddslMQBMLB_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelPower_653_ddslPower_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelPower_653_ddslPower_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/_ROOT_Component_FormCCEngineLogisticsCostReport.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_MatrixEditor531.def 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_matrixEditorActionBarPage178.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_matrixeditorContextMenu683.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pContent.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Response_pHeader_bRefresh_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/_ROOT_Component_FormCC_EngineRackReport.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelDLEngineLogisticsCostReportHeader.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelDLEngineLogisticsCostReportSearch.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelGeneration.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelMQBMLB.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelPower.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelTable.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_matrixEditorActionBarPageTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_matrixeditorContextMenuTable.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_MatrixEditorTable_OnUpdateValue.def 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_ButtonExport_OnClick.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_ButtonSearch_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelGeneration_ddslGeneration_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelPower_ddslPower_OnCreated.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelPower_ddslPower_OnSelectionChanged.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/_ROOT_Component_FormDLEngineLogisticsCostReport.def 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_MatrixEditor392.def 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixEditorActionBarPage191.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixeditorContextMenu687.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pContent.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pHeader.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Response_pHeader_bRefresh_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/_ROOT_Component_FormDL_EngineRackReport.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/_ROOT_Component_FormEnginePipelineReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/_ROOT_Component_FormFinancialSalesReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/_ROOT_Component_FormFinancialWeeklyReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/_ROOT_Component_FormInventorySummaryReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/_ROOT_Component_FormMachiningPipelineReport.def 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/CCEngineRackReport.vw 206 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/CC_engine_logistics_cost_report_view.vw 104 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/DLEngineRackReport.vw 89 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/DL_engine_logistics_cost_report_view.vw 200 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/DemandComparison.vw 136 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw 21 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/ShiftPlan.vw 86 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/EditorTC/Views/班次时间分析_[413988.0.1367211460].vw 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_CCEngineLogisticsCostCell_Column_CCEngineLogisticsCostColumn_Cell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CCEngineLogisticsCostCell_Column_CCEngineLogisticsCostColumn_Cell
{
  #keys: '1[415136.0.986881391]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Column
  {
    #keys: '3[415136.0.986881393][415136.0.986881392][415136.0.986881394]'
    Cardinality: '0to1'
    ObjectDefinition: CCEngineLogisticsCostCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Cell
  {
    #keys: '3[415136.0.986881396][415136.0.986881395][415136.0.986881397]'
    Cardinality: '1toN'
    ObjectDefinition: CCEngineLogisticsCostColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_CCEngineLogisticsCostCell_Row_CCEngineLogisticsCostRow_Cell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CCEngineLogisticsCostCell_Row_CCEngineLogisticsCostRow_Cell
{
  #keys: '1[415136.0.986881404]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Row
  {
    #keys: '3[415136.0.986881406][415136.0.986881405][415136.0.986881407]'
    Cardinality: '0to1'
    ObjectDefinition: CCEngineLogisticsCostCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Cell
  {
    #keys: '3[415136.0.986881409][415136.0.986881408][415136.0.986881410]'
    Cardinality: '1toN'
    ObjectDefinition: CCEngineLogisticsCostRow
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CCEngineLogisticsCostReport_Column_CCEngineLogisticsCostColumn_Repo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation CCEngineLogisticsCostReport_Column_CCEngineLogisticsCostColumn_Report
{
  #keys: '1[415136.0.986881356]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][415136.0.986881375][415136.0.986881369][415136.0.986881376][415136.0.986881370][415136.0.986881377][415136.0.986881371][415136.0.986881378][415136.0.986881372][415136.0.986881379][415136.0.986881373][415136.0.986881380][415136.0.986881374]'
    SequenceElementSuffix: 'Column'
    SequenceSuffix: 'Column'
  }
  RelationSide.LeftSide Column
  {
    #keys: '3[415136.0.986881358][415136.0.986881357][415136.0.986881359]'
    Cardinality: '1toN'
    ObjectDefinition: CCEngineLogisticsCostReport
    OwningSide: 'Owned'
  }
  RelationSide.RightSide Report
  {
    #keys: '3[415136.0.986881361][415136.0.986881360][415136.0.986881362]'
    Cardinality: '0to1'
    ObjectDefinition: CCEngineLogisticsCostColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_CCEngineLogisticsCostReport_MacroPlan_MacroPlan_CCEngineLogisticsCo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CCEngineLogisticsCostReport_MacroPlan_MacroPlan_CCEngineLogisticsCostReport
{
  #keys: '1[415136.0.986400960]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.986400962][415136.0.986400961][415136.0.986400963]'
    Cardinality: '0to1'
    ObjectDefinition: CCEngineLogisticsCostReport
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CCEngineLogisticsCostReport
  {
    #keys: '3[415136.0.986400965][415136.0.986400964][415136.0.986400966]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CCEngineLogisticsCostRow_Report_CCEngineLogisticsCostReport_Row.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CCEngineLogisticsCostRow_Report_CCEngineLogisticsCostReport_Row
{
  #keys: '1[415136.0.986616253]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Report
  {
    #keys: '3[415136.0.986616255][415136.0.986616254][415136.0.986616256]'
    Cardinality: '0to1'
    ObjectDefinition: CCEngineLogisticsCostRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Row
  {
    #keys: '3[415136.0.986616258][415136.0.986616257][415136.0.986616259]'
    Cardinality: '1toN'
    ObjectDefinition: CCEngineLogisticsCostReport
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CCEngineLogisticsCostSearch_MacroPlan_MacroPlan_CCEngineLogisticsCo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CCEngineLogisticsCostSearch_MacroPlan_MacroPlan_CCEngineLogisticsCostSearch
{
  #keys: '1[415136.0.986844810]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.986844812][415136.0.986844811][415136.0.986844813]'
    Cardinality: '0to1'
    ObjectDefinition: CCEngineLogisticsCostSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CCEngineLogisticsCostSearch
  {
    #keys: '3[415136.0.986844815][415136.0.986844814][415136.0.986844816]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CC_EngineRackCell_CC_EngineRackColumn_CC_EngineRackColumn_CC_Engine.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CC_EngineRackCell_CC_EngineRackColumn_CC_EngineRackColumn_CC_EngineRackCell
{
  #keys: '1[413988.0.1476832592]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide CC_EngineRackColumn
  {
    #keys: '3[413988.0.1476832594][413988.0.1476832593][413988.0.1476832595]'
    Cardinality: '0to1'
    ObjectDefinition: CC_EngineRackCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CC_EngineRackCell
  {
    #keys: '3[413988.0.1476832597][413988.0.1476832596][413988.0.1476832598]'
    Cardinality: '1toN'
    ObjectDefinition: CC_EngineRackColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_CC_EngineRackColumn_MacroPlan_MacroPlan_CC_EngineRackColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CC_EngineRackColumn_MacroPlan_MacroPlan_CC_EngineRackColumn
{
  #keys: '1[413988.0.1476832605]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1476832607][413988.0.1476832606][413988.0.1476832608]'
    Cardinality: '0to1'
    ObjectDefinition: CC_EngineRackColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CC_EngineRackColumn
  {
    #keys: '3[413988.0.1476832610][413988.0.1476832609][413988.0.1476832611]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_CC_EngineRackRow_CC_EngineRackCell_CC_EngineRackCell_CC_EngineRackR.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CC_EngineRackRow_CC_EngineRackCell_CC_EngineRackCell_CC_EngineRackRow
{
  #keys: '1[413988.0.1476832579]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide CC_EngineRackCell
  {
    #keys: '3[413988.0.1476832581][413988.0.1476832580][413988.0.1476832582]'
    Cardinality: '1toN'
    ObjectDefinition: CC_EngineRackRow
    OwningSide: 'Owned'
  }
  RelationSide.RightSide CC_EngineRackRow
  {
    #keys: '3[413988.0.1476832584][413988.0.1476832583][413988.0.1476832585]'
    Cardinality: '0to1'
    ObjectDefinition: CC_EngineRackCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_CC_EngineRackRow_MacroPlan_MacroPlan_CC_EngineRackRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation CC_EngineRackRow_MacroPlan_MacroPlan_CC_EngineRackRow
{
  #keys: '1[413988.0.1476832566]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1476832568][413988.0.1476832567][413988.0.1476832569]'
    Cardinality: '0to1'
    ObjectDefinition: CC_EngineRackRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CC_EngineRackRow
  {
    #keys: '3[413988.0.1476832571][413988.0.1476832570][413988.0.1476832572]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_DLEngineLogisticsCostColumn_Cell_DLEngineLogisticsCostCell_Column.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DLEngineLogisticsCostColumn_Cell_DLEngineLogisticsCostCell_Column
{
  #keys: '1[415136.0.992900190]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Cell
  {
    #keys: '3[415136.0.992900192][415136.0.992900191][415136.0.992900193]'
    Cardinality: '1toN'
    ObjectDefinition: DLEngineLogisticsCostColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Column
  {
    #keys: '3[415136.0.992900195][415136.0.992900194][415136.0.992900196]'
    Cardinality: '0to1'
    ObjectDefinition: DLEngineLogisticsCostCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_DLEngineLogisticsCostReport_Column_DLEngineLogisticsCostColumn_Repo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Relation DLEngineLogisticsCostReport_Column_DLEngineLogisticsCostColumn_Report
{
  #keys: '1[415136.0.992900157]'
  ProceduralSequenceRelationStrategy
  {
    #keys: '13[0.0.0][415136.0.992900176][415136.0.992900170][415136.0.992900177][415136.0.992900171][415136.0.992900178][415136.0.992900172][415136.0.992900179][415136.0.992900173][415136.0.992900180][415136.0.992900174][415136.0.992900181][415136.0.992900175]'
    SequenceElementSuffix: 'Column'
    SequenceSuffix: 'Column'
  }
  RelationSide.LeftSide Column
  {
    #keys: '3[415136.0.992900159][415136.0.992900158][415136.0.992900160]'
    Cardinality: '1toN'
    ObjectDefinition: DLEngineLogisticsCostReport
    OwningSide: 'Owned'
  }
  RelationSide.RightSide Report
  {
    #keys: '3[415136.0.992900162][415136.0.992900161][415136.0.992900163]'
    Cardinality: '0to1'
    ObjectDefinition: DLEngineLogisticsCostColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_DLEngineLogisticsCostReport_MacroPlan_MacroPlan_DLEngineLogisticsCo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DLEngineLogisticsCostReport_MacroPlan_MacroPlan_DLEngineLogisticsCostReport
{
  #keys: '1[415136.0.992900125]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.992900127][415136.0.992900126][415136.0.992900128]'
    Cardinality: '0to1'
    ObjectDefinition: DLEngineLogisticsCostReport
    OwningSide: 'Reference'
  }
  RelationSide.RightSide DLEngineLogisticsCostReport
  {
    #keys: '3[415136.0.992900130][415136.0.992900129][415136.0.992900131]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_DLEngineLogisticsCostReport_Row_DLEngineLogisticsCostRow_Report.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DLEngineLogisticsCostReport_Row_DLEngineLogisticsCostRow_Report
{
  #keys: '1[415136.0.992900141]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Row
  {
    #keys: '3[415136.0.992900143][415136.0.992900142][415136.0.992900144]'
    Cardinality: '1toN'
    ObjectDefinition: DLEngineLogisticsCostReport
    OwningSide: 'Owned'
  }
  RelationSide.RightSide Report
  {
    #keys: '3[415136.0.992900146][415136.0.992900145][415136.0.992900147]'
    Cardinality: '0to1'
    ObjectDefinition: DLEngineLogisticsCostRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_DLEngineLogisticsCostRow_Cell_DLEngineLogisticsCostCell_Row.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DLEngineLogisticsCostRow_Cell_DLEngineLogisticsCostCell_Row
{
  #keys: '1[415136.0.992900203]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Cell
  {
    #keys: '3[415136.0.992900205][415136.0.992900204][415136.0.992900206]'
    Cardinality: '1toN'
    ObjectDefinition: DLEngineLogisticsCostRow
    OwningSide: 'Owned'
  }
  RelationSide.RightSide Row
  {
    #keys: '3[415136.0.992900208][415136.0.992900207][415136.0.992900209]'
    Cardinality: '0to1'
    ObjectDefinition: DLEngineLogisticsCostCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_DLEngineLogisticsCostSearch_MacroPlan_MacroPlan_DLEngineLogisticsCo.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DLEngineLogisticsCostSearch_MacroPlan_MacroPlan_DLEngineLogisticsCostSearch
{
  #keys: '1[415136.0.992900109]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.992900111][415136.0.992900110][415136.0.992900112]'
    Cardinality: '0to1'
    ObjectDefinition: DLEngineLogisticsCostSearch
    OwningSide: 'Reference'
  }
  RelationSide.RightSide DLEngineLogisticsCostSearch
  {
    #keys: '3[415136.0.992900114][415136.0.992900113][415136.0.992900115]'
    Cardinality: '0to1'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRa.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DL_EngineRackColumn_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackColumn
{
  #keys: '1[413988.0.1488132644]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide DL_EngineRackCell
  {
    #keys: '3[413988.0.1488132646][413988.0.1488132645][413988.0.1488132647]'
    Cardinality: '1toN'
    ObjectDefinition: DL_EngineRackColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide DL_EngineRackColumn
  {
    #keys: '3[413988.0.1488132649][413988.0.1488132648][413988.0.1488132650]'
    Cardinality: '0to1'
    ObjectDefinition: DL_EngineRackCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DL_EngineRackColumn_MacroPlan_MacroPlan_DL_EngineRackColumn
{
  #keys: '1[413988.0.1488132631]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1488132633][413988.0.1488132632][413988.0.1488132634]'
    Cardinality: '0to1'
    ObjectDefinition: DL_EngineRackColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide DL_EngineRackColumn
  {
    #keys: '3[413988.0.1488132636][413988.0.1488132635][413988.0.1488132637]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackR.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DL_EngineRackRow_DL_EngineRackCell_DL_EngineRackCell_DL_EngineRackRow
{
  #keys: '1[413988.0.1488132614]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide DL_EngineRackCell
  {
    #keys: '3[413988.0.1488132616][413988.0.1488132615][413988.0.1488132617]'
    Cardinality: '1toN'
    ObjectDefinition: DL_EngineRackRow
    OwningSide: 'Owned'
  }
  RelationSide.RightSide DL_EngineRackRow
  {
    #keys: '3[413988.0.1488132619][413988.0.1488132618][413988.0.1488132620]'
    Cardinality: '0to1'
    ObjectDefinition: DL_EngineRackCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation DL_EngineRackRow_MacroPlan_MacroPlan_DL_EngineRackRow
{
  #keys: '1[413988.0.1488132601]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1488132603][413988.0.1488132602][413988.0.1488132604]'
    Cardinality: '0to1'
    ObjectDefinition: DL_EngineRackRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide DL_EngineRackRow
  {
    #keys: '3[413988.0.1488132606][413988.0.1488132605][413988.0.1488132607]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_FinancialProductionImportData_Cell_FinancialProductionCell_ImportDa.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionImportData_Cell_FinancialProductionCell_ImportData
{
  #keys: '1[415136.0.978940064]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Cell
  {
    #keys: '3[415136.0.978940066][415136.0.978940065][415136.0.978940067]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionImportData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide ImportData
  {
    #keys: '3[415136.0.978940069][415136.0.978940068][415136.0.978940070]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialProductionImportData_MacroPlan_MacroPlan_FPImportData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionImportData_MacroPlan_MacroPlan_FPImportData
{
  #keys: '1[415136.0.978920031]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.978920033][415136.0.978920032][415136.0.978920034]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionImportData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FPImportData
  {
    #keys: '3[415136.0.978920036][415136.0.978920035][415136.0.978920037]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_FinancialProductionRow_Product_MP_Product_MP_FinancialProductionRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialProductionRow_Product_MP_Product_MP_FinancialProductionRow
{
  #keys: '1[415136.0.992900294]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Product_MP
  {
    #keys: '3[415136.0.992900296][415136.0.992900295][415136.0.992900297]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialProductionRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FinancialProductionRow
  {
    #keys: '3[415136.0.992900299][415136.0.992900298][415136.0.992900300]'
    Cardinality: '0to1'
    ObjectDefinition: Product_MP
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialSalesImportData_Cell_FinancialSalesCell_FSImportData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialSalesImportData_Cell_FinancialSalesCell_FSImportData
{
  #keys: '1[415136.0.984654733]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Cell
  {
    #keys: '3[415136.0.984654735][415136.0.984654734][415136.0.984654736]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialSalesImportData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FSImportData
  {
    #keys: '3[415136.0.984654738][415136.0.984654737][415136.0.984654739]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialSalesCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_FinancialSalesImportData_MacroPlan_MacroPlan_FSImportData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialSalesImportData_MacroPlan_MacroPlan_FSImportData
{
  #keys: '1[415136.0.984654720]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[415136.0.984654722][415136.0.984654721][415136.0.984654723]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialSalesImportData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FSImportData
  {
    #keys: '3[415136.0.984654725][415136.0.984654724][415136.0.984654726]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_FinancialSalesRow_Product_MP_Product_MP_FinancialSalesRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation FinancialSalesRow_Product_MP_Product_MP_FinancialSalesRow
{
  #keys: '1[415136.0.993115876]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Product_MP
  {
    #keys: '3[415136.0.993115878][415136.0.993115877][415136.0.993115879]'
    Cardinality: '0to1'
    ObjectDefinition: FinancialSalesRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide FinancialSalesRow
  {
    #keys: '3[415136.0.993115881][415136.0.993115880][415136.0.993115882]'
    Cardinality: '0to1'
    ObjectDefinition: Product_MP
    OwningSide: 'Reference'
  }
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_Coefficient.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Coefficient
{
  #keys: '3[415136.0.986844758][415136.0.986844757][415136.0.986844759]'
  Description: '系数'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_EstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EstimatedTotalCost
{
  #keys: '3[415136.0.986844739][415136.0.986844738][415136.0.986844740]'
  Description: '预计总费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_FactoryToRentTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute FactoryToRentTransCost
{
  #keys: '3[415136.0.986844781][415136.0.986844780][415136.0.986844782]'
  Description: '厂内到外租库运输费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentEnterCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentEnterCost
{
  #keys: '3[415136.0.986881423][415136.0.986881422][415136.0.986881424]'
  Description: '外租库入库费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentOutCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentOutCost
{
  #keys: '3[415136.0.986881433][415136.0.986881432][415136.0.986881434]'
  Description: '外租库出库费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_RentStorageCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentStorageCost
{
  #keys: '3[415136.0.986881446][415136.0.986881445][415136.0.986881447]'
  Description: '外租库仓储费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Attribute_TotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalCost
{
  #keys: '3[415136.0.986844771][415136.0.986844770][415136.0.986844772]'
  Description: '总费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcEstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcEstimatedTotalCost
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.RentEnterCost() + this.RentOutCost() + this.FactoryToRentTransCost() + this.RentStorageCost();
    this.EstimatedTotalCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell/Function_CalcTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcTotalCost
{
  Description: '计算总费用'
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.EstimatedTotalCost() * this.Coefficient();
    this.TotalCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell/_ROOT_Type_CCEngineLogisticsCostCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CCEngineLogisticsCostCell
{
  #keys: '5[415136.0.986881388][415136.0.986881386][0.0.0][415136.0.986881387][415136.0.986881389]'
  BaseType: Object
  Description: '长春发动机物流成本报表单元格'
  StructuredName: 'CCEngineLogisticsCostCells'
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCLongTransCoat.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCLongTransCoat
{
  #keys: '3[415136.0.992900332][415136.0.992900331][415136.0.992900333]'
  Description: '长春长途运输费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentEnterCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentEnterCost
{
  #keys: '3[415136.0.992900045][415136.0.992900044][415136.0.992900046]'
  Description: '长春外租库入库费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentOutCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentOutCost
{
  #keys: '3[415136.0.992900048][415136.0.992900047][415136.0.992900049]'
  Description: '长春外租库出库费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentQuantity
{
  #keys: '3[415136.0.993115853][415136.0.993115852][415136.0.993115854]'
  Description: '长春外租库数量'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCRentStorageCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentStorageCost
{
  #keys: '3[415136.0.992900051][415136.0.992900050][415136.0.992900052]'
  Description: '长春外租库仓储费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_CCShortTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCShortTransCost
{
  #keys: '3[415136.0.992900342][415136.0.992900341][415136.0.992900343]'
  Description: '长春短途运输费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_Coefficient.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Coefficient
{
  #keys: '3[415136.0.992900036][415136.0.992900035][415136.0.992900037]'
  Description: '系数'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentEnterCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentEnterCost
{
  #keys: '3[415136.0.992900242][415136.0.992900241][415136.0.992900243]'
  Description: '大连外租库入库费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentOutCost#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentOutCost
{
  #keys: '3[415136.0.992900249][415136.0.992900248][415136.0.992900250]'
  Description: '大连外租库出库费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_DLRentStorageCost#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentStorageCost
{
  #keys: '3[415136.0.992900262][415136.0.992900261][415136.0.992900263]'
  Description: '大连外租库仓储费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_EstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EstimatedTotalCost
{
  #keys: '3[415136.0.992900039][415136.0.992900038][415136.0.992900040]'
  Description: '预计总费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_FactoryToDLRentTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute FactoryToDLRentTransCost
{
  #keys: '3[415136.0.992900042][415136.0.992900041][415136.0.992900043]'
  Description: '厂内到大连外租库运输费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Attribute_TotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalCost
{
  #keys: '3[415136.0.992900054][415136.0.992900053][415136.0.992900055]'
  Description: '总费用'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcEstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Function CalcEstimatedTotalCost
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.CCRentEnterCost() + this.CCRentOutCost() + this.CCLongTransCoat() + this.CCShortTransCost() + this.CCRentStorageCost()
    + this.DLRentEnterCost() + this.DLRentOutCost() + this.FactoryToDLRentTransCost() + this.DLRentStorageCost();
    this.EstimatedTotalCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell0/Function_CalcTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcTotalCost
{
  Description: '计算总费用'
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := this.EstimatedTotalCost() * this.Coefficient();
    this.TotalCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostCell0/_ROOT_Type_DLEngineLogisticsCostCell#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DLEngineLogisticsCostCell
{
  #keys: '5[415136.0.992900033][415136.0.992900031][0.0.0][415136.0.992900032][415136.0.992900034]'
  BaseType: Object
  Description: '大连发动机物流成本报表单元格'
  StructuredName: 'DLEngineLogisticsCostCells'
}
_Main/BL/Type_CCEngineLogisticsCostColumn/Attribute_Index.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Index
{
  #keys: '3[415136.0.986616274][415136.0.986616273][415136.0.986616275]'
  Description: '列号'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostColumn/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.986616271][415136.0.986616270][415136.0.986616272]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.986881347][415136.0.986881346][415136.0.986881348]'
  Description: '开始日期'
  ValueType: Date
}
_Main/BL/Type_CCEngineLogisticsCostColumn/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_CCEngineLogisticsCostColumn/Function_CalcIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcIndex
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 );
    this.Index( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostColumn/_ROOT_Type_CCEngineLogisticsCostColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CCEngineLogisticsCostColumn
{
  #keys: '5[415136.0.986616268][415136.0.986616266][0.0.0][415136.0.986616267][415136.0.986616269]'
  BaseType: Object
  Description: '长春发动机物流成本报表列'
  StructuredName: 'CCEngineLogisticsCostColumns'
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/Attribute_Index.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Index
{
  #keys: '3[415136.0.992900061][415136.0.992900060][415136.0.992900062]'
  Description: '列号'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.992900064][415136.0.992900063][415136.0.992900065]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.992900067][415136.0.992900066][415136.0.992900068]'
  Description: '开始日期'
  ValueType: Date
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/Function_CalcIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcIndex
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-13-2024 (created)
    value := ifexpr( isnull( this.PreviousColumn() ), 0, this.PreviousColumn().Index() + 1 );
    this.Index( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostColumn0/_ROOT_Type_DLEngineLogisticsCostColumn#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DLEngineLogisticsCostColumn
{
  #keys: '5[415136.0.992900058][415136.0.992900056][0.0.0][415136.0.992900057][415136.0.992900059]'
  BaseType: Object
  Description: '大连发动机物流成本报表列'
  StructuredName: 'DLEngineLogisticsCostColumns'
}
_Main/BL/Type_CCEngineLogisticsCostReport/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[415136.0.986400950][415136.0.986400949][415136.0.986400951]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostReport/Attribute_IsShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsShow
{
  #keys: '3[415136.0.986400953][415136.0.986400952][415136.0.986400954]'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostReport/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.986400956][415136.0.986400955][415136.0.986400957]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostReport/DefaultValue_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ID
}
_Main/BL/Type_CCEngineLogisticsCostReport/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Clear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Method Clear
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    this.Column( relflush );
    this.Row( relflush );
    this.GenerateColumn( this.MacroPlan() );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/Method_Generate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
Quintiq file version 2.0
#parent: #root
Method Generate (
  CCEngineLogisticsCostSearch search,
  Product_MPs products
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    table            := selectobject( this, MacroPlan.CCEngineLogisticsCostReport, report, not report.IsShow() );
    allunit          := '<All>';
    //清空之前存储的显示数据
    this.Clear();
    //过滤后的产品id
    productids       := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() )
                                      and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() )
                                      and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() );
    sumrow           := this.Row( relnew, Name := 'SUM', RowNr := table.Row( relsize ) );
    traverse( table, Row, row ){
      productid      := construct( Strings );
      productid.Add( row.Name() );
      if( productids.ContainsAll( productid ) ){
        showrow      := this.Row( relnew, Name := row.Name(), RowNr := row.RowNr() );
        traverse( row, Cell, cell ){
          column     := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
          sumcell    := selectobject( column, Cell, c, c.Row() = sumrow );
          if( isnull( sumcell ) ){
            sumcell  := sumrow.Cell( relnew, RentEnterCost         := 0
                                     , RentOutCost                 := 0
                                     , FactoryToRentTransCost      := 0
                                     , RentStorageCost             := 0 );
            column.Cell( relinsert, sumcell );
          }
          showcell   := showrow.Cell( relnew, RentEnterCost := cell.RentEnterCost(), RentOutCost := cell.RentOutCost(), FactoryToRentTransCost := cell.FactoryToRentTransCost(), RentStorageCost := cell.RentStorageCost() );
          column.Cell( relinsert, showcell );
          sumcell.RentEnterCost( cell.RentEnterCost() + sumcell.RentEnterCost() );
          sumcell.RentOutCost( cell.RentOutCost() + sumcell.RentOutCost() );
          sumcell.FactoryToRentTransCost( cell.FactoryToRentTransCost() + sumcell.FactoryToRentTransCost() );
          sumcell.RentStorageCost( cell.RentStorageCost() + sumcell.RentStorageCost() );
        }
      }
    }
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/Method_GenerateColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  MacroPlan owner
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    startofplanning           := owner.StartOfPlanning();
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
      periodtime := start.Date();
      periodname := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, Name := periodname, StartDate := periodtime );
    }
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/Method_GetRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
Method GetRow (
  String product
) as CCEngineLogisticsCostRow
{
  Description: '根据工厂获取行'
  TextBody:
  [*
    // ç”„兰鸽 Aug-2-2024 (created)
    row := selectobject( this, Row, row, row.Name() = product );
    if( isnull( row ) ){
      //初始化单元格
      row := this.Row( relnew, Name := product );
      traverse( this, Column, column ){
        row.Initialize( column );
      }
    }
    return row;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/Method_IsInUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method IsInUnit (
  StockingPoint_MP sp,
  String unitname
) as Boolean
{
  Description: '是否属于某个线'
  TextBody:
  [*
    // ç”„兰鸽 Aug-5-2024 (created)
    unit                  := sp.Unit();
    parentunits           := unit.GetAllParent();
    return sp.ID() = unitname or unit.ID() = unitname or exists( parentunits, Elements, punit, punit.ID() = unitname );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Download.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,152 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
) as BinaryValue
{
  Description: '下载财务报表数据'
  TextBody:
  [*
    table := selectobject( macroPlan, CCEngineLogisticsCostReport, table, table.IsShow() );
    xmlDOMI := XMLDOMImplementation::Create();
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
    //Product
    productcolumnelement := xmlDOM.CreateElement( "column" );
    productnameelement   := xmlDOM.CreateElement( "name" );
    producttypeelement   := xmlDOM.CreateElement( "type" );
    productnameelement.TextContent( 'Product' );
    producttypeelement.TextContent( "String" );
    productcolumnelement.AppendChild( productnameelement );
    productcolumnelement.AppendChild( producttypeelement );
    //Attribute
    attricolumnelement := xmlDOM.CreateElement( "column" );
    attrinameelement   := xmlDOM.CreateElement( "name" );
    attritypeelement   := xmlDOM.CreateElement( "type" );
    attrinameelement.TextContent( 'Attribute' );
    attritypeelement.TextContent( "String" );
    attricolumnelement.AppendChild( attrinameelement );
    attricolumnelement.AppendChild( attritypeelement );
    tableElement.AppendChild( productcolumnelement );
    tableElement.AppendChild( attricolumnelement );
    traverse ( table, Column, column ) {
      columnelement := xmlDOM.CreateElement( "column" );
      nameelement   := xmlDOM.CreateElement( "name" );
      typeelement   := xmlDOM.CreateElement( "type" );
      nameelement.TextContent( column.Name() );
      typeelement.TextContent( "String" );
      columnelement.AppendChild( nameelement );
      columnelement.AppendChild( typeelement );
      cells := selectsortedset( column, Cell, cell, cell.Row().RowNr() );
      traverse ( cells, Elements, c ) {
        if( column.Index() = 0 ){
          row := c.Row();
          //Product
          product1cellElement := xmlDOM.CreateElement( "cell" );
          product1cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product1cellElement );
          product2cellElement := xmlDOM.CreateElement( "cell" );
          product2cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product2cellElement );
          product3cellElement := xmlDOM.CreateElement( "cell" );
          product3cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product3cellElement );
          product4cellElement := xmlDOM.CreateElement( "cell" );
          product4cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product4cellElement );
          product5cellElement := xmlDOM.CreateElement( "cell" );
          product5cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product5cellElement );
          product6cellElement := xmlDOM.CreateElement( "cell" );
          product6cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product6cellElement );
          product7cellElement := xmlDOM.CreateElement( "cell" );
          product7cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product7cellElement );
          //Attribute
          //外租库入库费用
          rententercostcellElement := xmlDOM.CreateElement( "cell" );
          rententercostcellElement.SetAttribute( "value", 'RentEnterCost' );
          attricolumnelement.AppendChild( rententercostcellElement );
          //外租库出库费用
          rentoutcostcellElement := xmlDOM.CreateElement( "cell" );
          rentoutcostcellElement.SetAttribute( "value", 'RentOutCost' );
          attricolumnelement.AppendChild( rentoutcostcellElement );
          //厂内到外租库运输费用
          factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
          factorytorenttranscostcellElement.SetAttribute( "value", 'FactoryToRentTransCost' );
          attricolumnelement.AppendChild( factorytorenttranscostcellElement );
          //外租库仓储费用
          rentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
          rentstoragecostcellElement.SetAttribute( "value", 'RentStorageCost' );
          attricolumnelement.AppendChild( rentstoragecostcellElement );
          //预计总费用
          estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
          estimatedtotalcostcellElement.SetAttribute( "value", 'EstimatedTotalCost' );
          attricolumnelement.AppendChild( estimatedtotalcostcellElement );
          //系数
          coefficientcellElement := xmlDOM.CreateElement( "cell" );
          coefficientcellElement.SetAttribute( "value", 'Coefficient' );
          attricolumnelement.AppendChild( coefficientcellElement );
          //总费用
          totalcostcellElement := xmlDOM.CreateElement( "cell" );
          totalcostcellElement.SetAttribute( "value", 'TotalCost' );
          attricolumnelement.AppendChild( totalcostcellElement );
        }
        //外租库入库费用
        rententercostcellElement := xmlDOM.CreateElement( "cell" );
        rententercostcellElement.SetAttribute( "value", [String]c.RentEnterCost() );
        columnelement.AppendChild( rententercostcellElement );
        //外租库出库费用
        rentoutcostcellElement := xmlDOM.CreateElement( "cell" );
        rentoutcostcellElement.SetAttribute( "value", [String]c.RentOutCost() );
        columnelement.AppendChild( rentoutcostcellElement );
        //厂内到外租库运输费用
        factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
        factorytorenttranscostcellElement.SetAttribute( "value", [String]c.FactoryToRentTransCost() );
        columnelement.AppendChild( factorytorenttranscostcellElement );
        //外租库仓储费用
        rentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
        rentstoragecostcellElement.SetAttribute( "value", [String]c.RentStorageCost() );
        columnelement.AppendChild( rentstoragecostcellElement );
        //预计总费用
        estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
        estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimatedTotalCost() );
        columnelement.AppendChild( estimatedtotalcostcellElement );
        //系数
        coefficientcellElement := xmlDOM.CreateElement( "cell" );
        coefficientcellElement.SetAttribute( "value", [String]c.Coefficient() );
        columnelement.AppendChild( coefficientcellElement );
        //总费用
        totalcostcellElement := xmlDOM.CreateElement( "cell" );
        totalcostcellElement.SetAttribute( "value", [String]c.TotalCost() );
        columnelement.AppendChild( totalcostcellElement );
      }
      tableElement.AppendChild( columnelement );
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( CCEngineLogisticsCostReport::GetDefaultName() );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultAllUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultAllUnit () const declarative as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '<All>';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultCCUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultName () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return 'CC engine logistics cost reports';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetDefaultProductParent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultProductParent () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-14-2024 (created)
    return '产成品';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetStockingPointCCLine.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetStockingPointCCLine () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    //return '长春装配线边库';
    return '长春装配线';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_GetStockingPointCCRent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetStockingPointCCRent () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '长春外租库';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/StaticMethod_Initialize.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,166 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initialize (
  MacroPlan owner
)
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    owner.CCEngineLogisticsCostReport( relflush );
    produtparent              := CCEngineLogisticsCostReport::GetDefaultProductParent();
    name                      := CCEngineLogisticsCostReport::GetDefaultName();
    allunit                   := CCEngineLogisticsCostReport::GetDefaultAllUnit();
    ccunit                    := CCEngineLogisticsCostReport::GetDefaultCCUnit();
    ccline                    := CCEngineLogisticsCostReport::GetStockingPointCCLine();
    ccrent                    := CCEngineLogisticsCostReport::GetStockingPointCCRent();
    startofplanning           := owner.StartOfPlanning().Date();
    //startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    table                     := owner.CCEngineLogisticsCostReport( relnew, ID := name, Name := name );
    showtable                 := owner.CCEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    search                    := owner.CCEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
    products                  := construct( Product_MPs );
    table.GenerateColumn( owner );
    //外租库入库费用:取自财务产量报表的产量,在产品表根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的包装容量和入库单价,用公式计算,月度进行汇总
    traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//财务产量报表非导入
      traverse( source, FinancialProductionReport, report, not report.IsShow() ){//财务产量报表不显示
        traverse( report, FinancialProductionRow, row, row.Unit() = ccunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' ) ){//财务产量报表里的长春产量, ä¸ä¸º0
          ccrow               := table.GetRow( row.Name() );
          product             := row.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            //查询对应的发动机成本
            enginecost          := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
            if( not isnull( enginecost ) ){
              products.Add( product );
              traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' ){
                //入库量/包装容量*入库单价,入库量等于长春产量
                quantity          := ceil( [Number]cell.Value() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                column            := selectobject( table, Column, column, column.Name() = cell.FinancialProductionColumn().Name() );
                //外租库入库费用
                ccrow.SetRentEnterCost( column, quantity );
              }
            }
          }
        }
      }
    }
    //外租库出库费用:出库量等于长春销量,取自财务销量报表的销量,在产品表根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的包装容量和出库单价,用公式计算,月度进行汇总
    traverse( owner, FinancialSalesSource, source, not source.IsImport() ){//财务销量报表非导入
      traverse( source, FinancialSalesReport, report, not report.IsShow() ){//财务销量报表不显示
        traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' ) ){//财务销量报表里的长春产量, ä¸ä¸º0
          ccrow               := table.GetRow( row.Name() );
          product             := row.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            //查询对应的发动机成本
            enginecost          := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
            if( not isnull( enginecost ) ){
              products.Add( product );
              traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' ){
                //出库量/包装容量*出库单价,入库量等于长春销量
                quantity          := ceil( [Number]cell.Value() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                column            := selectobject( table, Column, column, column.Name() = cell.FinancialSalesColumn().Name() );
                //外租库出库费用
                ccrow.SetRentOutCost( column, quantity );
              }
            }
          }
        }
      }
    }
    //厂内到外租库运输费用:,在 trip plan里找到长春装配线边库到长春外租库的运输数量,,,用公式计算得出结果,月度进行汇总
    traverse( owner, Unit.Lane.LaneLeg, laneleg ){
      //起始库存点是否是长春装配线边库
      originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
      isccspline             := table.IsInUnit( originsp, ccline );
      //目的地是否是长春外租库
      destisp                := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
      isccrent               := table.IsInUnit( destisp, ccrent );
      if( isccspline and isccrent ){
        traverse( laneleg, Trip, trip, trip.Arrival().Date() < startofnextyear ){
          periodtime         := trip.Arrival().StartOfMonth().Date();
          periodname         := periodtime.Format( "M2/D2/Y" );
          column             := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
          traverse( trip, ProductInTrip, pit, pit.Quantity() = 0 ){
            row              := table.GetRow( pit.ProductID() );
            product          := pit.Product_MP();
            productparents   := product.GetAllParent();
            if( exists( productparents, Elements, e, e.ID() = produtparent ) ){////查询产品类型是发动机
              //在发动机成本参数表找到对应的包装容量
              enginecost       := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
              //在运输成本参数表里找到发动机对应运输单价和装载容量
              transcost        := selectobject( owner, LogisticsCostTransport, trans, trans.Origin() = ccline
                                                and trans.Destination() = ccrent
                                                and exists( productparents, Elements, e, e.ID() = trans.Product() ) );
              if( not isnull( enginecost ) and not isnull( transcost ) ){
                products.Add( product );
                //运输数量/包装容量/装载容量*运输单价
                quantity       := ceil( ceil( [Number]pit.Quantity() / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//四舍五入
                row.SetFactoryToRentTransCost( column, quantity );
              }
            }
          }
        }
      }
    }
    //外租库仓储费用:仓储数量/包装容量*仓储单价,在Actual inventories里取到长春外租库该发动机的仓储量,根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的仓储单价和包装容量,用公式计算,月度进行汇总
    traverse( owner, StockingPoint_MP, stockingpoint ){
      //是否属于长春外租库
      isccrent               := table.IsInUnit( stockingpoint, ccrent );
      if( isccrent ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() ){
          //获取行
          product            := pisp.Product_MP();
          productparents     := product.GetAllParent();
          row                := table.GetRow( pisp.ProductID() );
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){////查询产品类型是发动机
            //查询对应的发动机成本
            enginecost         := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
            if( not isnull( enginecost ) ){
              products.Add( product );
              //当product planning的日期区间在需要的日期区间内
              traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
                        ){
                periodtime := pispip.Start().StartOfMonth().Date();
                periodname := periodtime.Format( "M2/D2/Y" );
                quantity   := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                column := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
                row.SetRentStorageCost( column, quantity );
              }
            }
          }
        }
      }
    }
    rows := selectsortedset( table, Row, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    //
    showtable.Generate( search, products );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport/_ROOT_Type_CCEngineLogisticsCostReport.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CCEngineLogisticsCostReport
{
  #keys: '5[415136.0.986400937][415136.0.986400935][0.0.0][415136.0.986400936][415136.0.986400938]'
  BaseType: Object
  Description: '长春发动机物流成本报表'
  StructuredName: 'CCEngineLogisticsCostReports'
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Attribute_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ID
{
  #keys: '3[415136.0.992900074][415136.0.992900073][415136.0.992900075]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Attribute_IsShow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsShow
{
  #keys: '3[415136.0.992900077][415136.0.992900076][415136.0.992900078]'
  ValueType: Boolean
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.992900080][415136.0.992900079][415136.0.992900081]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostReport0/DefaultValue_ID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ID
}
_Main/BL/Type_CCEngineLogisticsCostReport0/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Clear.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Method Clear
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-13-2024 (created)
    this.Column( relflush );
    this.Row( relflush );
    this.GenerateColumn( this.MacroPlan() );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_Generate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,68 @@
Quintiq file version 2.0
#parent: #root
Method Generate (
  DLEngineLogisticsCostSearch search,
  Product_MPs products
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    table            := selectobject( this, MacroPlan.DLEngineLogisticsCostReport, report, not report.IsShow() );
    allunit          := '<All>';
    //清空之前存储的显示数据
    this.Clear();
    //过滤后的产品id
    productids       := selectuniquevalues( products, Elements, product, ( search.Generation() = allunit or product.Generation() = search.Generation() )
                                      and ( search.MqbMlb() = allunit or product.MQBMLB() = search.MqbMlb() )
                                      and ( search.Power() = allunit or product.Power() = search.Power() ), product.ID() );
    sumrow           := this.Row( relnew, Name := 'SUM', RowNr := table.Row( relsize ) );
    traverse( table, Row, row ){
      productid      := construct( Strings );
      productid.Add( row.Name() );
      if( productids.ContainsAll( productid ) ){
        showrow      := this.Row( relnew, Name := row.Name(), RowNr := row.RowNr() );
        traverse( row, Cell, cell ){
          column     := selectobject( this, Column, column, column.Name() = cell.Column().Name() );
          sumcell    := selectobject( column, Cell, c, c.Row() = sumrow );
          if( isnull( sumcell ) ){
            sumcell  := sumrow.Cell( relnew, CCRentEnterCost         := 0
                                     , CCRentOutCost                 := 0
                                     , CCLongTransCoat               := 0
                                     , CCShortTransCost              := 0
                                     , CCRentStorageCost             := 0
                                     , DLRentEnterCost               := 0
                                     , DLRentOutCost                 := 0
                                     , FactoryToDLRentTransCost      := 0
                                     , DLRentStorageCost             := 0 );
            column.Cell( relinsert, sumcell );
          }
          showcell   := showrow.Cell( relnew, CCRentEnterCost        := cell.CCRentEnterCost()
                                      , CCRentOutCost                := cell.CCRentOutCost()
                                      , CCLongTransCoat              := cell.CCLongTransCoat()
                                      , CCShortTransCost             := cell.CCShortTransCost()
                                      , CCRentStorageCost            := cell.CCRentStorageCost()
                                      , DLRentEnterCost              := cell.DLRentEnterCost()
                                      , DLRentOutCost                := cell.DLRentOutCost()
                                      , FactoryToDLRentTransCost     := cell.FactoryToDLRentTransCost()
                                      , DLRentStorageCost            := cell.DLRentStorageCost() );
          column.Cell( relinsert, showcell );
          sumcell.CCRentEnterCost( cell.CCRentEnterCost() + sumcell.CCRentEnterCost() );
          sumcell.CCRentOutCost( cell.CCRentOutCost() + sumcell.CCRentOutCost() );
          sumcell.CCLongTransCoat( cell.CCLongTransCoat() + sumcell.CCLongTransCoat() );
          sumcell.CCShortTransCost( cell.CCShortTransCost() + sumcell.CCShortTransCost() );
          sumcell.CCRentStorageCost( cell.CCRentStorageCost() + sumcell.CCRentStorageCost() );
          sumcell.DLRentEnterCost( cell.DLRentEnterCost() + sumcell.DLRentEnterCost() );
          sumcell.DLRentOutCost( cell.DLRentOutCost() + sumcell.DLRentOutCost() );
          sumcell.FactoryToDLRentTransCost( cell.FactoryToDLRentTransCost() + sumcell.FactoryToDLRentTransCost() );
          sumcell.DLRentStorageCost( cell.DLRentStorageCost() + sumcell.DLRentStorageCost() );
        }
      }
    }
    info( '-------------------------g------------end---------------------------------' );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_GenerateColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method GenerateColumn (
  MacroPlan owner
)
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-13-2024 (created)
    startofplanning           := owner.StartOfPlanning();
    startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    for( start := startofyear; start < startofnextyear; start := start.StartOfNextMonth() ){
      periodtime := start.Date();
      periodname := periodtime.Format( "M2/D2/Y" );
      this.Column( relnew, Name := periodname, StartDate := periodtime );
    }
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_GetRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
Method GetRow (
  String product
) as DLEngineLogisticsCostRow
{
  Description: '根据工厂获取行'
  TextBody:
  [*
    // ç”„兰鸽 Aug-13-2024 (created)
    row := selectobject( this, Row, row, row.Name() = product );
    if( isnull( row ) ){
      //初始化单元格
      row := this.Row( relnew, Name := product );
      traverse( this, Column, column ){
        row.Initialize( column );
      }
    }
    return row;
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/Method_IsInUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method IsInUnit (
  StockingPoint_MP sp,
  String unitname
) as Boolean
{
  Description: '是否属于某个线'
  TextBody:
  [*
    // ç”„兰鸽 Aug-5-2024 (created)
    unit                  := sp.Unit();
    parentunits           := unit.GetAllParent();
    return sp.ID() = unitname or unit.ID() = unitname or exists( parentunits, Elements, punit, punit.ID() = unitname );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Download.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,212 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Download (
  MacroPlan macroPlan
) as BinaryValue
{
  Description: '下载财务报表数据'
  TextBody:
  [*
    table := selectobject( macroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
    xmlDOMI := XMLDOMImplementation::Create();
    xmlDOM  := xmlDOMI.CreateDocumentFromString( '<?xml version="1.0" encoding="UTF-16"?><table><name>' + table.Name() + '</name></table>' );
    tableElement := xmlDOM.GetElementByTagName( "table", 0 );
    //Product
    productcolumnelement := xmlDOM.CreateElement( "column" );
    productnameelement   := xmlDOM.CreateElement( "name" );
    producttypeelement   := xmlDOM.CreateElement( "type" );
    productnameelement.TextContent( 'Product' );
    producttypeelement.TextContent( "String" );
    productcolumnelement.AppendChild( productnameelement );
    productcolumnelement.AppendChild( producttypeelement );
    //Attribute
    attricolumnelement := xmlDOM.CreateElement( "column" );
    attrinameelement   := xmlDOM.CreateElement( "name" );
    attritypeelement   := xmlDOM.CreateElement( "type" );
    attrinameelement.TextContent( 'Attribute' );
    attritypeelement.TextContent( "String" );
    attricolumnelement.AppendChild( attrinameelement );
    attricolumnelement.AppendChild( attritypeelement );
    tableElement.AppendChild( productcolumnelement );
    tableElement.AppendChild( attricolumnelement );
    traverse ( table, Column, column ) {
      columnelement := xmlDOM.CreateElement( "column" );
      nameelement   := xmlDOM.CreateElement( "name" );
      typeelement   := xmlDOM.CreateElement( "type" );
      nameelement.TextContent( column.Name() );
      typeelement.TextContent( "String" );
      columnelement.AppendChild( nameelement );
      columnelement.AppendChild( typeelement );
      cells := selectsortedset( column, Cell, cell, cell.Row().RowNr() );
      traverse ( cells, Elements, c ) {
        if( column.Index() = 0 ){
          row := c.Row();
          //Product
          product1cellElement := xmlDOM.CreateElement( "cell" );
          product1cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product1cellElement );
          product2cellElement := xmlDOM.CreateElement( "cell" );
          product2cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product2cellElement );
          product3cellElement := xmlDOM.CreateElement( "cell" );
          product3cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product3cellElement );
          product4cellElement := xmlDOM.CreateElement( "cell" );
          product4cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product4cellElement );
          product5cellElement := xmlDOM.CreateElement( "cell" );
          product5cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product5cellElement );
          product6cellElement := xmlDOM.CreateElement( "cell" );
          product6cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product6cellElement );
          product7cellElement := xmlDOM.CreateElement( "cell" );
          product7cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product7cellElement );
          product8cellElement := xmlDOM.CreateElement( "cell" );
          product8cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product8cellElement );
          product9cellElement := xmlDOM.CreateElement( "cell" );
          product9cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product9cellElement );
          product10cellElement := xmlDOM.CreateElement( "cell" );
          product10cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product10cellElement );
          product11cellElement := xmlDOM.CreateElement( "cell" );
          product11cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product11cellElement );
          product12cellElement := xmlDOM.CreateElement( "cell" );
          product12cellElement.SetAttribute( "value", row.Name() );
          productcolumnelement.AppendChild( product12cellElement );
          //Attribute
          //长春外租库入库费用
          ccrententercostcellElement := xmlDOM.CreateElement( "cell" );
          ccrententercostcellElement.SetAttribute( "value", 'CCRentEnterCost' );
          attricolumnelement.AppendChild( ccrententercostcellElement );
          //长春外租库出库费用
          ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
          ccrentoutcostcellElement.SetAttribute( "value", 'CCRentOutCost' );
          attricolumnelement.AppendChild( ccrentoutcostcellElement );
          //长春长途运输费用
          cclongtranscostcellElement := xmlDOM.CreateElement( "cell" );
          cclongtranscostcellElement.SetAttribute( "value", 'CCLongTransCost' );
          attricolumnelement.AppendChild( cclongtranscostcellElement );
          //长春短途运输费用
          ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" );
          ccshorttranscostcellElement.SetAttribute( "value", 'CCShortTransCost' );
          attricolumnelement.AppendChild( ccshorttranscostcellElement );
          //长春外租库仓储费用
          ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
          ccrentstoragecostcellElement.SetAttribute( "value", 'CCRentStorageCost' );
          attricolumnelement.AppendChild( ccrentstoragecostcellElement );
          //大连外租库入库费用
          dlrententercostcellElement := xmlDOM.CreateElement( "cell" );
          dlrententercostcellElement.SetAttribute( "value", 'DLRentEnterCost' );
          attricolumnelement.AppendChild( dlrententercostcellElement );
          //大连外租库出库费用
          dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
          dlrentoutcostcellElement.SetAttribute( "value", 'DLRentOutCost' );
          attricolumnelement.AppendChild( dlrentoutcostcellElement );
          //厂内到外租库运输费用
          factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
          factorytorenttranscostcellElement.SetAttribute( "value", 'FactoryToRentTransCost' );
          attricolumnelement.AppendChild( factorytorenttranscostcellElement );
          //大连外租库仓储费用
          dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
          dlrentstoragecostcellElement.SetAttribute( "value", 'DLRentStorageCost' );
          attricolumnelement.AppendChild( dlrentstoragecostcellElement );
          //预计总费用
          estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
          estimatedtotalcostcellElement.SetAttribute( "value", 'EstimatedTotalCost' );
          attricolumnelement.AppendChild( estimatedtotalcostcellElement );
          //系数
          coefficientcellElement := xmlDOM.CreateElement( "cell" );
          coefficientcellElement.SetAttribute( "value", 'Coefficient' );
          attricolumnelement.AppendChild( coefficientcellElement );
          //总费用
          totalcostcellElement := xmlDOM.CreateElement( "cell" );
          totalcostcellElement.SetAttribute( "value", 'TotalCost' );
          attricolumnelement.AppendChild( totalcostcellElement );
        }
        //长春外租库入库费用
        ccrententercostcellElement := xmlDOM.CreateElement( "cell" );
        ccrententercostcellElement.SetAttribute( "value", [String]c.CCRentEnterCost() );
        columnelement.AppendChild( ccrententercostcellElement );
        //长春外租库出库费用
        ccrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
        ccrentoutcostcellElement.SetAttribute( "value", [String]c.CCRentOutCost() );
        columnelement.AppendChild( ccrentoutcostcellElement );
        //长春长途运输费用
        cclongtranscostcellElement := xmlDOM.CreateElement( "cell" );
        cclongtranscostcellElement.SetAttribute( "value", [String]c.CCLongTransCoat() );
        columnelement.AppendChild( cclongtranscostcellElement );
        //长春短途运输费用
        ccshorttranscostcellElement := xmlDOM.CreateElement( "cell" );
        ccshorttranscostcellElement.SetAttribute( "value", [String]c.CCShortTransCost() );
        columnelement.AppendChild( ccshorttranscostcellElement );
        //长春外租库仓储费用
        ccrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
        ccrentstoragecostcellElement.SetAttribute( "value", [String]c.CCRentStorageCost() );
        columnelement.AppendChild( ccrentstoragecostcellElement );
        //大连外租库入库费用
        dlrententercostcellElement := xmlDOM.CreateElement( "cell" );
        dlrententercostcellElement.SetAttribute( "value", [String]c.DLRentEnterCost() );
        columnelement.AppendChild( dlrententercostcellElement );
        //大连外租库出库费用
        dlrentoutcostcellElement := xmlDOM.CreateElement( "cell" );
        dlrentoutcostcellElement.SetAttribute( "value", [String]c.DLRentOutCost() );
        columnelement.AppendChild( dlrentoutcostcellElement );
        //厂内到外租库运输费用
        factorytorenttranscostcellElement := xmlDOM.CreateElement( "cell" );
        factorytorenttranscostcellElement.SetAttribute( "value", [String]c.FactoryToDLRentTransCost() );
        columnelement.AppendChild( factorytorenttranscostcellElement );
        //大连外租库仓储费用
        dlrentstoragecostcellElement := xmlDOM.CreateElement( "cell" );
        dlrentstoragecostcellElement.SetAttribute( "value", [String]c.DLRentStorageCost() );
        columnelement.AppendChild( dlrentstoragecostcellElement );
        //预计总费用
        estimatedtotalcostcellElement := xmlDOM.CreateElement( "cell" );
        estimatedtotalcostcellElement.SetAttribute( "value", [String]c.EstimatedTotalCost() );
        columnelement.AppendChild( estimatedtotalcostcellElement );
        //系数
        coefficientcellElement := xmlDOM.CreateElement( "cell" );
        coefficientcellElement.SetAttribute( "value", [String]c.Coefficient() );
        columnelement.AppendChild( coefficientcellElement );
        //总费用
        totalcostcellElement := xmlDOM.CreateElement( "cell" );
        totalcostcellElement.SetAttribute( "value", [String]c.TotalCost() );
        columnelement.AppendChild( totalcostcellElement );
      }
      tableElement.AppendChild( columnelement );
    }
    xmlString := xmlDOMI.CreateSerializer().WriteToString( xmlDOM )
    //info( xmlString );
    tableGroupHandle := TableGroupHandle::Create( DLEngineLogisticsCostReport::GetDefaultName() );
    tableHandle      := TableHandle::ImportXML( BinaryValue::Construct( xmlString ) );
    tableGroupHandle.Add( tableHandle );
    binaryData := XLS::SaveTableGroupToBinaryData( tableGroupHandle, true );
    return binaryData.AsBinaryValue();
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultAllUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultAllUnit () const declarative as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '<All>';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultCCUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春工厂';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultDLUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连工厂';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultName () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return 'CC engine logistics cost reports';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetDefaultProductParent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultProductParent () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-14-2024 (created)
    return '产成品';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetStockingPointCCRent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetStockingPointCCRent () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '长春外租库';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetStockingPointDLLine.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetStockingPointDLLine () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    //return '长春装配线边库';
    return '大连装配线';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_GetStockingPointDLRent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetStockingPointDLRent () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    return '大连外租库';
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/StaticMethod_Initialize.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,272 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Initialize (
  MacroPlan owner
)
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-12-2024 (created)
    owner.DLEngineLogisticsCostReport( relflush );
    produtparent              := DLEngineLogisticsCostReport::GetDefaultProductParent();
    name                      := DLEngineLogisticsCostReport::GetDefaultName();
    allunit                   := DLEngineLogisticsCostReport::GetDefaultAllUnit();
    ccunit                    := DLEngineLogisticsCostReport::GetDefaultCCUnit();
    dlunit                    := DLEngineLogisticsCostReport::GetDefaultDLUnit();
    dlline                    := DLEngineLogisticsCostReport::GetStockingPointDLLine();
    ccrent                    := DLEngineLogisticsCostReport::GetStockingPointCCRent();
    dlrent                    := DLEngineLogisticsCostReport::GetStockingPointCCRent();
    startofplanning           := owner.StartOfPlanning().Date();
    //startofyear               := startofplanning.StartOfYear();
    startofnextyear           := startofplanning.StartOfNextYear();
    table                     := owner.DLEngineLogisticsCostReport( relnew, ID := name, Name := name );
    showtable                 := owner.DLEngineLogisticsCostReport( relnew, ID := name + 'Show', Name := name, IsShow := true );
    search                    := owner.DLEngineLogisticsCostSearch( relnew, Generation := allunit, MqbMlb := allunit, Power := allunit );
    products                  := construct( Product_MPs );
    table.GenerateColumn( owner );
    //发往长春的销量需要在trip plan里面找到起始库存点为大连装配线边库,目的地为长春外租库的产品 ç®—出发往长春的销量后,在发动机成本参数表里找到对应的包装容量和长春入库单价,用公式计算,月度进行汇总
    //在 trip plan里找到大连装配线边库到大连外租库的运输数量
    traverse( owner, Unit.Lane.LaneLeg, laneleg ){
      //起始库存点是否是大连装配线边库
      originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.OriginStockingPointID() );
      isdlspline             := table.IsInUnit( originsp, dlline );
      //目的地是否是长春外租库
      destisp                := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
      isccrent               := table.IsInUnit( destisp, ccrent );
      //目的地是否是大连外租库
      destisp                := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
      isdlrent               := table.IsInUnit( destisp, dlrent );
      if( isdlspline and ( isccrent or isdlrent ) ){
        traverse( laneleg, Trip, trip, trip.Departure().Date() < startofnextyear ){//由于需要考虑产品运输lead time,每个月的汇总数据需要推迟两天进行计算
          periodtime         := trip.Departure().StartOfMonth().Date();
          periodname         := periodtime.Format( "M2/D2/Y" );
          column             := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
          traverse( trip, ProductInTrip, pit, pit.Quantity() = 0 and exists( pit.Product_MP().GetAllParent(), Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            quantity         := [Number]pit.Quantity();
            row              := table.GetRow( pit.ProductID() );
            product          := pit.Product_MP();
            productparents   := product.GetAllParent();
            if( isccrent ){//目的地是长春外租库
              //在发动机成本参数表找到对应的包装容量
              enginecost     := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
              if( not isnull( enginecost ) ){
                products.Add( product );
                cell         := selectobject( row, Cell, cell, cell.Column() = column );
                cell.CCRentQuantity( cell.CCRentQuantity() + quantity );
                //长春外租库入库费用:入库量/包装容量*入库单价
                entercost    := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                //长春外租库出库费用: å‡ºåº“量/包装容量*出库单价
                outcost      := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
                cell.CCRentEnterCost( cell.CCRentEnterCost() + entercost );
                cell.CCRentOutCost( cell.CCRentOutCost() + outcost );
              }
            }
            if( isdlrent ){//目的地是大连外租库
              //在发动机成本参数表找到对应的包装容量
              enginecost     := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = dlunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
              //在运输成本参数表里找到发动机对应运输单价和装载容量
              transcost      := selectobject( owner, LogisticsCostTransport, trans, trans.Origin() = dlline
                                                and trans.Destination() = dlrent
                                                and exists( productparents, Elements, e, e.ID() = trans.Product() ) );
              if( not isnull( enginecost ) and not isnull( transcost ) ){
                products.Add( product );
                cell         := selectobject( row, Cell, cell, cell.Column() = column );
                //运输数量/包装容量/装载容量*运输单价
                cost         := ceil( ceil( quantity / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();//四舍五入
                cell.FactoryToDLRentTransCost( cell.FactoryToDLRentTransCost() + cost );
              }
            }
          }
        }
      }
    }
    //大连外租库入库费用:入库量/包装容量*入库单价,入库量等于大连工厂该产品产量减去发往长春的数量
    traverse( owner, FinancialProductionSource, source, not source.IsImport() ){//财务产量报表非导入
      traverse( source, FinancialProductionReport, report, not report.IsShow() ){//财务产量报表不显示
        traverse( report, FinancialProductionRow, row, row.Unit() = dlunit and exists( row, FinancialProductionCell, cell, cell.Value() <> '0' ) ){//财务产量报表里的大连产量, ä¸ä¸º0
          ccrow               := table.GetRow( row.Name() );
          product             := row.Product_MP();
          products.Add( product );
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            //查询对应的发动机成本
            enginecost        := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = dlunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
            if( not isnull( enginecost ) ){
              traverse( row, FinancialProductionCell, cell, cell.Value() <> '0' ){
                column        := selectobject( table, Column, column, column.Name() = cell.FinancialProductionColumn().Name() );
                //大连外租库入库费用
                ccrow.SetDLRentEnterCost( column, enginecost, cell );
              }
            }
          }
        }
      }
    }
    //大连外租库出库费用:出库量/包装容量*出库单价,出库量等于大连工厂该产品销量减去发往长春的数量
    traverse( owner, FinancialSalesSource, source, not source.IsImport() ){//财务销量报表非导入
      traverse( source, FinancialSalesReport, report, not report.IsShow() ){//财务销量报表不显示
        traverse( report, FinancialSalesRow, row, row.Unit() = ccunit and exists( row, FinancialSalesCell, cell, cell.Value() <> '0' ) ){//财务销量报表里的大连产量, ä¸ä¸º0
          ccrow               := table.GetRow( row.Name() );
          product             := row.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            products.Add( product );
            //查询对应的发动机成本
            enginecost        := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = dlunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
            if( not isnull( enginecost ) ){
              traverse( row, FinancialSalesCell, cell, cell.Value() <> '0' ){
                column        := selectobject( table, Column, column, column.Name() = cell.FinancialSalesColumn().Name() );
                //大连外租库出库费用
                ccrow.SetDLRentOutCost( column, enginecost, cell );
              }
            }
          }
        }
      }
    }
    //长春长途运输费用:调拨数量/包装容量/装载容量*运输单价,调拨计划里找到该产品从DL到CC的调拨数量,即起始地大连装配线边库,目的地为长春外租库对应的运输数量,在发动机成本参数表找到对应的包装容量,在运输成本参数表里找到发动机对应运输单价和装载容量,用公式计算得出结果,月度进行汇总
    traverse( owner, TransferPlanRow, tprow ){
      product                 := selectobject( owner, Product_MP, product, product.ID() = tprow.ProductID() );
      productparents          := product.GetAllParent();
      if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
        //起始库存点是否是大连
        originsp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
        isdl                   := table.IsInUnit( originsp, dlunit );
        //目的地库存点是否是长春
        destisp                := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
        iscc                   := table.IsInUnit( destisp, ccunit );
        if( isdl and iscc ){
          //查询对应的发动机成本
          enginecost           := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
          //在运输成本参数表里找到发动机对应运输单价和装载容量
          transcost            := selectobject( owner, LogisticsCostTransport, trans, trans.Origin() = dlline
                                                  and trans.Destination() = dlrent
                                                  and exists( productparents, Elements, e, e.ID() = trans.Product() ) );
          if( not isnull( enginecost ) and not isnull( transcost ) ){
            row                := table.GetRow( product.ID() );
            products.Add( product );
            traverse( tprow,TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() <> Date::MinDate() ){
              periodtime       := tpcell.TransferPlanColumn().ColumnDate().StartOfMonth();
              periodname       := periodtime.Format( "M2/D2/Y" );
              column           := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
              cost             := ceil( ceil( [Number]tpcell.Value() / enginecost.PackagingCapacity() ) / transcost.LoadingCapacity() ) * transcost.TransportPrice();
              cell             := selectobject( row, Cell, cell, cell.Column() = column );
              cell.CCLongTransCoat( cell.CCLongTransCoat() + cost );
            }
          }
        }
      }
    }
    //长春短途运输费用:客户需求数量/包装容量/装载容量*运输单价,客户需求数量取自forecast里sales segment为长春的数量汇总,再用公式计算,月度进行汇总(取客户需求数量换算成车次)
    traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() < startofnextyear ){
      salessegment            := forecast.SalesSegment_MP();
      parentsalessegments     := salessegment.GetAllParent();
      //是否属于长春
      iscc                    := salessegment.Name() = ccunit or exists( parentsalessegments, Elements, psalessegment, psalessegment.Name() = ccunit );
      if( iscc ){
        product               := forecast.Product_MP();
        productparents        := product.GetAllParent();
        if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
          row                 := table.GetRow( forecast.ProductID() );
          products.Add( forecast.Product_MP() );
          //查询对应的发动机成本
          enginecost          := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                 and engine.MLB_MQB() = product.MQBMLB()
                                                 and engine.Factory() = ccunit
                                                 and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
          if( not isnull( enginecost ) ){
            traverse( forecast, PlanningSalesDemandInPeriod, psdip ){
              periodtime       := psdip.StartDate().StartOfMonth();
              periodname       := periodtime.Format( "M2/D2/Y" );
        //      info( '-------------------------', periodname, periodtime );
              column           := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
        //      info( '-------------------------', column.Name() );
              cost             := ceil( [Number]psdip.Quantity() / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
              cell             := selectobject( row, Cell, cell, cell.Column() = column );
              cell.CCShortTransCost( cell.CCShortTransCost() + cost );
            }
          }
        }
      }
    }
    //外租库仓储费用:仓储数量/包装容量*仓储单价,在Actual inventories里取到长春外租库/大连外租库该发动机的仓储量,根据发动机号找到对应的Generation å’Œæ¨ªçºµåˆ¶ï¼Œåœ¨å‘动机成本参数表里找到对应的仓储单价和包装容量,用公式计算,月度进行汇总
    traverse( owner, StockingPoint_MP, stockingpoint ){
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
      //是否属于长春外租库
      isccrent                := stockingpoint.ID() = ccrent or unit.ID() = ccrent or exists( parentunits, Elements, punit, punit.ID() = ccrent );
      //是否属于大连外租库
      isdlrent                := stockingpoint.ID() = dlrent or unit.ID() = dlrent or exists( parentunits, Elements, punit, punit.ID() = dlrent );
      if( isccrent or isdlrent ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() ){
          //获取行
          product             := pisp.Product_MP();
          productparents      := product.GetAllParent();
          if( exists( productparents, Elements, e, e.ID() = produtparent ) ){//查询产品类型是发动机
            row               := table.GetRow( pisp.ProductID() );
            products.Add( pisp.Product_MP() );
            traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear ){
              periodtime      := pispip.Start().StartOfMonth().Date();
              periodname      := periodtime.Format( "M2/D2/Y" );
              column          := selectobject( table, Column, column, column.Name() = periodname and column.StartDate() = periodtime );
              cell            := selectobject( row, Cell, cell, cell.Column() = column );
              if( isccrent ){
                //在发动机成本参数表找到对应的包装容量
                enginecost     := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                   and engine.MLB_MQB() = product.MQBMLB()
                                                   and engine.Factory() = ccunit
                                                   and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
                 if( not isnull( enginecost ) ){
                   cost        := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                   cell.CCRentStorageCost( cell.CCRentStorageCost() + cost );
                 }
              } else {
                //在发动机成本参数表找到对应的包装容量
                enginecost     := selectobject( owner, LogisticsCostEngine, engine, engine.Generation() = product.Generation()
                                                   and engine.MLB_MQB() = product.MQBMLB()
                                                   and engine.Factory() = dlunit
                                                   and exists( productparents, Elements, e, e.ID() = engine.Product() ) );
                 if( not isnull( enginecost ) ){
                   cost        := ceil( [Number]pispip.NewSupplyQuantity() / enginecost.PackagingCapacity() ) * enginecost.StoragePrice();//四舍五入
                   cell.DLRentStorageCost( cell.DLRentStorageCost() + cost );;
                 }
              }
            }
          }
        }
      }
    }
    rows := selectsortedset( table, Row, row, row.Name() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
    info( '-------------------------------------end---------------------------------' );
    //
    showtable.Generate( search, products );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostReport0/_ROOT_Type_DLEngineLogisticsCostReport#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DLEngineLogisticsCostReport
{
  #keys: '5[415136.0.992900071][415136.0.992900069][0.0.0][415136.0.992900070][415136.0.992900072]'
  BaseType: Object
  Description: '大连发动机物流成本报表'
  StructuredName: 'DLEngineLogisticsCostReports'
}
_Main/BL/Type_CCEngineLogisticsCostRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.986400984][415136.0.986400983][415136.0.986400985]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostRow/Attribute_RowNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RowNr
{
  #keys: '3[415136.0.986616244][415136.0.986616243][415136.0.986616245]'
  Description: '行号'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostRow/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_Initialize.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method Initialize (
  CCEngineLogisticsCostColumn column
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := this.Cell( relnew, RentEnterCost         := 0
                         , RentOutCost                 := 0
                         , FactoryToRentTransCost      := 0
                         , RentStorageCost             := 0 );
    column.Cell( relinsert, cell );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetFactoryToRentTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetFactoryToRentTransCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.FactoryToRentTransCost() + quantity;
    cell.FactoryToRentTransCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentEnterCost#517.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetRentEnterCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.RentEnterCost() + quantity;
    cell.RentEnterCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentOutCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetRentOutCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.RentOutCost() + quantity;
    cell.RentOutCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/Method_SetRentStorageCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetRentStorageCost (
  CCEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.RentStorageCost() + quantity;
    cell.RentStorageCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow/_ROOT_Type_CCEngineLogisticsCostRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CCEngineLogisticsCostRow
{
  #keys: '5[415136.0.986400975][415136.0.986400973][0.0.0][415136.0.986400974][415136.0.986400976]'
  BaseType: Object
  Description: '长春发动机物流成本报表行'
  StructuredName: 'CCEngineLogisticsCostRows'
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[415136.0.992900087][415136.0.992900086][415136.0.992900088]'
  Description: '名称'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Attribute_RowNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RowNr
{
  #keys: '3[415136.0.992900090][415136.0.992900089][415136.0.992900091]'
  Description: '行号'
  ValueType: Number
}
_Main/BL/Type_CCEngineLogisticsCostRow0/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_Initialize.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: #root
Method Initialize (
  DLEngineLogisticsCostColumn column
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := this.Cell( relnew, CCRentEnterCost           := 0
                         , CCRentOutCost                 := 0
                         , CCLongTransCoat               := 0
                         , CCShortTransCost              := 0
                         , CCRentStorageCost             := 0
                         , DLRentEnterCost               := 0
                         , DLRentOutCost                 := 0
                         , FactoryToDLRentTransCost      := 0
                         , DLRentStorageCost             := 0 );
    column.Cell( relinsert, cell );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentEnterCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method SetDLRentEnterCost (
  DLEngineLogisticsCostColumn column,
  LogisticsCostEngine enginecost,
  FinancialProductionCell fpcell
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    quantity      := [Number]fpcell.Value() - cell.CCRentQuantity();
    //入库量/包装容量*入库单价,入库量等于长春产量
    cost          := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
    value := cell.DLRentEnterCost() + cost;
    cell.DLRentEnterCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetDLRentOutCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method SetDLRentOutCost (
  DLEngineLogisticsCostColumn column,
  LogisticsCostEngine enginecost,
  FinancialSalesCell fscell
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    quantity      := [Number]fscell.Value() - cell.CCRentQuantity();
    //入库量/包装容量*入库单价,入库量等于长春产量
    cost          := ceil( quantity / enginecost.PackagingCapacity() ) * enginecost.WarehousingPrice();
    value := cell.DLRentOutCost() + cost;
    cell.DLRentOutCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetFactoryToRentTransCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetFactoryToRentTransCost (
  DLEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.FactoryToDLRentTransCost() + quantity;
    cell.FactoryToDLRentTransCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentOutCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetRentOutCost (
  DLEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.CCRentOutCost() + quantity;
    cell.CCRentOutCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/Method_SetRentStorageCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method SetRentStorageCost (
  DLEngineLogisticsCostColumn column,
  Number quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    value := cell.CCRentStorageCost() + quantity;
    cell.CCRentStorageCost( value );
  *]
}
_Main/BL/Type_CCEngineLogisticsCostRow0/_ROOT_Type_DLEngineLogisticsCostRow#0.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DLEngineLogisticsCostRow
{
  #keys: '5[415136.0.992900084][415136.0.992900082][0.0.0][415136.0.992900083][415136.0.992900085]'
  BaseType: Object
  Description: '大连发动机物流成本报表行'
  StructuredName: 'DLEngineLogisticsCostRows'
}
_Main/BL/Type_CCEngineLogisticsCostSearch/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[415136.0.986844795][415136.0.986844794][415136.0.986844796]'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostSearch/Attribute_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MqbMlb
{
  #keys: '3[415136.0.986844798][415136.0.986844797][415136.0.986844799]'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostSearch/Attribute_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Power
{
  #keys: '3[415136.0.986844801][415136.0.986844800][415136.0.986844802]'
  ValueType: String
}
_Main/BL/Type_CCEngineLogisticsCostSearch/DefaultValue_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Generation
}
_Main/BL/Type_CCEngineLogisticsCostSearch/DefaultValue_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: MqbMlb
}
_Main/BL/Type_CCEngineLogisticsCostSearch/DefaultValue_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Power
}
_Main/BL/Type_CCEngineLogisticsCostSearch/_ROOT_Type_CCEngineLogisticsCostSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CCEngineLogisticsCostSearch
{
  #keys: '5[415136.0.986844792][415136.0.986844790][0.0.0][415136.0.986844791][415136.0.986844793]'
  BaseType: Object
  Description: '长春发动机物流成本报表查询类'
  StructuredName: 'CCEngineLogisticsCostSearchs'
}
_Main/BL/Type_CC_EngineRackCell/Attribute_CleaningCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CleaningCost
{
  #keys: '3[413988.0.1476832734][413988.0.1476832733][413988.0.1476832735]'
  Description: '清洗费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_Coefficient.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Coefficient
{
  #keys: '3[413988.0.1476832767][413988.0.1476832766][413988.0.1476832768]'
  Description: '系数'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_EstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EstimatedTotalCost
{
  #keys: '3[413988.0.1476832744][413988.0.1476832743][413988.0.1476832745]'
  Description: '预计总费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_ExternalRentalWarehouseTransportationCosts.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ExternalRentalWarehouseTransportationCosts
{
  #keys: '3[413988.0.1476832711][413988.0.1476832710][413988.0.1476832712]'
  Description: '外租库运输费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfEmptyShelves
{
  #keys: '3[413988.0.1476832678][413988.0.1476832677][413988.0.1476832679]'
  Description: '空料架数量'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_OutboundExpensesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OutboundExpensesForRentedWarehouses
{
  #keys: '3[413988.0.1476832701][413988.0.1476832700][413988.0.1476832702]'
  Description: '外租库出库费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_RentalWarehouseStorageFees.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute RentalWarehouseStorageFees
{
  #keys: '3[413988.0.1476832724][413988.0.1476832723][413988.0.1476832725]'
  Description: '外租库仓储费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_StorageFeesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StorageFeesForRentedWarehouses
{
  #keys: '3[413988.0.1476832691][413988.0.1476832690][413988.0.1476832692]'
  Description: '外租库入库费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_TotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalCost
{
  #keys: '3[413988.0.1476832757][413988.0.1476832756][413988.0.1476832758]'
  Description: '总费用'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalQuantityOfMaterialRacks
{
  #keys: '3[413988.0.1476832665][413988.0.1476832664][413988.0.1476832666]'
  Description: '料架总数量'
  ValueType: Real
}
_Main/BL/Type_CC_EngineRackCell/StaticMethod_CreateData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateData (
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    macroPlan.CC_EngineRackRow( relflush );
    macroPlan.CC_EngineRackColumn( relflush );
    // åˆ›å»ºè¡ŒEVO5 MLB, EVO5 MQB, GEN3 MLB, GEN3 MQB
    macroPlan.CC_EngineRackRow( relnew, Generation := "EVO5", MLB_MQB := "MLB" );
    macroPlan.CC_EngineRackRow( relnew, Generation := "EVO5", MLB_MQB := "MQB" );
    macroPlan.CC_EngineRackRow( relnew, Generation := "GEN3", MLB_MQB := "MLB" );
    macroPlan.CC_EngineRackRow( relnew, Generation := "GEN3", MLB_MQB := "MQB" );
    // åˆ›å»ºåˆ—
    indexDate := macroPlan.StartOfPlanning().Date().StartOfMonth();
    for ( i := 0; i < 12; i++ ) {
      macroPlan.CC_EngineRackColumn( relnew, StartDate := indexDate );
      indexDate := indexDate.StartOfNextMonth();
    }
    // åˆ›å»ºå•元格
    traverse ( macroPlan, CC_EngineRackRow, ccerr ) {
      traverse ( macroPlan, CC_EngineRackColumn, ccerc ) {
        cell := ccerr.CC_EngineRackCell( relnew );
        // å¤–租库入库费用(发动机销量 / åŒ…装容量[向上取整] * æ–™æž¶å…¥åº“单价)
        // å¤–租库出库费用(发动机产量 / åŒ…装容量[向上取整] * æ–™æž¶å‡ºåº“单价)
      }
    }
  *]
}
_Main/BL/Type_CC_EngineRackCell/_ROOT_Type_CC_EngineRackCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CC_EngineRackCell
{
  #keys: '5[413988.0.1476832563][413988.0.1476832561][0.0.0][413988.0.1476832562][413988.0.1476832564]'
  BaseType: Object
  StructuredName: 'CC_EngineRackCells'
}
_Main/BL/Type_CC_EngineRackColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[413988.0.1476832655][413988.0.1476832654][413988.0.1476832656]'
  ValueType: Date
}
_Main/BL/Type_CC_EngineRackColumn/_ROOT_Type_CC_EngineRackColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CC_EngineRackColumn
{
  #keys: '5[413988.0.1476832558][413988.0.1476832556][0.0.0][413988.0.1476832557][413988.0.1476832559]'
  BaseType: Object
  StructuredName: 'CC_EngineRackColumns'
}
_Main/BL/Type_CC_EngineRackRow/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[413988.0.1476832621][413988.0.1476832620][413988.0.1476832622]'
  ValueType: String
}
_Main/BL/Type_CC_EngineRackRow/Attribute_MLB_MQB.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MLB_MQB
{
  #keys: '3[413988.0.1476832631][413988.0.1476832630][413988.0.1476832632]'
  ValueType: String
}
_Main/BL/Type_CC_EngineRackRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1476832641][413988.0.1476832640][413988.0.1476832642]'
  ValueType: String
}
_Main/BL/Type_CC_EngineRackRow/Function_CalcName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcName
{
  TextBody:
  [*
    // lihongji Aug-12-2024 (created)
    value := this.Generation() + " " + this.MLB_MQB();
    this.Name( value );
  *]
}
_Main/BL/Type_CC_EngineRackRow/_ROOT_Type_CC_EngineRackRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type CC_EngineRackRow
{
  #keys: '5[413988.0.1476832553][413988.0.1476832551][0.0.0][413988.0.1476832552][413988.0.1476832554]'
  BaseType: Object
  StructuredName: 'CC_EngineRackRows'
}
_Main/BL/Type_DLEngineLogisticsCostSearch/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[415136.0.992900097][415136.0.992900096][415136.0.992900098]'
  ValueType: String
}
_Main/BL/Type_DLEngineLogisticsCostSearch/Attribute_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MqbMlb
{
  #keys: '3[415136.0.992900100][415136.0.992900099][415136.0.992900101]'
  ValueType: String
}
_Main/BL/Type_DLEngineLogisticsCostSearch/Attribute_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Power
{
  #keys: '3[415136.0.992900103][415136.0.992900102][415136.0.992900104]'
  ValueType: String
}
_Main/BL/Type_DLEngineLogisticsCostSearch/DefaultValue_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Generation
}
_Main/BL/Type_DLEngineLogisticsCostSearch/DefaultValue_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: MqbMlb
}
_Main/BL/Type_DLEngineLogisticsCostSearch/DefaultValue_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Power
}
_Main/BL/Type_DLEngineLogisticsCostSearch/_ROOT_Type_DLEngineLogisticsCostSearch.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DLEngineLogisticsCostSearch
{
  #keys: '5[415136.0.992900094][415136.0.992900092][0.0.0][415136.0.992900093][415136.0.992900095]'
  BaseType: Object
  Description: '大连发动机物流成本报表查询类'
  StructuredName: 'DLEngineLogisticsCostSearchs'
}
_Main/BL/Type_DL_EngineRackCell/Attribute_CCLineHaulCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCLineHaulCost
{
  #keys: '3[413988.0.1488160127][413988.0.1488160126][413988.0.1488160128]'
  Description: 'CC长途运输费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_CCOutboundExpensesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCOutboundExpensesForRentedWarehouses
{
  #keys: '3[413988.0.1488160088][413988.0.1488160087][413988.0.1488160089]'
  Description: 'CC外租库出库费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_CCRentalWarehouseStorageFees.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCRentalWarehouseStorageFees
{
  #keys: '3[413988.0.1488160085][413988.0.1488160084][413988.0.1488160086]'
  Description: 'CC外租库仓储费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_CCShortDistanceTransportationCosts.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCShortDistanceTransportationCosts
{
  #keys: '3[413988.0.1488160140][413988.0.1488160139][413988.0.1488160141]'
  Description: 'CC短途运输费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_CCStorageFeesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCStorageFeesForRentedWarehouses
{
  #keys: '3[413988.0.1488160082][413988.0.1488160081][413988.0.1488160083]'
  Description: 'CC外租库入库费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_CleaningCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CleaningCost
{
  #keys: '3[413988.0.1488160070][413988.0.1488160069][413988.0.1488160071]'
  Description: '清洗费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_Coefficient.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Coefficient
{
  #keys: '3[413988.0.1488160076][413988.0.1488160075][413988.0.1488160077]'
  Description: '系数'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_DLExternalRentalWarehouseTransportationCosts.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLExternalRentalWarehouseTransportationCosts
{
  #keys: '3[413988.0.1488160120][413988.0.1488160119][413988.0.1488160121]'
  Description: 'DL外租库运输费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_DLOutboundExpensesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLOutboundExpensesForRentedWarehouses
{
  #keys: '3[413988.0.1488160107][413988.0.1488160106][413988.0.1488160108]'
  Description: 'DL外租库出库费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_DLRentalWarehouseStorageFees.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLRentalWarehouseStorageFees
{
  #keys: '3[413988.0.1488160104][413988.0.1488160103][413988.0.1488160105]'
  Description: '外租库仓储费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_DLStorageFeesForRentedWarehouses.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLStorageFeesForRentedWarehouses
{
  #keys: '3[413988.0.1488160101][413988.0.1488160100][413988.0.1488160102]'
  Description: 'DL外租库入库费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_EstimatedTotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EstimatedTotalCost
{
  #keys: '3[413988.0.1488160067][413988.0.1488160066][413988.0.1488160068]'
  Description: '预计总费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_NumberOfEmptyShelves.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute NumberOfEmptyShelves
{
  #keys: '3[413988.0.1488160059][413988.0.1488160058][413988.0.1488160060]'
  Description: '空料架数量'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_TotalCost.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalCost
{
  #keys: '3[413988.0.1488160073][413988.0.1488160072][413988.0.1488160074]'
  Description: '总费用'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/Attribute_TotalQuantityOfMaterialRacks.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalQuantityOfMaterialRacks
{
  #keys: '3[413988.0.1488160063][413988.0.1488160062][413988.0.1488160064]'
  Description: '料架总数量'
  ValueType: Real
}
_Main/BL/Type_DL_EngineRackCell/StaticMethod_CreateData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,36 @@
Quintiq file version 2.0
#parent: #root
StaticMethod CreateData (
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    macroPlan.DL_EngineRackRow( relflush );
    macroPlan.DL_EngineRackColumn( relflush );
    // åˆ›å»ºè¡ŒEVO5 MLB, EVO5 MQB, GEN3 MLB, GEN3 MQB
    macroPlan.DL_EngineRackRow( relnew, Generation := "EVO5", MLB_MQB := "MLB" );
    macroPlan.DL_EngineRackRow( relnew, Generation := "EVO5", MLB_MQB := "MQB" );
    macroPlan.DL_EngineRackRow( relnew, Generation := "GEN3", MLB_MQB := "MLB" );
    macroPlan.DL_EngineRackRow( relnew, Generation := "GEN3", MLB_MQB := "MQB" );
    // åˆ›å»ºåˆ—
    indexDate := macroPlan.StartOfPlanning().Date().StartOfMonth();
    for ( i := 0; i < 12; i++ ) {
      macroPlan.DL_EngineRackColumn( relnew, StartDate := indexDate );
      indexDate := indexDate.StartOfNextMonth();
    }
    // åˆ›å»ºå•元格
    traverse ( macroPlan, DL_EngineRackRow, dlerr ) {
      traverse ( macroPlan, DL_EngineRackColumn, dlerc ) {
        cell := dlerr.DL_EngineRackCell( relnew );
        // å¤–租库入库费用(发动机销量 / åŒ…装容量[向上取整] * æ–™æž¶å…¥åº“单价)
        // å¤–租库出库费用(发动机产量 / åŒ…装容量[向上取整] * æ–™æž¶å‡ºåº“单价)
      }
    }
  *]
}
_Main/BL/Type_DL_EngineRackCell/_ROOT_Type_DL_EngineRackCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DL_EngineRackCell
{
  #keys: '5[413988.0.1488132575][413988.0.1488132573][0.0.0][413988.0.1488132574][413988.0.1488132576]'
  BaseType: Object
  StructuredName: 'DL_EngineRackCells'
}
_Main/BL/Type_DL_EngineRackColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[413988.0.1488132628][413988.0.1488132627][413988.0.1488132629]'
  ValueType: Date
}
_Main/BL/Type_DL_EngineRackColumn/_ROOT_Type_DL_EngineRackColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DL_EngineRackColumn
{
  #keys: '5[413988.0.1488132585][413988.0.1488132583][0.0.0][413988.0.1488132584][413988.0.1488132586]'
  BaseType: Object
  StructuredName: 'DL_EngineRackColumns'
}
_Main/BL/Type_DL_EngineRackRow/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[413988.0.1488132589][413988.0.1488132588][413988.0.1488132590]'
  ValueType: String
}
_Main/BL/Type_DL_EngineRackRow/Attribute_MLB_MQB.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MLB_MQB
{
  #keys: '3[413988.0.1488132595][413988.0.1488132594][413988.0.1488132596]'
  ValueType: String
}
_Main/BL/Type_DL_EngineRackRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1488132592][413988.0.1488132591][413988.0.1488132593]'
  ValueType: String
}
_Main/BL/Type_DL_EngineRackRow/DefaultValue_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Generation
}
_Main/BL/Type_DL_EngineRackRow/DefaultValue_MLB_MQB.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: MLB_MQB
}
_Main/BL/Type_DL_EngineRackRow/DefaultValue_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Name
}
_Main/BL/Type_DL_EngineRackRow/Function_CalcName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcName
{
  TextBody:
  [*
    // lihongji Aug-12-2024 (created)
    value := this.Generation() + " " + this.MLB_MQB();
    this.Name( value );
  *]
}
_Main/BL/Type_DL_EngineRackRow/_ROOT_Type_DL_EngineRackRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type DL_EngineRackRow
{
  #keys: '5[413988.0.1488132580][413988.0.1488132578][0.0.0][413988.0.1488132579][413988.0.1488132581]'
  BaseType: Object
  StructuredName: 'DL_EngineRackRows'
}
_Main/BL/Type_EnginePipelineColumn/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[415136.0.999760039][415136.0.999760038][415136.0.999760040]'
  Description: '结束日期'
  ValueType: Date
}
_Main/BL/Type_EnginePipelineColumn/Attribute_Period.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_EnginePipelineColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.999760029][415136.0.999760028][415136.0.999760030]'
  Description: '开始日期'
  ValueType: Date
}
_Main/BL/Type_EnginePipelineReport/Method_Generate.qbl
@@ -9,7 +9,6 @@
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    table                   := selectobject( this, Source.Report, report, not report.IsShow() );
    //清空之前存储的显示数据
    this.Clear( search.TimeUnit(), search.StartDate(), search.EndDate() );
    Transaction::Transaction().Propagate( attribute( EnginePipelineColumn, Index ) );
@@ -44,9 +43,22 @@
      showrowccproduction := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '长春产量', rownr + 2, false );
      showrowdemand       := EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '需求', rownr + 3, false );
      rownr               := rownr + 4;
      traverse( models, Elements, model ){
        EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), model, rownr, false );
        rownr             := rownr + 1;
      modelsnr            := rownr + 3;
      models              := construct( Strings );
      uniquemodels        := selectuniquevalues( row, Cell.Demand, demand, true, demand.Model() );
      traverse( uniquemodels, Elements, e ){
        if( rownr < modelsnr ){
          EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), e, rownr, false );
          models.Add( e );
          rownr             := rownr + 1;
        }
      }
      for( rownr := rownr; rownr < modelsnr; rownr ++ ){
        EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '', rownr, false );
      }
      showrowinventory    :=  EnginePipelineRow::CraeteCellValueForRow( this, productcolumn, attricolumn, row.Name(), '库存', rownr, false );
    
@@ -60,6 +72,7 @@
          production              := column.CellValue( relnew, Value := [String]cell.ProductionQuantity() );
          showrowproduction.CellValue( relinsert, production );
          sumproduction           := selectobject( column, CellValue, c, c.Row() = sumrowproduction );
          if( isnull( sumproduction ) ){
            sumproduction         := column.CellValue( relnew, Value := [String]0 );
            sumrowproduction.CellValue( relinsert, sumproduction );
@@ -71,6 +84,7 @@
          dlproduction             := column.CellValue( relnew, Value := [String]dlproductionquantity );
          showrowdlproduction.CellValue( relinsert, dlproduction );
          sumdlproduction          := selectobject( column, CellValue, c, c.Row() = sumrowdlproduction );
          if( isnull( sumdlproduction ) ){
            sumdlproduction        := column.CellValue( relnew, Value := [String]0 );
            sumrowdlproduction.CellValue( relinsert, sumdlproduction );
@@ -82,6 +96,7 @@
          ccproduction             := column.CellValue( relnew, Value := [String]ccproductionquantity );
          showrowccproduction.CellValue( relinsert, ccproduction );
          sumccproduction          := selectobject( column, CellValue, c, c.Row() = sumrowccproduction );
          if( isnull( sumccproduction ) ){
            sumccproduction        := column.CellValue( relnew, Value := [String]0 );
            sumrowccproduction.CellValue( relinsert, sumccproduction );
@@ -98,25 +113,26 @@
          }
          sumdemand.Value( [String]( [Real]sumdemand.Value() + cell.DemandQuantity() ) );
          
          traverse( cell, Demand, demand ){
            demandrow              := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Value() = demand.Model() ) );
            sumdemandrow           := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Value() = demand.Model() ) );
          traverse( cell, Demand, demand, exists( models, Elements, model, model = demand.Model() ) ){
            demandrow              := selectobject( this, Row, r, r.Name() = row.Name() and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model() ) );
            sumdemandrow           := selectobject( this, Row, r, r.Name() = 'SUM' and exists( r, CellValue, cv, cv.Column() = attricolumn and cv.Value() = demand.Model() ) );
    
            if( not isnull( demandrow ) ){
              demandcell             := column.CellValue( relnew, Value := [String]demand.Quantity() );
              demandrow.CellValue( relinsert, demandcell );
            }
            if( not isnull( sumdemandrow ) ){
            sumdemandcell          := selectobject( column, CellValue, c, c.Row() = sumdemandrow );
            if( isnull( sumdemandcell ) ){
              sumdemandcell        := column.CellValue( relnew, Value := [String]0 );
              sumdemandrow.CellValue( relinsert, sumdemandcell );
            }
            sumdemandcell.Value( [String]( [Real]sumdemandcell.Value() + demand.Quantity() ) );
            }
          }
    
          for( demandr := showrowdemand.RowNr() + 1; demandr < showrowinventory.RowNr(); demandr := demandr + 1 ){
            demandrow              := selectobject( this, Row, r, r.RowNr() = demandr );
            demandrow              := selectobject( this, Row, r, r.RowNr() = demandr and r.Name() = row.Name() );
            if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){
              demandcell           := column.CellValue( relnew, Value := '' );
              demandrow.CellValue( relinsert, demandcell );
@@ -139,12 +155,20 @@
    }
    traverse( this, Column, column ){
      for( demandr := sumrowdemand.RowNr() + 1; demandr < sumrowinventory.RowNr(); demandr := demandr + 1 ){
        demandrow              := selectobject( this, Row, r, r.RowNr() = demandr );
        demandrow              := selectobject( this, Row, r, r.RowNr() = demandr and r.Name() = 'SUM' );
    //    info( '------------------14----------------' );
        if( not isnull( demandrow ) and not exists( demandrow, CellValue, cv, cv.Column() = column ) ){
          demandcell           := column.CellValue( relnew, Value := '' );
          demandrow.CellValue( relinsert, demandcell );
        }
      }
    }
    rows := selectsortedset( this, Row, row, row.Name(), row.RowNr() );
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      i := i + 1;
    }
  *]
}
_Main/BL/Type_EnginePipelineReport/Method_GenerateColumn.qbl
@@ -17,13 +17,13 @@
        periodtime          := period.StartDate();
        periodname          := periodtime.Format( "M2/D2/Y" );
        
        this.Column( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
      }
      
      if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){
        if( period.StartDate() = weekstart ){
          weekperiodname    := weekstart.Format( "M2/D2/Y" );
          this.Column( relnew, Name := weekperiodname, Period := weekstart, TimeUnit := Translations::MP_GlobalParameters_Week() );
          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), TimeUnit := Translations::MP_GlobalParameters_Week() );
          weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
        }
      }
_Main/BL/Type_EnginePipelineReport/Method_GetColumnByUnit.qbl
@@ -8,9 +8,9 @@
  TextBody:
  [*
    // ç”„兰鸽 Aug-7-2024 (created)
    periodname := period.Format( "M2/D2/Y" );
    //periodname := period.Format( "M2/D2/Y" );
    
    column := selectobject( this, Column, column, column.Name() = periodname and column.Period() = period and column.TimeUnit() = unit );
    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
    
    return column;
  *]
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultCCALineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCALineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春装配线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultCCMPLineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCMPLineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultDLALineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLALineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连装配线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultDLMPLineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLMPLineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultName.qbl
@@ -5,6 +5,6 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return 'Machining pipelines';
    return 'Engine pipelines';
  *]
}
_Main/BL/Type_EnginePipelineReport/StaticMethod_GetDefaultProductParent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultProductParent () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-14-2024 (created)
    return '产成品';
  *]
}
_Main/BL/Type_EnginePipelineRow/Method_SetCellDemandValue.qbl
@@ -11,10 +11,10 @@
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    
    demand := selectobject( cell, Demand, demand, demand.EngineType() = cell.Row().Name() and demand.Model() = segment and demand.Period() = column.Period() );
    demand := selectobject( cell, Demand, demand, demand.EngineType() = cell.Row().Name() and demand.Model() = segment and demand.Period() = column.StartDate() );
    
    if( isnull( demand ) ){
      demand := cell.Demand( relnew, EngineType := cell.Row().Name(), Period := column.Period(), Model := segment, Quantity := 0 );
      demand := cell.Demand( relnew, EngineType := cell.Row().Name(), Period := column.StartDate(), Model := segment, Quantity := 0 );
    }
    
    demand.Quantity( demand.Quantity() + quantity );
_Main/BL/Type_EnginePipelineRow/Method_SetCellProductionValue.qbl
@@ -14,7 +14,7 @@
    production := cell.Production();
    
    if( isnull( production ) ){
      production := cell.Production( relnew, EngineType := cell.Row().Name(), Period := column.Period(), DLProduction := 0, CCProduction := 0 );
      production := cell.Production( relnew, EngineType := cell.Row().Name(), Period := column.StartDate(), DLProduction := 0, CCProduction := 0 );
    }
    
    if( isccunit ){
_Main/BL/Type_EnginePipelineSource/StaticMethod_Initialize.qbl
@@ -8,8 +8,13 @@
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    owner.EnginePipelineSource( relflush );
    ccunit                    := EnginePipelineReport::GetDefaultCCUnit();
    dlunit                    := EnginePipelineReport::GetDefaultDLUnit();
    //ccunit                    := EnginePipelineReport::GetDefaultCCUnit();
    //dlunit                    := EnginePipelineReport::GetDefaultDLUnit();
    productparent             := EnginePipelineReport::GetDefaultProductParent();
    ccalineunit               := EnginePipelineReport::GetDefaultCCALineUnit();
    dlalienunit               := EnginePipelineReport::GetDefaultDLALineUnit()
    ccmplineunit              := EnginePipelineReport::GetDefaultCCMPLineUnit()
    dlmplineunit              := EnginePipelineReport::GetDefaultDLMPLineUnit();
    //allunit                   := EnginePipelineReport::GetDefaultAllUnit();
    source                    := owner.EnginePipelineSource( relnew, Name := EnginePipelineReport::GetDefaultName() );
    table                     := source.Report( relnew, ID := source.Name(), Name := source.Name() );
@@ -27,55 +32,62 @@
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
      //是否属于长春工厂
      iscc                    := unit.ID() = ccunit or exists( parentunits, Elements, punit, punit.ID() = ccunit );
      iscc         := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
      //是否属于大连工厂
      isdl                    := unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit );
      isdl         := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
      
      traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() ){
        weekstart             := owner.StartOfPlanning().Date();
        pispips               := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                                                  and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() );
      traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem()
                and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent )
                and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ) ) ){
        weekstart           := owner.StartOfPlanning().Date();
        pispips             := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                                                    and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() );
        row := table.GetRow( pisp.ProductID() );
        traverse( pispips, Elements, pispip ){
          //天
          daycolumn           := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
          daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
          //周
          weekcolumn          := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
          supplyquantity      := [Real]ceil( pispip.NewSupplyQuantity() );//向上取整
          inventoryquantity   := [Real]ceil( pispip.PlannedInventoryLevelEnd() );//向上取整
          weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(),  pispip.Start().Date() );
          supplyquantity    := [Number]pispip.NewSupplyQuantity();//四舍五入
          inventoryquantity := [Number]pispip.PlannedInventoryLevelEnd();//四舍五入
          //产量是加总
          if( iscc or isdl ){
            row.SetCellProductionValue( daycolumn, iscc, supplyquantity );
            row.SetCellProductionValue( weekcolumn, iscc, supplyquantity );
            row.SetCellProductionValue( daycolumn, iscc, [Real]supplyquantity );
            row.SetCellProductionValue( weekcolumn, iscc, [Real]supplyquantity );
          }
          //库存需要取最后一天
          row.SetCellInventoryValue( daycolumn, pispip.PlannedInventoryLevelEnd() );
          row.SetCellInventoryValue( daycolumn, [Real]inventoryquantity );
          if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
            weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
            row.SetCellInventoryValue( weekcolumn, inventoryquantity );
            weekstart       := ( weekstart + Duration::Days( 7 ) ).Date();
            row.SetCellInventoryValue( weekcolumn, [Real]inventoryquantity );
          } 
        }
      }
    }
    
    //生成需求数据
    traverse( owner, SalesDemand.astype( Forecast ), forecast ){
      row                   := table.GetRow( forecast.ProductID() );
      weekstart             := owner.StartOfPlanning().Date();
      traverse( forecast, PlanningSalesDemandInPeriod, psdip ){
    traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() < endperiod.StartDate() and forecast.Quantity() <> 0
              and exists( forecast.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent )
              and exists( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ) ){
      row                 := table.GetRow( forecast.ProductID() );
    //  weekstart           := owner.StartOfPlanning().Date();
      traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){
        //天
        daycolumn           := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), psdip.StartDate() );
        daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), psdip.StartDate() );
        //周
        weekcolumn          := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
        weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), psdip.StartDate() );
        if( not isnull( daycolumn ) ){
          row.SetCellDemandValue( daycolumn, forecast.SalesSegmentName(), forecast.Quantity() );
        }
        if( not isnull( weekcolumn ) ){
          row.SetCellDemandValue( weekcolumn, forecast.SalesSegmentName(), forecast.Quantity() );
        }
    //    if( psdip.StartDate() = ( weekstart + Duration::Days( 6 ) ).Date() or psdip.PeriodStart() = endperiod.StartDate() ){
    //      weekstart       := ( weekstart + Duration::Days( 7 ) ).Date();
    //    }
      }
    }
    
_Main/BL/Type_FinancialProductionImportData/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[415136.0.978920071][415136.0.978920070][415136.0.978920072]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionImportData/Attribute_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MqbMlb
{
  #keys: '3[415136.0.978920068][415136.0.978920067][415136.0.978920069]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionImportData/Attribute_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Power
{
  #keys: '3[415136.0.978920065][415136.0.978920064][415136.0.978920066]'
  ValueType: String
}
_Main/BL/Type_FinancialProductionImportData/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[415136.0.978920045][415136.0.978920044][415136.0.978920046]'
  Description: '产品ID'
  ValueType: String
}
_Main/BL/Type_FinancialProductionImportData/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[415136.0.978920075][415136.0.978920074][415136.0.978920076]'
  ValueType: Real
}
_Main/BL/Type_FinancialProductionImportData/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.978920085][415136.0.978920084][415136.0.978920086]'
  ValueType: Date
}
_Main/BL/Type_FinancialProductionImportData/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[415136.0.978920055][415136.0.978920054][415136.0.978920056]'
  Description: '工厂名称'
  ValueType: String
}
_Main/BL/Type_FinancialProductionImportData/DefaultValue_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Generation
}
_Main/BL/Type_FinancialProductionImportData/DefaultValue_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: MqbMlb
}
_Main/BL/Type_FinancialProductionImportData/DefaultValue_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Power
}
_Main/BL/Type_FinancialProductionImportData/Function_CalcQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcQuantity
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-8-2024 (created)
    value := guard( [Number]this.Cell().Value(), 0 );
    this.Quantity( value );
  *]
}
_Main/BL/Type_FinancialProductionImportData/_ROOT_Type_FinancialProductionImportData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialProductionImportData
{
  #keys: '5[415136.0.978920028][415136.0.978920026][0.0.0][415136.0.978920027][415136.0.978920029]'
  BaseType: Object
  Description: '财务产量报表二维表'
  StructuredName: 'FinancialProductionImportDatas'
}
_Main/BL/Type_FinancialProductionReport/Method_GetRowByUnit.qbl
@@ -1,7 +1,7 @@
Quintiq file version 2.0
#parent: #root
Method GetRowByUnit (
  String product,
  Product_MP product,
  String unit
) as FinancialProductionRow
{
@@ -9,12 +9,13 @@
  TextBody:
  [*
    // ç”„兰鸽 Aug-2-2024 (created)
    row := selectobject( this, FinancialProductionRow, row, row.Name() = product and row.Unit() = unit );
    row := selectobject( this, FinancialProductionRow, row, row.Name() = product.ID() and row.Unit() = unit );
    if( isnull( row ) ){
      //初始化单元格
      row := this.FinancialProductionRow( relnew, Name := product, Unit := unit );
      row := this.FinancialProductionRow( relnew, Name := product.ID(), Unit := unit );
      row.Product_MP( relset, product );
      traverse( this, FinancialProductionColumn, column ){
        row.Initialize( column, unit );
        row.Initialize( column, product, unit );
      }
    }
    return row;
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCALineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCALineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春装配线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultCCMPLineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCMPLineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLALineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLALineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连装配线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_FinancialProductionReport/StaticMethod_GetDefaultDLMPLineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLMPLineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_FinancialProductionRow/Method_Initialize#110.qbl
@@ -2,14 +2,25 @@
#parent: #root
Method Initialize (
  FinancialProductionColumn column,
  Product_MP product,
  String unit
)
{
  Description: '初始化单元格'
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := column.FinancialProductionCell( relnew, Value := '' );
    
    this.FinancialProductionCell( relinsert, cell );
    if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
      importdata := product.MacroPlan().FPImportData( relnew, Generation := product.Generation()
                                                      , MqbMlb := product.MQBMLB()
                                                      , Power := product.Power()
                                                      , ProductID := product.ID()
                                                      , StartDate := column.Period()
                                                      , Unit := unit );
      importdata.Cell( relset, cell );
    }
  *]
}
_Main/BL/Type_FinancialProductionSource/StaticMethod_Initialize.qbl
@@ -8,8 +8,13 @@
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    owner.FinancialProductionSource( relflush );
    owner.FPImportData( relflush );
    ccunit                    := FinancialProductionReport::GetDefaultCCUnit();
    dlunit                    := FinancialProductionReport::GetDefaultDLUnit();
    ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
    dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
    ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
    dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
    allunit                   := FinancialProductionReport::GetDefaultAllUnit();
    source                    := owner.FinancialProductionSource( relnew, IsImport := false, Name := FinancialProductionReport::GetDefaultName() );
    table                     := source.FinancialProductionReport( relnew, ID := source.Name(), Name := source.Name(), IsImport := false );
@@ -34,24 +39,22 @@
      unit         := stockingpoint.Unit();
      parentunits  := unit.GetAllParent();
      //是否属于长春工厂
      iscc         := unit.ID() = ccunit or exists( parentunits, Elements, punit, punit.ID() = ccunit );
      iscc         := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
      //是否属于大连工厂
      isdl         := unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit );
      isdl         := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf()
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ) ){
          //获取工厂行
          factoryrow := table.GetRowByUnit( pisp.ProductID(), ifexpr( iscc, ccunit, dlunit ) );
          factoryrow := table.GetRowByUnit( pisp.Product_MP(), ifexpr( iscc, ccunit, dlunit ) );
          //获取合计行
          allrow     := table.GetRowByUnit( pisp.ProductID(), allunit );
          allrow     := table.GetRowByUnit( pisp.Product_MP(), allunit );
          products.Add( pisp.Product_MP() );
          //当product planning的日期区间在需要的日期区间内 
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear
    //                and ( ( pispip.Period_MP().StartDate().StartOfMonth() = startofplanning.StartOfMonth() and currentperiods.Find( pispip.Period_MP() ) >= 0 )
    //                 or ( pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Month() and pispip.Period_MP().StartDate() < startofnextyear ) )
                    ){
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.NewSupplyQuantity() <> 0 ){
            periodtime := pispip.Start().StartOfMonth().Date();
            periodname := periodtime.Format( "M2/D2/Y" );
            quantity   := ceil( pispip.NewSupplyQuantity() );//向上取整
            quantity   := [Number]pispip.NewSupplyQuantity();//四舍五入
            
            column := selectobject( table, FinancialProductionColumn, column, column.Name() = periodname and column.Period() = periodtime );
            
_Main/BL/Type_FinancialSalesImportData/Attribute_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Generation
{
  #keys: '3[415136.0.984654696][415136.0.984654695][415136.0.984654697]'
  ValueType: String
}
_Main/BL/Type_FinancialSalesImportData/Attribute_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute MqbMlb
{
  #keys: '3[415136.0.984654699][415136.0.984654698][415136.0.984654700]'
  ValueType: String
}
_Main/BL/Type_FinancialSalesImportData/Attribute_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Power
{
  #keys: '3[415136.0.984654702][415136.0.984654701][415136.0.984654703]'
  ValueType: String
}
_Main/BL/Type_FinancialSalesImportData/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[415136.0.984654705][415136.0.984654704][415136.0.984654706]'
  Description: '产品ID'
  ValueType: String
}
_Main/BL/Type_FinancialSalesImportData/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[415136.0.984654708][415136.0.984654707][415136.0.984654709]'
  ValueType: Real
}
_Main/BL/Type_FinancialSalesImportData/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.984654711][415136.0.984654710][415136.0.984654712]'
  ValueType: Date
}
_Main/BL/Type_FinancialSalesImportData/Attribute_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Unit
{
  #keys: '3[415136.0.984654714][415136.0.984654713][415136.0.984654715]'
  Description: '工厂名称'
  ValueType: String
}
_Main/BL/Type_FinancialSalesImportData/DefaultValue_Generation.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Generation
}
_Main/BL/Type_FinancialSalesImportData/DefaultValue_MqbMlb.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: MqbMlb
}
_Main/BL/Type_FinancialSalesImportData/DefaultValue_Power.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Power
}
_Main/BL/Type_FinancialSalesImportData/DefaultValue_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: ProductID
}
_Main/BL/Type_FinancialSalesImportData/DefaultValue_Unit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
DefaultValue
{
  TargetAttribute: Unit
}
_Main/BL/Type_FinancialSalesImportData/Function_CalcQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcQuantity
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-9-2024 (created)
    value := guard( [Number]this.Cell().Value(), 0 );
    this.Quantity( value );
  *]
}
_Main/BL/Type_FinancialSalesImportData/_ROOT_Type_FinancialSalesImportData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type FinancialSalesImportData
{
  #keys: '5[415136.0.984654693][415136.0.984654691][0.0.0][415136.0.984654692][415136.0.984654694]'
  BaseType: Object
  Description: '财务销报表二维表'
  StructuredName: 'FinancialSalesImportDatas'
}
_Main/BL/Type_FinancialSalesReport/Method_GetRow.qbl
@@ -2,18 +2,19 @@
#parent: #root
Method GetRow (
  String salessegment,
  String product
  Product_MP product
) as FinancialSalesRow
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    row := selectobject( this, FinancialSalesRow, row, row.Name() = product and row.Unit() = salessegment );
    row := selectobject( this, FinancialSalesRow, row, row.Name() = product.ID() and row.Unit() = salessegment );
    
    if( isnull( row ) ){
      row := this.FinancialSalesRow( relnew, Name := product, Unit := salessegment );
      row := this.FinancialSalesRow( relnew, Name := product.ID(), Unit := salessegment );
      row.Product_MP( relset, product );
      //初始化单元格
      row.InitializeCell( this );
      row.InitializeCell( this, product );
    }
    
    return row;
_Main/BL/Type_FinancialSalesReport/Method_IsInUnit.qbl
@@ -11,6 +11,6 @@
    // ç”„兰鸽 Aug-5-2024 (created)
    unit                  := sp.Unit();
    parentunits           := unit.GetAllParent();
    return unit.ID() = unitname or exists( parentunits, Elements, punit, punit.ID() = unitname );
    return sp.ID() = unitname or unit.ID() = unitname or exists( parentunits, Elements, punit, punit.ID() = unitname );
  *]
}
_Main/BL/Type_FinancialSalesRow/Method_Initialize.qbl
@@ -2,14 +2,25 @@
#parent: #root
Method Initialize (
  FinancialSalesColumn column,
  Product_MP product,
  String unit
)
{
  Description: '初始化单元格'
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := column.FinancialSalesCell( relnew, Value := '' );
    
    this.FinancialSalesCell( relinsert, cell );
    if( unit <> FinancialProductionReport::GetDefaultAllUnit() ){
      importdata := product.MacroPlan().FSImportData( relnew, Generation := product.Generation()
                                                      , MqbMlb := product.MQBMLB()
                                                      , Power := product.Power()
                                                      , ProductID := product.ID()
                                                      , StartDate := column.Period()
                                                      , Unit := unit );
      importdata.Cell( relset, cell );
    }
  *]
}
_Main/BL/Type_FinancialSalesRow/Method_InitializeCell.qbl
@@ -1,14 +1,15 @@
Quintiq file version 2.0
#parent: #root
Method InitializeCell (
  FinancialSalesReport table
  FinancialSalesReport table,
  Product_MP product
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-28-2024 (created)
    traverse( table, FinancialSalesColumn, column ){
      this.Initialize( column, this.Unit() );
      this.Initialize( column, product, this.Unit() );
    }
  *]
}
_Main/BL/Type_FinancialSalesSource/StaticMethod_Initialize.qbl
@@ -32,7 +32,8 @@
    table.GenerateColumn( owner );
    
    //首先在forecast界面查找sales segment为长春的所有需求,识别出MLB的所有产品,每个产品按月汇总需求数量
    traverse( owner, SalesDemand.astype( Forecast ), forecast, forecast.StartDate() < startofnextyear ){
    traverse( owner, SalesDemand.astype( Forecast ), forecast, not isnull( forecast.SalesSegment_MP() ) and forecast.StartDate() < startofnextyear and forecast.Quantity() <> 0
              and exists( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ) ){
      salessegment            := forecast.SalesSegment_MP();
      parentsalessegments     := salessegment.GetAllParent();
      //是否属于长春
@@ -46,20 +47,18 @@
      if( ( iscc and forecast.Product_MP().MQBMLB() = 'MLB' ) or isdl ){
        product              := forecast.Product_MP();
        //获取合计行
        allrow               := table.GetRow( allunit, product.ID() );
        allrow               := table.GetRow( allunit, product );
        //获取工厂行
        factoryrow           := table.GetRow( ifexpr( iscc and forecast.Product_MP().MQBMLB() = 'MLB', ccunit, dlunit ), product.ID() );
        factoryrow           := table.GetRow( ifexpr( iscc and forecast.Product_MP().MQBMLB() = 'MLB', ccunit, dlunit ), product );
      
        if( products.Find( product ) < 0 ){
          products.Add( product );
        }
        traverse( forecast, PlanningSalesDemandInPeriod, psdip ){
        products.Add( product );
        traverse( forecast, PlanningSalesDemandInPeriod, psdip, psdip.Quantity() <> 0 ){
          periodtime         := psdip.StartDate().StartOfMonth();
          periodname         := periodtime.Format( "M2/D2/Y" );
    //      info( '-------------------------', periodname, periodtime );
          column             := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime );
    //      info( '-------------------------', column.Name() );
          quantity   := ceil( psdip.Quantity() );//向上取整
          quantity   := [Number]psdip.Quantity();//四舍五入
          
          factoryrow.Initialize( column, quantity );
          allrow.Initialize( column, quantity );
@@ -73,14 +72,17 @@
      //是否属于长春装配线
    //  iscc                  := unit.ID() = ccspline or exists( parentunits, Elements, punit, punit.ID() = ccspline );
      if( table.IsInUnit( stockingpoint, ccspline ) ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and pisp.Product_MP().MQBMLB() = 'MQB' ){//产品为MQB
          allrow            := table.GetRow( allunit, pisp.ProductID() );
          ccrow             := table.GetRow( ccunit, pisp.ProductID() );
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp, pisp.Product_MP().IsLeaf() and pisp.Product_MP().MQBMLB() = 'MQB'
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.DependentDemandAndSalesDemandQuantity() <> 0 ) ){//产品为MQB
          product           := pisp.Product_MP();
          allrow            := table.GetRow( allunit, product );
          ccrow             := table.GetRow( ccunit, product );
          products.Add( product );
          traverse( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().StartDate() < startofnextyear and pispip.DependentDemandAndSalesDemandQuantity() <> 0 ){
            periodtime      := pispip.Start().StartOfMonth().Date();
            periodname      := periodtime.Format( "M2/D2/Y" );
            column          := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime );
            quantity        := ceil( pispip.DependentDemandAndSalesDemandQuantity() );//向上取整
            quantity        := [Number]pispip.DependentDemandAndSalesDemandQuantity();//四舍五入
            
            ccrow.Initialize( column, quantity );//取Total Demand字段按月汇总需求数量
            allrow.Initialize( column, quantity );
@@ -98,18 +100,23 @@
      destisp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = laneleg.DestinationStockingPointID() );
      isccrent              := table.IsInUnit( destisp, ccrent );
      if( isdlspline and isccrent ){
        traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead ){
          periodtime        := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
        traverse( laneleg, Trip, trip, trip.Arrival() < startofnextyearlead and exists( trip, ProductInTrip, pit, pit.Quantity() <> 0 ) ){
    //      periodtime        := ( trip.Arrival() - FinancialSalesReport::GetDefaultTripLeadingTime() ).StartOfMonth().Date();
          periodtime        := trip.Departure().StartOfMonth().Date();
          periodname        := periodtime.Format( "M2/D2/Y" );
          
          column            := selectobject( table, FinancialSalesColumn, column, column.Name() = periodname and column.Period() = periodtime );
          traverse( trip, ProductInTrip, pit ){
            quantity        := ceil( pit.Quantity() );//向上取整
            dlrow           := table.GetRow( dlunit, pit.ProductID() );
            dlrow.Initialize( column, quantity );//汇总数量
            allrow          := table.GetRow( allunit, pit.ProductID() );
            allrow.Initialize( column, quantity );
          if( not isnull( column ) ){
            traverse( trip, ProductInTrip, pit, pit.Quantity() <> 0 ){
              product       := pit.Product_MP();
              products.Add( product );
              quantity      := [Number]pit.Quantity();//四舍五入
              dlrow         := table.GetRow( dlunit, pit.Product_MP() );
              dlrow.Initialize( column, quantity );//汇总数量
              allrow        := table.GetRow( allunit, pit.Product_MP() );
              allrow.Initialize( column, quantity );
            }
          }
        }
      }
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCALineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCALineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春装配线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultCCMPLineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultCCMPLineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLALineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLALineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连装配线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_InventorySummaryReport/StaticMethod_GetDefaultDLMPLineUnit.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultDLMPLineUnit () const as String
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_InventorySummarySource/StaticMethod_Initialize.qbl
@@ -14,6 +14,10 @@
    allunit                   := InventorySummaryReport::GetDefaultAllUnit();
    ccunit                    := InventorySummaryReport::GetDefaultCCUnit();
    dlunit                    := InventorySummaryReport::GetDefaultDLUnit();
    ccalineunit               := FinancialProductionReport::GetDefaultCCALineUnit();
    dlalienunit               := FinancialProductionReport::GetDefaultDLALineUnit()
    ccmplineunit              := FinancialProductionReport::GetDefaultCCMPLineUnit()
    dlmplineunit              := FinancialProductionReport::GetDefaultDLMPLineUnit();
    
    source                    := owner.InventorySummarySource( relnew, ID := InventorySummaryReport::GetDefaultName(), Name := InventorySummaryReport::GetDefaultName() );
    table                     := source.InventorySummaryReport( relnew, ID := source.Name(), Name := source.Name() );
@@ -31,9 +35,9 @@
      unit                    := stockingpoint.Unit();
      parentunits             := unit.GetAllParent();
      //是否属于长春工厂
      iscc                    := unit.ID() = ccunit or exists( parentunits, Elements, punit, punit.ID() = ccunit );
      iscc         := unit.ID() = ccalineunit or unit.ID() = ccmplineunit or exists( parentunits, Elements, punit, punit.ID() = ccalineunit or punit.ID() = ccmplineunit );
      //是否属于大连工厂
      isdl                    := unit.ID() = dlunit or exists( parentunits, Elements, punit, punit.ID() = dlunit );
      isdl         := unit.ID() = dlalienunit or unit.ID() = dlmplineunit  or exists( parentunits, Elements, punit, punit.ID() = dlalienunit or punit.ID() = dlmplineunit );
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() ){
          //获取工厂行
_Main/BL/Type_MachiningPipelineCell/StaticMethod_Initialize.qbl
@@ -8,13 +8,13 @@
  [*
    // ç”„兰鸽 Jul-12-2024 (created)
    cell := column.Cell( relnew, CCAssemblyPlanQty := 0, 
                         CCProductionQty := 0,
                         CCTransferQty := 0,
                         CCInventoryQty := 0,
                         DLAssemblyPlanQty := 0,
                         DLProductionQty := 0,
                         DLTransferQty := 0,
                         DLInventoryQty := 0 );
                         CCProductionQty           := 0,
                         CCTransferQty             := 0,
                         CCInventoryQty            := 0,
                         DLAssemblyPlanQty         := 0,
                         DLProductionQty           := 0,
                         DLTransferQty             := 0,
                         DLInventoryQty            := 0 );
    
    return cell;
  *]
_Main/BL/Type_MachiningPipelineColumn0/Attribute_CCAssemblyPlanQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute CCAssemblyPlanQty
{
  #keys: '3[415136.0.1006432687][415136.0.1006432686][415136.0.1006432688]'
  Description: '长春装配计划'
  ValueType: Real
}
_Main/BL/Type_MachiningPipelineColumn0/Attribute_DLAssemblyPlanQty.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute DLAssemblyPlanQty
{
  #keys: '3[415136.0.1006432691][415136.0.1006432690][415136.0.1006432692]'
  Description: '大连装配计划'
  ValueType: Real
}
_Main/BL/Type_MachiningPipelineColumn0/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[415136.0.1004832687][415136.0.1004832686][415136.0.1004832688]'
  ValueType: Date
}
_Main/BL/Type_MachiningPipelineColumn0/Attribute_Period.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MachiningPipelineColumn0/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[415136.0.1004832677][415136.0.1004832676][415136.0.1004832678]'
  ValueType: Date
}
_Main/BL/Type_MachiningPipelineReport/Method_GenerateColumn.qbl
@@ -17,13 +17,13 @@
        periodtime          := period.StartDate();
        periodname          := periodtime.Format( "M2/D2/Y" );
        
        this.Column( relnew, Name := periodname, Period := periodtime, TimeUnit := Translations::MP_GlobalParameters_Day() );
        this.Column( relnew, Name := periodname, StartDate := periodtime, EndDate := periodtime, CCAssemblyPlanQty := 0, DLAssemblyPlanQty := 0, TimeUnit := Translations::MP_GlobalParameters_Day() );
      }
      
      if( timeunit = 'All' or timeunit = Translations::MP_GlobalParameters_Week() ){
        if( period.StartDate() = weekstart ){
          weekperiodname    := weekstart.Format( "M2/D2/Y" );
          this.Column( relnew, Name := weekperiodname, Period := weekstart, TimeUnit := Translations::MP_GlobalParameters_Week() );
          this.Column( relnew, Name := weekperiodname, StartDate := weekstart, EndDate := ( weekstart + Duration::Days( 6 ) ).Date(), CCAssemblyPlanQty := 0, DLAssemblyPlanQty := 0, TimeUnit := Translations::MP_GlobalParameters_Week() );
          weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
        }
      }
_Main/BL/Type_MachiningPipelineReport/Method_GetColumnByUnit.qbl
@@ -8,9 +8,9 @@
  TextBody:
  [*
    // ç”„兰鸽 Aug-7-2024 (created)
    periodname := period.Format( "M2/D2/Y" );
    //periodname := period.Format( "M2/D2/Y" );
    
    column := selectobject( this, Column, column, column.Name() = periodname and column.Period() = period and column.TimeUnit() = unit );
    column := selectobject( this, Column, column, column.StartDate() <= period and column.EndDate() >= period and column.TimeUnit() = unit );
    
    return column;
  *]
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultCCProductionUnit.qbl
@@ -5,7 +5,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '长春机加产线';
    return '长春机加线';
    //return 'Assembly Plant (France)';
  *]
}
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultDLProductionUnit.qbl
@@ -5,7 +5,7 @@
  TextBody:
  [*
    // ç”„兰鸽 Jun-25-2024 (created)
    return '大连机加产线';
    return '大连机加线';
    //return 'Assembly Plant (Spain)';
  *]
}
_Main/BL/Type_MachiningPipelineReport/StaticMethod_GetDefaultProductParent.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#parent: #root
StaticMethod GetDefaultProductParent () as String
{
  TextBody:
  [*
    // ç”„兰鸽 Aug-14-2024 (created)
    return '机加件';
  *]
}
_Main/BL/Type_MachiningPipelineRow/Method_SetCellAssemblyValue.qbl
ÎļþÒÑɾ³ý
_Main/BL/Type_MachiningPipelineRow/Method_SetCellTransferValue.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
Method SetCellTransferValue (
  MachiningPipelineColumn column,
  Boolean iscc,
  Real quantity
)
{
  TextBody:
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    cell := selectobject( this, Cell, cell, cell.Column() = column );
    if( iscc ){
      cell.CCTransferQty( cell.CCTransferQty() + quantity );
    } else {
      cell.DLTransferQty( cell.DLTransferQty() + quantity );
    }
  *]
}
_Main/BL/Type_MachiningPipelineSource0/StaticMethod_Initialize.qbl
@@ -8,6 +8,7 @@
  [*
    // ç”„兰鸽 Jun-24-2024 (created)
    owner.FinancialProductionSource( relflush );
    productparent             := MachiningPipelineReport::GetDefaultProductParent();
    ccunit                    := MachiningPipelineReport::GetDefaultCCUnit();
    dlunit                    := MachiningPipelineReport::GetDefaultDLUnit();
    //allunit                   := EnginePipelineReport::GetDefaultAllUnit();
@@ -39,39 +40,48 @@
      //是否属于大连机加产线
      isdlproduction          := unit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() or exists( parentunits, Elements, punit, punit.ID() = MachiningPipelineReport::GetDefaultDLProductionUnit() );
      if( iscc or isdl ){
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem() ){
          row := table.GetRow( pisp.ProductID() );
          weekstart             := owner.StartOfPlanning().Date();
          pispips               := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                                                  and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day(), pispip.Start() );
        traverse( stockingpoint, ProductInStockingPoint_MP, pisp,  pisp.Product_MP().IsLeaf() and not pisp.IsSystem()
    //              and exists( pisp.Product_MP().GetAllParent(), Elements, e, e.ID() = productparent )
                  and exists( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical() and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ) ) ){
          pispips             := selectsortedset( pisp, ProductInStockingPointInPeriod, pispip, not pispip.Period_MP().IsHistorical()
                                                  and pispip.Period_MP().TimeUnit() = Translations::MP_GlobalParameters_Day() and ( pispip.NewSupplyQuantity() <> 0 or pispip.PlannedInventoryLevelEnd() <> 0 ), pispip.Start() );
          traverse( pispips, Elements, pispip ){
            supplyquantity    := [Number]pispip.NewSupplyQuantity();//四舍五入
            //天
            daycolumn           := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
            daycolumn         := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), pispip.Start().Date() );
            //周
            weekcolumn          := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), weekstart );
            supplyquantity      := [Real]ceil( pispip.NewSupplyQuantity() );//向上取整
            inventoryquantity   := [Real]ceil( pispip.PlannedInventoryLevelEnd() );//向上取整
            weekcolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), pispip.Start().Date() );
            
            //装配线
            if( isccassemnly or isdlassemnly ){
              row.SetCellAssemblyValue( daycolumn, isccassemnly, supplyquantity );
              row.SetCellAssemblyValue( weekcolumn, isccassemnly, supplyquantity );
              if( isccassemnly ){
                daycolumn.CCAssemblyPlanQty( daycolumn.CCAssemblyPlanQty() + supplyquantity );
                weekcolumn.CCAssemblyPlanQty( weekcolumn.CCAssemblyPlanQty() + supplyquantity );
              } else {
                daycolumn.DLAssemblyPlanQty( daycolumn.DLAssemblyPlanQty() + supplyquantity );
                weekcolumn.DLAssemblyPlanQty( weekcolumn.DLAssemblyPlanQty() + supplyquantity );
              }
            }
            
            //机加线
            if( isccproduction or isdlproduction ){
              row.SetCellProductionValue( daycolumn, isccproduction, supplyquantity );
              row.SetCellProductionValue( weekcolumn, isccproduction, supplyquantity );
            }
            //库存
            if( iscc or isdl ){
              row.SetCellInventoryValue( daycolumn, iscc, inventoryquantity );
              if( pispip.Start() = weekstart + Duration::Days( 6 ) or pispip.Period_MP() = endperiod ){
                weekstart         := ( weekstart + Duration::Days( 7 ) ).Date();
                row.SetCellInventoryValue( weekcolumn, iscc, inventoryquantity );
            product           := pisp.Product_MP();
            productparents    := product.GetAllParent();
            if( exists( productparents, Elements, e, e.ID() = productparent ) ){//查询产品类型是发动机
              row             := table.GetRow( pisp.ProductID() );
              products.Add( pisp.Product_MP() );
              inventoryquantity:= [Number]pispip.PlannedInventoryLevelEnd();//四舍五入
              //机加线
              if( isccproduction or isdlproduction ){
                row.SetCellProductionValue( daycolumn, isccproduction, [Real]supplyquantity );
                row.SetCellProductionValue( weekcolumn, isccproduction, [Real]supplyquantity );
              }
              //库存
              if( iscc or isdl ){
                row.SetCellInventoryValue( daycolumn, iscc, [Real]inventoryquantity );
                if( weekcolumn.EndDate() = pispip.Start().Date() or pispip.Period_MP() = endperiod ){
                  row.SetCellInventoryValue( weekcolumn, iscc, [Real]inventoryquantity );
                }
              }
            }
          }
@@ -80,25 +90,33 @@
    }
    
    //生成调拨数据
    traverse( owner, TransferPlanRow, tprow, ( tprow.SourceStockpoingPointID() = 'CC' and tprow.TargetStockpoingPointID() = 'DL' ) or ( tprow.SourceStockpoingPointID() = 'DL' and tprow.TargetStockpoingPointID() = 'CC' ) ){
      row := selectobject( table, Row, row, row.Name() = tprow.Name() );
      traverse( table, Column, column ){
        cell := selectobject( row, Cell, cell, cell.Column() = column );
        if( column.TimeUnit() = Translations::MP_GlobalParameters_Day() ){
          tpcell := selectobject( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() = column.Period() );
          if( tprow.SourceStockpoingPointID() = 'CC' and tprow.TargetStockpoingPointID() = 'DL' ){
            cell.CCTransferQty( [Real]tpcell.Value() );
          }else if( tprow.SourceStockpoingPointID() = 'DL' and tprow.TargetStockpoingPointID() = 'CC' ){
            cell.DLTransferQty( [Real]tpcell.Value() );
          }
        }else if( column.TimeUnit() = Translations::MP_GlobalParameters_Week() ){
          period := column.Period() + Duration::Days( 6 );
          tpcell := selectobject( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() = period.Date() );
          if( tprow.SourceStockpoingPointID() = 'CC' and tprow.TargetStockpoingPointID() = 'DL' ){
            cell.CCTransferQty( [Real]tpcell.Value() );
          }else if( tprow.SourceStockpoingPointID() = 'DL' and tprow.TargetStockpoingPointID() = 'CC' ){
            cell.DLTransferQty( [Real]tpcell.Value() );
    traverse( owner, TransferPlanRow, tprow ){
      product               := selectobject( owner, Product_MP, product, product.ID() = tprow.ProductID() );
      productparents        := product.GetAllParent();
      if( exists( productparents, Elements, e, e.ID() = productparent ) ){//查询产品类型是发动机
        //起始库存点是否是大连or长春
        originsp              := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.SourceStockpoingPointID() );
        originunit            := originsp.Unit();
        originparentunits     := originunit.GetAllParent();
        originiscc            := originsp.ID() = ccunit or originunit.ID() = ccunit or exists( originparentunits, Elements, punit, punit.ID() = ccunit );
        originisdl            := originsp.ID() = dlunit or originunit.ID() = dlunit or exists( originparentunits, Elements, punit, punit.ID() = dlunit );
        //目的地是否是长春外租库
        destisp               := selectobject( owner, StockingPoint_MP, sp, sp.ID() = tprow.TargetStockpoingPointID() );
        destiunit             := destisp.Unit();
        destiparentunits      := destiunit.GetAllParent();
        destiiscc             := destisp.ID() = ccunit or destiunit.ID() = ccunit or exists( destiparentunits, Elements, punit, punit.ID() = ccunit );
        destiisdl             := destisp.ID() = dlunit or destiunit.ID() = dlunit or exists( destiparentunits, Elements, punit, punit.ID() = dlunit );
        if( ( originiscc and destiisdl ) or ( originisdl and destiiscc ) ){
          row := table.GetRow( tprow.ProductID() );
          traverse( tprow, TransferPlanCell, tpcell, tpcell.TransferPlanColumn().ColumnDate() <> Date::MinDate() ){
            //天
            daycolumn        := table.GetColumnByUnit( Translations::MP_GlobalParameters_Day(), tpcell.TransferPlanColumn().ColumnDate() );
            //周
            weekcolumn       := table.GetColumnByUnit( Translations::MP_GlobalParameters_Week(), tpcell.TransferPlanColumn().ColumnDate() );
            quantity         := [Real]tpcell.Value();//四舍五入
            row.SetCellTransferValue( daycolumn, ( originiscc and destiisdl ), quantity );
            row.SetCellTransferValue( weekcolumn, ( originiscc and destiisdl ), quantity );
          }
        }
      }
@@ -108,6 +126,10 @@
    i    := 0;
    traverse( rows, Elements, e ){
      e.RowNr( i );
      traverse( e, Cell, cell ){
        cell.CCAssemblyPlanQty( cell.Column().CCAssemblyPlanQty() );
        cell.DLAssemblyPlanQty( cell.Column().DLAssemblyPlanQty() );
      }
      i := i + 1;
    }
    showtable.Generate( search, products );
_Main/BL/Type_Routing/StaticMethod_ThermalTrialRatio.qbl
@@ -28,17 +28,19 @@
    name := newrouting.Name().ReplaceAll( 'Copy', thermaltrial );
    newrouting.Name( name );
    newrouting.UpdateTypeIndex( name );
    routing.Start( start );
    routing.End( end );
    newrouting.Start( start );
    newrouting.End( end );
    
    routingstep := newrouting.LastStep();
    //info( '------------------', routingstep.Tool(), ',', unit.ID() );
    newroutingstep := RoutingStep::Create( newrouting, thermaltrial, routingstep.Tool(), false );
    
    newroutingstep := RoutingStep::Create( newrouting, thermaltrial, routingstep.Tool(), false );
    spname      := ifexpr( unit.ID().EndsWith( '批量热试' ), unit.ID().ReplaceAll( '批量热试', '-' + thermaltrial ), unit.ID().ReplaceAll( '热试', '-' + thermaltrial ) );
    info( '------------------', routingstep.Tool(), ',', unit.ID(), ',', spname );
    traverse( routingstep, Operation, operation ){
      id := Operation::GetConcatenatedID( newrouting.ID(), newroutingstep.Name(), unit.ID() );
    //  info( '------------------', operation.Name(), routingstep.Name(), newroutingstep.Name() );
      stockingpoint := StockingPoint_MP::FindCreateUpdate( routing.MacroPlan(), thermaltrial, unit, newrouting, true );
      stockingpoint := StockingPoint_MP::FindCreateUpdate( routing.MacroPlan(), spname, unit, newrouting, true );
      
      traverse( operation, OperationBOM, obom, not obom.IsInput() ){
        pisp := obom.PISPNodeInRouting().ProductInStockingPoint_MP();
_Main/Sys/Repr/Global/CCEngineLogisticsCostCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,41 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation CCEngineLogisticsCostCell
{
  AttributeRepresentation Coefficient
  {
    AttributeKey: '[415136.0.986844757]'
    Synonym: '系数'
  }
  AttributeRepresentation EstimatedTotalCost
  {
    AttributeKey: '[415136.0.986844738]'
    Synonym: '预计总费用'
  }
  AttributeRepresentation FactoryToRentTransCost
  {
    AttributeKey: '[415136.0.986844780]'
    Synonym: '厂内到外租库运输费用'
  }
  AttributeRepresentation RentEnterCost
  {
    AttributeKey: '[415136.0.986881422]'
    Synonym: '外租库入库费用'
  }
  AttributeRepresentation RentOutCost
  {
    AttributeKey: '[415136.0.986881432]'
    Synonym: '外租库出库费用'
  }
  AttributeRepresentation RentStorageCost
  {
    AttributeKey: '[415136.0.986881445]'
    Synonym: '外租库仓储费用'
  }
  AttributeRepresentation TotalCost
  {
    AttributeKey: '[415136.0.986844770]'
    Synonym: '总费用'
  }
  RelationRepresentation Column { RelationKey: '[415136.0.986881392]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/DLEngineLogisticsCostCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,66 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation DLEngineLogisticsCostCell
{
  AttributeRepresentation CCLongTransCoat
  {
    AttributeKey: '[415136.0.992900331]'
    Synonym: '长春长途运输费用'
  }
  AttributeRepresentation CCRentEnterCost
  {
    AttributeKey: '[415136.0.992900044]'
    Synonym: '长春外租库入库费用'
  }
  AttributeRepresentation CCRentOutCost
  {
    AttributeKey: '[415136.0.992900047]'
    Synonym: '长春外租库出库费用'
  }
  AttributeRepresentation CCRentStorageCost
  {
    AttributeKey: '[415136.0.992900050]'
    Synonym: '长春外租库仓储费用'
  }
  AttributeRepresentation CCShortTransCost
  {
    AttributeKey: '[415136.0.992900341]'
    Synonym: '长春短途运输费用'
  }
  AttributeRepresentation Coefficient
  {
    AttributeKey: '[415136.0.992900035]'
    Synonym: '系数'
  }
  AttributeRepresentation DLRentEnterCost
  {
    AttributeKey: '[415136.0.992900241]'
    Synonym: '大连外租库入库费用'
  }
  AttributeRepresentation DLRentOutCost
  {
    AttributeKey: '[415136.0.992900248]'
    Synonym: '大连外租库出库费用'
  }
  AttributeRepresentation DLRentStorageCost
  {
    AttributeKey: '[415136.0.992900261]'
    Synonym: '大连外租库仓储费用'
  }
  AttributeRepresentation EstimatedTotalCost
  {
    AttributeKey: '[415136.0.992900038]'
    Synonym: '预计总费用'
  }
  AttributeRepresentation FactoryToDLRentTransCost
  {
    AttributeKey: '[415136.0.992900041]'
    Synonym: '厂内到大连外租库运输费用'
  }
  AttributeRepresentation TotalCost
  {
    AttributeKey: '[415136.0.992900053]'
    Synonym: '总费用'
  }
  RelationRepresentation Column { RelationKey: '[415136.0.992900194]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/InventorySummaryCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation InventorySummaryCell
{
  AttributeRepresentation AverageInventory
  {
    AttributeKey: '[415136.0.865305023]'
    Synonym: '平均库存'
  }
  AttributeRepresentation EndingInventory
  {
    AttributeKey: '[415136.0.865304923]'
    Synonym: '期末库存'
  }
  AttributeRepresentation MaximumInventory
  {
    AttributeKey: '[415136.0.865304943]'
    Synonym: '最大库存'
  }
  AttributeRepresentation MinimumInventory
  {
    AttributeKey: '[415136.0.865304933]'
    Synonym: '最小库存'
  }
  RelationRepresentation AsFirstCellInColumn { RelationKey: '[415136.0.865304766]' Visibility: 'Normal' }
}
_Main/Sys/Repr/Global/MachiningPipelineCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation MachiningPipelineCell
{
  AttributeRepresentation CCAssemblyPlanQty
  {
    AttributeKey: '[415136.0.886711536]'
    Synonym: 'CC装配计划'
  }
  AttributeRepresentation CCInventoryQty
  {
    AttributeKey: '[415136.0.886711533]'
    Synonym: 'CC库存'
  }
  AttributeRepresentation CCProductionQty
  {
    AttributeKey: '[415136.0.886711530]'
    Synonym: 'CC生产计划'
  }
  AttributeRepresentation CCTransferQty
  {
    AttributeKey: '[415136.0.894481175]'
    Synonym: 'CC调拨计划'
  }
  AttributeRepresentation DLAssemblyPlanQty
  {
    AttributeKey: '[415136.0.894481138]'
    Synonym: 'DL装配计划'
  }
  AttributeRepresentation DLInventoryQty
  {
    AttributeKey: '[415136.0.894481161]'
    Synonym: 'DL库存'
  }
  AttributeRepresentation DLProductionQty
  {
    AttributeKey: '[415136.0.894481151]'
    Synonym: 'DL生产计划'
  }
  AttributeRepresentation DLTransferQty
  {
    AttributeKey: '[415136.0.894481185]'
    Synonym: 'DL调拨计划'
  }
  AttributeRepresentation TotalInventoryQty
  {
    AttributeKey: '[415136.0.894481168]'
    Synonym: 'CC+DL总库存'
  }
  RelationRepresentation AsFirstCellInColumn { RelationKey: '[415136.0.894469842]' Visibility: 'Normal' }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarGroupReport.def
@@ -11,8 +11,9 @@
      BaseType: 'WebButton'
      Properties:
      [
        Description: 'Financial production report'
        Image: 'DOCUMENT_REFRESH'
        Label: 'Financial production report'
        Label: '财务产量报表'
        Taborder: 0
      ]
    }
@@ -22,8 +23,9 @@
      BaseType: 'WebButton'
      Properties:
      [
        Description: 'Financial sales report'
        Image: 'MONEY_COINS2'
        Label: 'Financial sales report'
        Label: '财务销量报表'
        Taborder: 1
      ]
    }
@@ -33,8 +35,9 @@
      BaseType: 'WebButton'
      Properties:
      [
        Description: 'Inventory summary report'
        Image: 'DOCUMENT_CHECK_EDIT'
        Label: 'Inventory summary report'
        Label: '库存汇总报表'
        Taborder: 2
      ]
    }
@@ -44,8 +47,9 @@
      BaseType: 'WebButton'
      Properties:
      [
        Description: 'Financial weekly report'
        Image: 'DOCUMENT_DIRTY'
        Label: 'Financial weekly report'
        Label: '长春周报报表'
        Taborder: 3
      ]
    }
@@ -70,8 +74,9 @@
      ]
      Properties:
      [
        Description: 'Pipeline report'
        Image: 'DOCUMENT_CONNECTION'
        Label: 'Pipeline report'
        Label: '管线报表'
        Taborder: 5
      ]
    }
@@ -93,7 +98,7 @@
      Properties:
      [
        Image: 'LOCATION_PIN'
        Label: 'Machine logistics cost report'
        Label: '机加物流成本报表'
        Taborder: 7
      ]
    }
@@ -130,6 +135,43 @@
        Taborder: 9
      ]
    }
    Component bCC_EngineRackReport
    {
      #keys: '[413988.0.1477120930]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'SATELLITE'
        Label: '长春发动机料架报表'
        Taborder: 10
      ]
    }
    Component bDL_EngineRackReport
    {
      #keys: '[413988.0.1488511896]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EARTH_LOCATION'
        Label: '大连发动机料架报表'
        Taborder: 11
      ]
    }
    Component ButtonEngineLogisticsCostReport
    {
      #keys: '[415136.0.989557433]'
      BaseType: 'WebButton'
      Children:
      [
        #child: ContextMenuEngineLogisticsCostReport
      ]
      Properties:
      [
        Image: 'MONEY2'
        Label: '发动机物流成本报表'
        Taborder: 12
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuEngineLogisticsCostReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
Quintiq file version 2.0
Component ContextMenuEngineLogisticsCostReport
{
  #keys: '[415136.0.989557478]'
  BaseType: 'WebContextMenu'
  Children:
  [
    Component MenuCCEngineLogisticsCostReport
    {
      #keys: '[415136.0.989557479]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: 'CC engine logistics cost report'
        Image: 'MONEY2'
        Taborder: 0
        Title: '长春发动机物流成本报表'
      ]
    }
    Component MenuDLEngineLogisticsCostReport
    {
      #keys: '[415136.0.991620623]'
      BaseType: 'WebMenu'
      Properties:
      [
        Description: 'DL engine logistics cost report'
        Image: 'MONEY2'
        Taborder: 1
        Title: '大连发动机物流成本报表'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ContextMenuPipelineReport.def
@@ -11,9 +11,10 @@
      BaseType: 'WebMenu'
      Properties:
      [
        Description: 'Engine pipeline report'
        Image: 'DOCUMENT_CONNECTION'
        Taborder: 0
        Title: 'Engine pipeline report'
        Title: '发动机管线报表'
      ]
    }
    Component MenuMachiningPipelineReport
@@ -22,9 +23,10 @@
      BaseType: 'WebMenu'
      Properties:
      [
        Description: 'Machining pipeline report'
        Image: 'DOCUMENT_CONNECTION'
        Taborder: 1
        Title: 'Machining pipeline report'
        Title: '机加件管线报表'
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bCC_EngineRackReport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ActionBarGroupReport/bCC_EngineRackReport
Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_bCC_EngineRackReport_OnClick
{
  #keys: '[413988.0.1477121059]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "CCEngineRackReport", true);
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ActionBarGroupReport/bDL_EngineRackReport
Response OnClick () id:Response_MacroPlanner_ActionBarGroupReport_bDL_EngineRackReport_OnClick
{
  #keys: '[413988.0.1488512018]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "DLEngineRackReport", true);
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuEngineLogisticsCostReport_MenuCCEngineLogis.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ContextMenuEngineLogisticsCostReport/MenuCCEngineLogisticsCostReport
Response OnClick () id:Response_MacroPlanner_ContextMenuEngineLogisticsCostReport_MenuCCEngineLogisticsCostReport_OnClick
{
  #keys: '[415136.0.989557681]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "CC_engine_logistics_cost_report_view", true);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_ContextMenuEngineLogisticsCostReport_MenuDLEngineLogis.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: ContextMenuEngineLogisticsCostReport/MenuDLEngineLogisticsCostReport
Response OnClick () id:Response_MacroPlanner_ContextMenuEngineLogisticsCostReport_MenuDLEngineLogisticsCostReport_OnClick
{
  #keys: '[415136.0.993328236]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMenu_OnClick'
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "DL_engine_logistics_cost_report_view", true);
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostEngine/Component_pnlContent.def
@@ -5,17 +5,6 @@
  BaseType: 'WebPanel'
  Children:
  [
    Component efFactory id:efFactory_245
    {
      #keys: '[413988.0.1457133347]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: '工厂'
        Taborder: 0
      ]
    }
    Component efGeneration
    {
      #keys: '[413988.0.1457133350]'
@@ -93,6 +82,18 @@
        Taborder: 7
      ]
    }
    Component ddslFactory
    {
      #keys: '[415754.0.98386037]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: '工厂'
        Strings: '大连工厂;长春工厂'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMachining/Component_pnlContent.def
@@ -5,17 +5,6 @@
  BaseType: 'WebPanel'
  Children:
  [
    Component efFactory
    {
      #keys: '[413988.0.1457092631]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: '工厂'
        Taborder: 0
      ]
    }
    Component efProduct
    {
      #keys: '[413988.0.1457092665]'
@@ -115,6 +104,18 @@
        Taborder: 9
      ]
    }
    Component ddslFactory id:ddslFactory_653
    {
      #keys: '[415754.0.98423632]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: '工厂'
        Strings: '大连工厂;长春工厂'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostMaterialRack/Component_pnlContent.def
@@ -5,17 +5,6 @@
  BaseType: 'WebPanel'
  Children:
  [
    Component efFactory
    {
      #keys: '[413988.0.1456914946]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: '工厂'
        Taborder: 0
      ]
    }
    Component npWarehousingPrice
    {
      #keys: '[413988.0.1455874538]'
@@ -60,6 +49,18 @@
        Taborder: 4
      ]
    }
    Component ddslFactory
    {
      #keys: '[415754.0.97113155]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Factory'
        Label: '工厂'
        Strings: '大连工厂;长春工厂'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Component_pnlContent.def
@@ -16,28 +16,6 @@
        Taborder: 0
      ]
    }
    Component efOrigin
    {
      #keys: '[413988.0.1458251274]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Origin'
        Label: '起始地'
        Taborder: 1
      ]
    }
    Component efDestination
    {
      #keys: '[413988.0.1458549250]'
      BaseType: 'WebEditField'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Destination'
        Label: '目的地'
        Taborder: 2
      ]
    }
    Component npLoadingCapacity
    {
      #keys: '[413988.0.1456916992]'
@@ -60,6 +38,28 @@
        Taborder: 4
      ]
    }
    Component ddslOrigin
    {
      #keys: '[415754.0.97111795]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Origin'
        Label: '起始地'
        Taborder: 1
      ]
    }
    Component ddslDestination
    {
      #keys: '[415754.0.97143070]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Destination'
        Label: '目的地'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlContent_ddslDestination_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: pnlContent/ddslDestination
Response OnCreated () id:Response_pnlContent_ddslDestination_OnCreated
{
  #keys: '[415754.0.97143069]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      spmpids := selectuniquevalues( MacroPlan, StockingPoint_MP, tempSPMP, true, tempSPMP.ID() );
      this.Strings( spmpids.Concatenate( ";" ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditLogisticsCostTransport/Response_pnlContent_ddslOrigin_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: pnlContent/ddslOrigin
Response OnCreated () id:Response_pnlContent_ddslOrigin_OnCreated
{
  #keys: '[415754.0.97111881]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      spmpids := selectuniquevalues( MacroPlan, StockingPoint_MP, tempSPMP, true, tempSPMP.ID() );
      this.Strings( spmpids.Concatenate( ";" ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Component_pnlContent.def
@@ -38,7 +38,6 @@
        DataBinding: 'DataHolderDialogData.Data.Name'
        Label: 'Name'
        Sorting: 'none'
        Strings: '早班;中班;夜班'
        Taborder: 2
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Response_pnlContent_ddslName_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: pnlContent/ddslName
Response OnCreated () id:Response_pnlContent_ddslName_OnCreated
{
  #keys: '[415754.0.97151310]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      spns := selectuniquevalues( MacroPlan, ShiftPattern, tempSP, true, tempSP.Name() );
      this.Strings( spns.Concatenate( ";" ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def
@@ -4,7 +4,6 @@
{
  #keys: '[415136.0.756140039]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    return Routing::ValidateThermalTrialRatio( feedback, ddlUnit.Data(), [Number]efMaxCapacity.Text(), dsStartTime.Date(), dsEndTime.Date(), [Number]efThermalTrialRatio.Text() );
@@ -15,5 +14,6 @@
    [*
      Form.OnOK();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurve.def
@@ -11,7 +11,6 @@
      BaseType: 'WebEditField'
      Properties:
      [
        Enabled: false
        NumberOfColumns: 60
        Taborder: 1
      ]
@@ -33,6 +32,7 @@
      BaseType: 'WebLabel'
      Properties:
      [
        Label: 'Curve'
        NumberOfColumns: 0
        Taborder: 0
      ]
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pCurveEnable.def
@@ -32,5 +32,6 @@
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 7
    Visible: false
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Component_pPPAEnable.def
@@ -11,7 +11,6 @@
      BaseType: 'WebCheckbox'
      Properties:
      [
        Checked: true
        Label: '上传PPA'
        Taborder: 1
      ]
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurveEnable_cCurveEnable_OnChanged.def
@@ -9,8 +9,8 @@
  {
    Body:
    [*
      efCurve.Enabled( this.Checked(), "" );
      cPreviousEditionCurve.Enabled( this.Checked(), "" );
      //efCurve.Enabled( this.Checked(), "" );
      //cPreviousEditionCurve.Enabled( this.Checked(), "" );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pCurve_bCurve_OnClick.def
@@ -7,7 +7,7 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return cCurveEnable.Checked();
    //return cCurveEnable.Checked();
  *]
  QuillAction
  {
@@ -29,6 +29,8 @@
          efCurve.Text( fileName );
          dhBinaryDataCurve.Data( &webFileBinaryData );
          dhOriginalFileNameCurve.Data( fileName );
          cCurveEnable.Checked( true );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      this.Enabled( cPPAEnable.Checked(), "" );
      //this.Enabled( cPPAEnable.Checked(), "" );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAArchiveEnable_cPPAPPAArchiveEnable_OnUserChanged.def
@@ -27,6 +27,8 @@
        dhBinaryDataPPA.Data( BinaryData::FromBase64EncodedString( dhLocalBinaryDataPPA.Data().AsBase64EncodedString() ) );
        dhOriginalFileNamePPA.Data( dhLocalOriginalFileNamePPA.Data() );
      }
      cPPAEnable.Checked( true );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPAEnable_cPPAEnable_OnChanged.def
@@ -9,9 +9,9 @@
  {
    Body:
    [*
      efPPA.Enabled( this.Checked(), "" );
      cPPA.Enabled( this.Checked(), "" );
      cPPAPPAArchiveEnable.Enabled( this.Checked(), "" );
      //efPPA.Enabled( this.Checked(), "" );
      //cPPA.Enabled( this.Checked(), "" );
      //cPPAPPAArchiveEnable.Enabled( this.Checked(), "" );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_bPPA_OnClick.def
@@ -7,7 +7,7 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return cPPAEnable.Checked();
    //return cPPAEnable.Checked();
  *]
  QuillAction
  {
@@ -29,6 +29,8 @@
          efPPA.Text( fileName );
          dhBinaryDataPPA.Data( &webFileBinaryData );
          dhOriginalFileNamePPA.Data( fileName );
          cPPAEnable.Checked( true );
        }
      } onerror {
        WebMessageBox::Error( e.GeneralInformation() );
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPPA_cPPA_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      this.Enabled( cPPAEnable.Checked(), "" );
      //this.Enabled( cPPAEnable.Checked(), "" );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPreviousEditionCurve_cPreviousEditionCurve_OnCreated.def
@@ -9,7 +9,7 @@
  {
    Body:
    [*
      this.Enabled( cCurveEnable.Checked(), "" );
      //this.Enabled( cCurveEnable.Checked(), "" );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_DialogRequirementUpload/Response_pPreviousEditionCurve_cPreviousEditionCurve_OnUserChanged.def
@@ -26,6 +26,8 @@
        dhBinaryDataCurve.Data( BinaryData::FromBase64EncodedString( dhLocalBinaryDataCurve.Data().AsBase64EncodedString() ) );
        dhOriginalFileNameCurve.Data( dhLocalOriginalFileNameCurve.Data() );
      }
      cCurveEnable.Checked( true );
    *]
    GroupServerCalls: false
  }
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_MatrixEditorTable#358.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
Quintiq file version 2.0
Component MatrixEditorTable id:MatrixEditorTable_358
{
  #keys: '[415136.0.989500591]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellTable
    {
      #keys: '[415136.0.989500592]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorCell
        {
          #keys: '[415136.0.989500593]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'CCEngineLogisticsCostReport'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'Row.Cell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'RentEnterCost;RentOutCost;FactoryToRentTransCost;RentStorageCost;EstimatedTotalCost;Coefficient;TotalCost'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
      ]
    }
    Component MatrixEditorRowsTable
    {
      #keys: '[415136.0.989500594]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorRow
        {
          #keys: '[415136.0.989500595]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'CCEngineLogisticsCostReport'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'Row'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'RowNr'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumnsTable
    {
      #keys: '[415136.0.989500596]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorColumn
        {
          #keys: '[415136.0.989500597]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'CCEngineLogisticsCostReport'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'Column'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Index'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable_1
    #child: matrixeditorContextMenuTable_1
  ]
  Properties:
  [
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumnsTable'
    ContextMenu: 'matrixeditorContextMenuTable'
    Rows: 'MatrixEditorRowsTable'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelCCEngineLogisticsCostReportHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelCCEngineLogisticsCostReportHeader
{
  #keys: '[415136.0.989500449]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelCCEngineLogisticsCostReportSearch
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelCCEngineLogisticsCostReportSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
Component PanelCCEngineLogisticsCostReportSearch
{
  #keys: '[415136.0.989500450]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelExport_670
    #child: PanelPower_653
    #child: PanelMQBMLB_667
    #child: PanelGeneration_969
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelExport#670.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
Component PanelExport id:PanelExport_670
{
  #keys: '[415136.0.989500459]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonExport
    {
      #keys: '[415136.0.989500460]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 1
      ]
    }
    Component ButtonSearch
    {
      #keys: '[415136.0.989500461]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'VIEW'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelGeneration#969.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelGeneration id:PanelGeneration_969
{
  #keys: '[415136.0.989500453]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslGeneration
    {
      #keys: '[415136.0.989500454]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Generation'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelMQBMLB#667.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelMQBMLB id:PanelMQBMLB_667
{
  #keys: '[415136.0.989500455]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslMQBMLB
    {
      #keys: '[415136.0.989500456]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelPower#653.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelPower id:PanelPower_653
{
  #keys: '[415136.0.989500457]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslPower
    {
      #keys: '[415136.0.989500458]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Power'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_PanelTable#211.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelTable id:PanelTable_211
{
  #keys: '[415136.0.989500590]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditorTable_358
  ]
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_matrixEditorActionBarPageTable#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable id:matrixEditorActionBarPageTable_1
{
  #keys: '[415136.0.989500598]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Component_matrixeditorContextMenuTable#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable id:matrixeditorContextMenuTable_1
{
  #keys: '[415136.0.989500599]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_MatrixEditorTable_358_OnUpdateValue.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,32 @@
Quintiq file version 2.0
#parent: MatrixEditorTable_358
Response OnUpdateValue (
  CCEngineLogisticsCostRow row,
  CCEngineLogisticsCostColumn column,
  CCEngineLogisticsCostCell cell,
  Number value,
  Number oldvalue
) id:Response_MatrixEditorTable_358_OnUpdateValue
{
  #keys: '[415136.0.989501207]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMatrixEditor_OnUpdateValue'
  QuillAction
  {
    Body:
    [*
      table            := selectobject( MacroPlan, CCEngineLogisticsCostReport, report, not report.IsShow() );
      cell.Coefficient( value );
      traverse( table, Row, trow, trow.Name() = row.Name() ){
        traverse( trow, Cell, tcel, tcel.Column().Name() = column.Name() ){
          tcel.RentEnterCost( cell.RentEnterCost() );
          tcel.RentOutCost( cell.RentOutCost() );
          tcel.FactoryToRentTransCost( cell.FactoryToRentTransCost() );
          tcel.RentStorageCost( cell.RentStorageCost() );
          tcel.Coefficient( cell.Coefficient() );
        }
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FormCCEngineLogisticsCostReport_OnCreated
{
  #keys: '[415136.0.989500680]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      //初始化
      //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
        CCEngineLogisticsCostReport::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, CCEngineLogisticsCostReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      DataHolderTable.Data( table );
      dhSearch.Data( table.MacroPlan().CCEngineLogisticsCostSearch() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_ButtonExport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelExport_670/ButtonExport
Response OnClick () id:Response_PanelExport_670_ButtonExport_OnClick
{
  #keys: '[415136.0.989500440]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := CCEngineLogisticsCostReport::Download( MacroPlan );
      Application.Download( CCEngineLogisticsCostReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelExport_670_ButtonSearch_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelExport_670/ButtonSearch
Response OnClick () id:Response_PanelExport_670_ButtonSearch_OnClick
{
  #keys: '[415136.0.989500439]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelGeneration_969_ddslGeneration_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelGeneration_969/ddslGeneration
Response OnCreated () id:Response_PanelGeneration_969_ddslGeneration_OnCreated
{
  #keys: '[415136.0.989500446]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelGeneration_969_ddslGeneration_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelGeneration_969/ddslGeneration
Response OnSelectionChanged () id:Response_PanelGeneration_969_ddslGeneration_OnSelectionChanged
{
  #keys: '[415136.0.989500445]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelMQBMLB_667_ddslMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelMQBMLB_667/ddslMQBMLB
Response OnCreated () id:Response_PanelMQBMLB_667_ddslMQBMLB_OnCreated
{
  #keys: '[415136.0.989500444]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.MQBMLB() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelMQBMLB_667_ddslMQBMLB_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelMQBMLB_667/ddslMQBMLB
Response OnSelectionChanged () id:Response_PanelMQBMLB_667_ddslMQBMLB_OnSelectionChanged
{
  #keys: '[415136.0.989500443]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelPower_653_ddslPower_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelPower_653/ddslPower
Response OnCreated () id:Response_PanelPower_653_ddslPower_OnCreated
{
  #keys: '[415136.0.989500442]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Power() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/Response_PanelPower_653_ddslPower_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelPower_653/ddslPower
Response OnSelectionChanged () id:Response_PanelPower_653_ddslPower_OnSelectionChanged
{
  #keys: '[415136.0.989500441]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCCEngineLogisticsCostReport/_ROOT_Component_FormCCEngineLogisticsCostReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCCEngineLogisticsCostReport
{
  #keys: '[415136.0.989500338]'
  BaseType: 'WebForm'
  Children:
  [
    Component DataHolderTable id:DataHolderTable_437
    {
      #keys: '[415136.0.989500367]'
      BaseType: 'WebDataHolder'
      Databinding: 'CCEngineLogisticsCostReport'
      Properties:
      [
        Taborder: 0
      ]
    }
    Component dhSearch id:dhSearch_902
    {
      #keys: '[415136.0.989500384]'
      BaseType: 'WebDataHolder'
      Databinding: 'CCEngineLogisticsCostSearch'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: PanelCCEngineLogisticsCostReportHeader
    #child: PanelTable_211
  ]
  Properties:
  [
    Description: 'CC engine logistics cost report'
    Image: 'MONEY2'
    Title: '长春发动机物流成本报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_MatrixEditor531.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
Quintiq file version 2.0
Component MatrixEditor531
{
  #keys: '[413988.0.1478231769]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCell611
    {
      #keys: '[413988.0.1478231770]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractor453
        {
          #keys: '[413988.0.1478231771]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'CC_EngineRackRow.CC_EngineRackCell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'TotalQuantityOfMaterialRacks;NumberOfEmptyShelves;StorageFeesForRentedWarehouses;OutboundExpensesForRentedWarehouses;ExternalRentalWarehouseTransportationCosts;RentalWarehouseStorageFees;CleaningCost;EstimatedTotalCost;Coefficient;TotalCost'
        Column: 'CC_EngineRackColumn'
        Row: 'CC_EngineRackRow'
        Taborder: 0
      ]
    }
    Component MatrixEditorRows933
    {
      #keys: '[413988.0.1478231774]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor852
        {
          #keys: '[413988.0.1478231775]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'CC_EngineRackRow'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Name'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumns163
    {
      #keys: '[413988.0.1478231778]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor403
        {
          #keys: '[413988.0.1478231779]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'CC_EngineRackColumn'
          ]
        }
      ]
      Properties:
      [
        Legend: 'StartDate'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPage178
    #child: matrixeditorContextMenu683
  ]
  Properties:
  [
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumns163'
    ContextMenu: 'matrixeditorContextMenu683'
    Rows: 'MatrixEditorRows933'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_matrixEditorActionBarPage178.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPage178
{
  #keys: '[413988.0.1478231782]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_matrixeditorContextMenu683.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenu683
{
  #keys: '[413988.0.1478231785]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component pContent
{
  #keys: '[413988.0.1478230471]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditor531
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Component_pHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component pHeader
{
  #keys: '[413988.0.1478230459]'
  BaseType: 'WebPanel'
  Children:
  [
    Component bRefresh
    {
      #keys: '[413988.0.1478230548]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/Response_pHeader_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: pHeader/bRefresh
Response OnClick () id:Response_pHeader_bRefresh_OnClick
{
  #keys: '[413988.0.1478230577]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      CC_EngineRackCell::CreateData( MacroPlan );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormCC_EngineRackReport/_ROOT_Component_FormCC_EngineRackReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormCC_EngineRackReport
{
  #keys: '[413988.0.1478230433]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pHeader
    #child: pContent
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_MatrixEditorTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
Quintiq file version 2.0
Component MatrixEditorTable
{
  #keys: '[415136.0.992750484]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCellTable
    {
      #keys: '[415136.0.992750485]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractorCell
        {
          #keys: '[415136.0.992750486]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'DLEngineLogisticsCostReport'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'Row.Cell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'CCRentEnterCost;CCRentOutCost;CCLongTransCoat;CCShortTransCost;CCRentStorageCost;DLRentEnterCost;DLRentOutCost;FactoryToDLRentTransCost;DLRentStorageCost;EstimatedTotalCost;Coefficient;TotalCost'
        Column: 'Column'
        Row: 'Row'
        Taborder: 0
      ]
    }
    Component MatrixEditorRowsTable
    {
      #keys: '[415136.0.992750487]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorRow
        {
          #keys: '[415136.0.992750488]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'DLEngineLogisticsCostReport'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'Row'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'RowNr'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumnsTable
    {
      #keys: '[415136.0.992750489]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractorColumn
        {
          #keys: '[415136.0.992750490]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'DLEngineLogisticsCostReport'
            Source: 'DataHolderTable'
            Taborder: 0
            Transformation: 'Column'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Index'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPageTable
    #child: matrixeditorContextMenuTable
  ]
  Properties:
  [
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumnsTable'
    ContextMenu: 'matrixeditorContextMenuTable'
    Rows: 'MatrixEditorRowsTable'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelDLEngineLogisticsCostReportHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component PanelDLEngineLogisticsCostReportHeader
{
  #keys: '[415136.0.992750421]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelDLEngineLogisticsCostReportSearch
  ]
  Properties:
  [
    FixedSize: true
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelDLEngineLogisticsCostReportSearch.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
Component PanelDLEngineLogisticsCostReportSearch
{
  #keys: '[415136.0.992750422]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: PanelExport
    #child: PanelPower
    #child: PanelMQBMLB
    #child: PanelGeneration
  ]
  Properties:
  [
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelExport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
Component PanelExport
{
  #keys: '[415136.0.992750423]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ButtonExport
    {
      #keys: '[415136.0.992750424]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'EXPORT1'
        Taborder: 1
      ]
    }
    Component ButtonSearch
    {
      #keys: '[415136.0.992750425]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'VIEW'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelGeneration.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelGeneration
{
  #keys: '[415136.0.992750430]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslGeneration
    {
      #keys: '[415136.0.992750431]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Generation'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelMQBMLB.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelMQBMLB
{
  #keys: '[415136.0.992750428]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslMQBMLB
    {
      #keys: '[415136.0.992750429]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'MQB/MLB'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelPower.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component PanelPower
{
  #keys: '[415136.0.992750426]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddslPower
    {
      #keys: '[415136.0.992750427]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        Label: 'Power'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Orientation: 'horizontal'
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_PanelTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component PanelTable
{
  #keys: '[415136.0.992750483]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditorTable
  ]
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_matrixEditorActionBarPageTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPageTable
{
  #keys: '[415136.0.992750491]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Component_matrixeditorContextMenuTable.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenuTable
{
  #keys: '[415136.0.992750492]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_MatrixEditorTable_OnUpdateValue.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,33 @@
Quintiq file version 2.0
#parent: MatrixEditorTable
Response OnUpdateValue (
  DLEngineLogisticsCostRow row,
  DLEngineLogisticsCostColumn column,
  DLEngineLogisticsCostCell cell,
  Number value,
  Number oldvalue
) id:Response_MatrixEditorTable_OnUpdateValue
{
  #keys: '[415136.0.992750480]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMatrixEditor_OnUpdateValue'
  QuillAction
  {
    Body:
    [*
      table            := selectobject( MacroPlan, DLEngineLogisticsCostReport, report, not report.IsShow() );
      info( focusedattribute );
      //cell.Coefficient( value );
      //traverse( table, Row, trow, trow.Name() = row.Name() ){
      //  traverse( trow, Cell, tcel, tcel.Column().Name() = column.Name() ){
      //    tcel.RentEnterCost( cell.RentEnterCost() );
      //    tcel.RentOutCost( cell.RentOutCost() );
      //    tcel.FactoryToRentTransCost( cell.FactoryToRentTransCost() );
      //    tcel.RentStorageCost( cell.RentStorageCost() );
      //    tcel.Coefficient( cell.Coefficient() );
      //  }
      //}
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
Response OnCreated () id:Response_FormDLEngineLogisticsCostReport_OnCreated
{
  #keys: '[415136.0.997148779]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      //初始化
      //if( not exists( MacroPlan, FinancialProductionSource, source, not source.IsImport() ) ){
        DLEngineLogisticsCostReport::Initialize( MacroPlan );
      //}
      //info( '------------------1----------------' );
      table := selectobject( MacroPlan, DLEngineLogisticsCostReport, table, table.IsShow() );
      //info( '------------------2----------------', table.IsImport(), table.IsShow() );
      DataHolderTable.Data( table );
      dhSearch.Data( table.MacroPlan().DLEngineLogisticsCostSearch() );
      info( '------------------2----------------', isnull( dhSearch.Data() ) );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_ButtonExport_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonExport
Response OnClick () id:Response_PanelExport_ButtonExport_OnClick
{
  #keys: '[415136.0.992750420]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      binaryValue := DLEngineLogisticsCostReport::Download( MacroPlan );
      Application.Download( DLEngineLogisticsCostReport::GetDefaultName() + '.xlsx', binaryValue.AsBinaryData() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelExport_ButtonSearch_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: PanelExport/ButtonSearch
Response OnClick () id:Response_PanelExport_ButtonSearch_OnClick
{
  #keys: '[415136.0.992750419]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelGeneration_ddslGeneration_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelGeneration/ddslGeneration
Response OnCreated () id:Response_PanelGeneration_ddslGeneration_OnCreated
{
  #keys: '[415136.0.992750414]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Generation() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelGeneration_ddslGeneration_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelGeneration/ddslGeneration
Response OnSelectionChanged () id:Response_PanelGeneration_ddslGeneration_OnSelectionChanged
{
  #keys: '[415136.0.992750413]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( dhSearch.Data().Generation() <> selection ){
        dhSearch.Data().Generation( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelMQBMLB_ddslMQBMLB_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelMQBMLB/ddslMQBMLB
Response OnCreated () id:Response_PanelMQBMLB_ddslMQBMLB_OnCreated
{
  #keys: '[415136.0.992750416]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.MQBMLB() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelMQBMLB/ddslMQBMLB
Response OnSelectionChanged () id:Response_PanelMQBMLB_ddslMQBMLB_OnSelectionChanged
{
  #keys: '[415136.0.992750415]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( dhSearch.Data().MqbMlb() <> selection ){
        dhSearch.Data().MqbMlb( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelPower_ddslPower_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: PanelPower/ddslPower
Response OnCreated () id:Response_PanelPower_ddslPower_OnCreated
{
  #keys: '[415136.0.992750418]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  QuillAction
  {
    Body:
    [*
      values := selectuniquevalues( MacroPlan, Product_MP, tempPMP, true, tempPMP.Power() );
      valueString := values.Concatenate( ";" );
      valueString := selectuniquevalues( valueString.Tokenize( ";" ), Elements, tempS, true, tempS ).Concatenate( ";" );
      valueString := "<All>" + ifexpr( valueString = "", "", ";" ) + valueString;
      this.Strings( valueString );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/Response_PanelPower_ddslPower_OnSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: PanelPower/ddslPower
Response OnSelectionChanged () id:Response_PanelPower_ddslPower_OnSelectionChanged
{
  #keys: '[415136.0.992750417]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebDropDownStringList_OnSelectionChanged'
  QuillAction
  {
    Body:
    [*
      if( dhSearch.Data().Power() <> selection ){
        dhSearch.Data().Power( selection );
      //  DataHolderTable.Data().Generate( dhSearch.Data(), DataHolderProduct.Data() );
      }
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDLEngineLogisticsCostReport/_ROOT_Component_FormDLEngineLogisticsCostReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormDLEngineLogisticsCostReport
{
  #keys: '[415136.0.992750301]'
  BaseType: 'WebForm'
  Children:
  [
    Component DataHolderTable
    {
      #keys: '[415136.0.992750351]'
      BaseType: 'WebDataHolder'
      Databinding: 'DLEngineLogisticsCostReport'
      Properties:
      [
        Taborder: 0
      ]
    }
    Component dhSearch
    {
      #keys: '[415136.0.992750376]'
      BaseType: 'WebDataHolder'
      Databinding: 'DLEngineLogisticsCostSearch'
      Properties:
      [
        Taborder: 1
      ]
    }
    #child: PanelDLEngineLogisticsCostReportHeader
    #child: PanelTable
  ]
  Properties:
  [
    Description: 'DL engine logistics cost report'
    Image: 'MONEY2'
    Title: '大连发动机物流成本报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_MatrixEditor392.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
Quintiq file version 2.0
Component MatrixEditor392
{
  #keys: '[413988.0.1489707423]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCell613
    {
      #keys: '[413988.0.1489707424]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractor134
        {
          #keys: '[413988.0.1489707425]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'DL_EngineRackRow.DL_EngineRackCell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'TotalQuantityOfMaterialRacks;NumberOfEmptyShelves;CCStorageFeesForRentedWarehouses;CCOutboundExpensesForRentedWarehouses;CCRentalWarehouseStorageFees;CCLineHaulCost;CCShortDistanceTransportationCosts;DLStorageFeesForRentedWarehouses;DLOutboundExpensesForRentedWarehouses;DLExternalRentalWarehouseTransportationCosts;DLRentalWarehouseStorageFees;CleaningCost;EstimatedTotalCost;Coefficient;TotalCost'
        Column: 'DL_EngineRackColumn'
        Row: 'DL_EngineRackRow'
        Taborder: 0
      ]
    }
    Component MatrixEditorRows494
    {
      #keys: '[413988.0.1489707428]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor670
        {
          #keys: '[413988.0.1489707429]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'DL_EngineRackRow'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'Name'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumns989
    {
      #keys: '[413988.0.1489707432]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor963
        {
          #keys: '[413988.0.1489707433]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'DL_EngineRackColumn'
          ]
        }
      ]
      Properties:
      [
        Legend: 'StartDate'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPage191
    #child: matrixeditorContextMenu687
  ]
  Properties:
  [
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumns989'
    ContextMenu: 'matrixeditorContextMenu687'
    Rows: 'MatrixEditorRows494'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixEditorActionBarPage191.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPage191
{
  #keys: '[413988.0.1489707436]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_matrixeditorContextMenu687.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenu687
{
  #keys: '[413988.0.1489707439]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component pContent
{
  #keys: '[413988.0.1488511835]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditor392
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Component_pHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component pHeader
{
  #keys: '[413988.0.1488511824]'
  BaseType: 'WebPanel'
  Children:
  [
    Component bRefresh
    {
      #keys: '[413988.0.1488540773]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'REFRESH'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/Response_pHeader_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: pHeader/bRefresh
Response OnClick () id:Response_pHeader_bRefresh_OnClick
{
  #keys: '[413988.0.1488531173]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      DL_EngineRackCell::CreateData( MacroPlan );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormDL_EngineRackReport/_ROOT_Component_FormDL_EngineRackReport.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormDL_EngineRackReport
{
  #keys: '[413988.0.1488511807]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pHeader
    #child: pContent
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormEnginePipelineReport/_ROOT_Component_FormEnginePipelineReport.def
@@ -42,7 +42,8 @@
  ]
  Properties:
  [
    Description: 'Engine pipeline report'
    Image: 'DOCUMENT_CONNECTION'
    Title: 'Engine pipeline report'
    Title: '发动机管线报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialProductionReport/_ROOT_Component_FormFinancialProductionReport.def
@@ -32,7 +32,8 @@
  ]
  Properties:
  [
    Description: 'Financial production report'
    Image: 'DOCUMENT_REFRESH'
    Title: 'Financial production report'
    Title: '财务产量报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialSalesReport/_ROOT_Component_FormFinancialSalesReport.def
@@ -32,7 +32,8 @@
  ]
  Properties:
  [
    Description: 'Financial sales report'
    Image: 'MONEY_COINS2'
    Title: 'Financial sales report'
    Title: '财务销量报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormFinancialWeeklyReport/_ROOT_Component_FormFinancialWeeklyReport.def
@@ -12,7 +12,8 @@
  ]
  Properties:
  [
    Description: 'Financial weekly report'
    Image: 'DOCUMENT_DIRTY'
    Title: 'Financial weekly report'
    Title: '长春周报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormInventorySummaryReport/_ROOT_Component_FormInventorySummaryReport.def
@@ -32,7 +32,8 @@
  ]
  Properties:
  [
    Description: 'Inventory summary report'
    Image: 'DOCUMENT_CHECK_EDIT'
    Title: 'Inventory summary report'
    Title: '库存汇总报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormMachiningPipelineReport/_ROOT_Component_FormMachiningPipelineReport.def
@@ -32,7 +32,8 @@
  ]
  Properties:
  [
    Description: 'Machining pipeline report'
    Image: 'DOCUMENT_CONNECTION'
    Title: 'Machining pipeline report'
    Title: '机加件管线报表'
  ]
}
_Main/UI/MacroPlannerWebApp/Views/CCEngineRackReport.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,206 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormCC_EngineRackReport
      {
        title: 'QMacroPlanner::FormCC_EngineRackReport'
        shown: true
        componentID: 'QMacroPlanner::FormCC_EngineRackReport'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 14
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormCC_EngineRackReport_pHeader
          {
            sizeRatio: 1
          }
          FormCC_EngineRackReport_pContent
          {
            sizeRatio: 1
          }
          FormCC_EngineRackReport_MatrixEditor531
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormCC_EngineRackReport.MatrixEditor531'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_TotalQuantityOfMaterialRacks
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TotalQuantityOfMaterialRacks'
                    }
                    attribute_NumberOfEmptyShelves
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'NumberOfEmptyShelves'
                    }
                    attribute_StorageFeesForRentedWarehouses
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'StorageFeesForRentedWarehouses'
                    }
                    attribute_OutboundExpensesForRentedWarehouses
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'OutboundExpensesForRentedWarehouses'
                    }
                    attribute_ExternalRentalWarehouseTransportationCosts
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 4
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'ExternalRentalWarehouseTransportationCosts'
                    }
                    attribute_RentalWarehouseStorageFees
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 5
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'RentalWarehouseStorageFees'
                    }
                    attribute_CleaningCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 6
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CleaningCost'
                    }
                    attribute_EstimatedTotalCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 7
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'EstimatedTotalCost'
                    }
                    attribute_Coefficient
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 8
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Coefficient'
                    }
                    attribute_TotalCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 9
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TotalCost'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'Name'"
                  }
                }
              }
            }
          }
        }
      }
      form_FormGeneralSettings
      {
        title: 'General Settings'
        shown: true
        componentID: 'FormGeneralSettings'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormGeneralSettings_PanelContent
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelGeneralParameter
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelLeadTimeDependent
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelShelfLife
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelSustainability
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelForecastNetting
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelActions
          {
            sizeRatio: 1
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
    image: 'SATELLITE'
    description: ''
  }
  formatversion: 2
  id: 'CCEngineRackReport'
  name: 'CCEngineRackReport'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/CC_engine_logistics_cost_report_view.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,104 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormCCEngineLogisticsCostReport
      {
        title: 'QMacroPlanner::FormCCEngineLogisticsCostReport'
        shown: true
        componentID: 'QMacroPlanner::FormCCEngineLogisticsCostReport'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 13
        }
        components
        {
          FormCCEngineLogisticsCostReport_PanelCCEngineLogisticsCostReportHeader
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_PanelCCEngineLogisticsCostReportSearch
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_PanelGeneration
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_PanelMQBMLB
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_PanelPower
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_PanelExport
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_PanelTable
          {
            sizeRatio: 1
          }
          FormCCEngineLogisticsCostReport_MatrixEditorTable
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 113
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormCCEngineLogisticsCostReport.MatrixEditorTable'
              state
              {
                cells
                {
                  attributes
                  {
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'Index'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'RowNr'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 27
    image: 'MONEY2'
    description: ''
  }
  formatversion: 2
  id: 'CC_engine_logistics_cost_report_view'
  name: 'CC engine logistics cost report view'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/DLEngineRackReport.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,89 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormDL_EngineRackReport
      {
        title: 'QMacroPlanner::FormDL_EngineRackReport'
        shown: true
        componentID: 'QMacroPlanner::FormDL_EngineRackReport'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 14
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormDL_EngineRackReport_pHeader
          {
            sizeRatio: 1
          }
          FormDL_EngineRackReport_pContent
          {
            sizeRatio: 1
          }
        }
      }
      form_FormGeneralSettings
      {
        title: 'General Settings'
        shown: true
        componentID: 'FormGeneralSettings'
        layout
        {
          mode: 'dockright'
          index: 0
        }
        components
        {
          FormGeneralSettings_PanelContent
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelGeneralParameter
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelLeadTimeDependent
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelShelfLife
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelSustainability
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelForecastNetting
          {
            sizeRatio: 1
          }
          FormGeneralSettings_PanelActions
          {
            sizeRatio: 1
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
    image: 'DOCUMENT_MUSIC'
    description: ''
  }
  formatversion: 2
  id: 'DLEngineRackReport'
  name: 'DLEngineRackReport'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/DL_engine_logistics_cost_report_view.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,200 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormDLEngineLogisticsCostReport
      {
        title: 'QMacroPlanner::FormDLEngineLogisticsCostReport'
        shown: true
        componentID: 'QMacroPlanner::FormDLEngineLogisticsCostReport'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 15
          columnPosition: 1
          columnSpan: 13
        }
        components
        {
          FormDLEngineLogisticsCostReport_PanelDLEngineLogisticsCostReportHeader
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_PanelDLEngineLogisticsCostReportSearch
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_PanelGeneration
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_PanelMQBMLB
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_PanelPower
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_PanelExport
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_PanelTable
          {
            sizeRatio: 1
          }
          FormDLEngineLogisticsCostReport_MatrixEditorTable
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormDLEngineLogisticsCostReport.MatrixEditorTable'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_CCRentEnterCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CCRentEnterCost'
                    }
                    attribute_CCRentOutCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CCRentOutCost'
                    }
                    attribute_CCLongTransCoat
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CCLongTransCoat'
                    }
                    attribute_CCShortTransCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CCShortTransCost'
                    }
                    attribute_CCRentStorageCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 4
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CCRentStorageCost'
                    }
                    attribute_DLRentEnterCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 5
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DLRentEnterCost'
                    }
                    attribute_DLRentOutCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 6
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DLRentOutCost'
                    }
                    attribute_FactoryToDLRentTransCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 7
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'FactoryToDLRentTransCost'
                    }
                    attribute_DLRentStorageCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 8
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'DLRentStorageCost'
                    }
                    attribute_EstimatedTotalCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 9
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'EstimatedTotalCost'
                    }
                    attribute_Coefficient
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 10
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Coefficient'
                    }
                    attribute_TotalCost
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 11
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TotalCost'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'Index'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'RowNr'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 28
    image: 'MONEY2'
    description: ''
  }
  formatversion: 2
  id: 'DL_engine_logistics_cost_report_view'
  name: 'DL engine logistics cost report view'
  isglobal: false
  isroot: true
}
_Main/UI/MacroPlannerWebApp/Views/DemandComparison.vw
@@ -2,6 +2,142 @@
{
  viewcontents
  {
    forms
    {
      form_FormDemandComparison
      {
        title: 'QMacroPlanner::FormDemandComparison'
        shown: true
        componentID: 'QMacroPlanner::FormDemandComparison'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 17
          columnPosition: 1
          columnSpan: 11
        }
        components
        {
          FormDemandComparison_PanelDemandComparison294
          {
            sizeRatio: 1
          }
          FormDemandComparison_PanelSelection
          {
            sizeRatio: 1
          }
          FormDemandComparison_PanelSelectionChecks
          {
            sizeRatio: 1
          }
          FormDemandComparison_pSelectionPR
          {
            sizeRatio: 1
          }
          FormDemandComparison_pSelectionPP
          {
            sizeRatio: 1
          }
          FormDemandComparison_pSelectionBudget
          {
            sizeRatio: 1
          }
          FormDemandComparison_pSelectionPPA
          {
            sizeRatio: 1
          }
          FormDemandComparison_pSelectionIDS
          {
            sizeRatio: 1
          }
          FormDemandComparison_pSelectionCurve
          {
            sizeRatio: 1
          }
          FormDemandComparison_PanelFilter
          {
            sizeRatio: 1
          }
          FormDemandComparison_PanelOperation
          {
            sizeRatio: 1
          }
          FormDemandComparison_pVersionInfomation
          {
            sizeRatio: 1
          }
          FormDemandComparison_PanelDemandComparison
          {
            sizeRatio: 1
          }
          FormDemandComparison_MatrixEditor
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormDemandComparison.MatrixEditor'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_BaseVersion
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'BaseVersion'
                    }
                    attribute_CompareVersion
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'CompareVersion'
                    }
                    attribute_Gap
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Gap'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'Index'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'Index'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
_Main/UI/MacroPlannerWebApp/Views/LogisticsCostParameterSetting.vw
@@ -43,21 +43,12 @@
              subtotals: ''
              width: 82
            }
            column_Product
            {
              columnId: 'Product'
              dataPath: 'Product'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 63
            }
            column_Factory
            {
              columnId: 'Factory'
              dataPath: 'Factory'
              dataType: 'string'
              index: 3
              index: 2
              subtotals: ''
              width: 60
            }
@@ -66,7 +57,7 @@
              columnId: 'PackagingCapacity'
              dataPath: 'PackagingCapacity'
              dataType: 'number'
              index: 4
              index: 3
              subtotals: ''
              width: 86
            }
@@ -75,7 +66,7 @@
              columnId: 'WarehousingPrice'
              dataPath: 'WarehousingPrice'
              dataType: 'number'
              index: 5
              index: 4
              subtotals: ''
              width: 126
            }
@@ -84,7 +75,7 @@
              columnId: 'OutboundPrice'
              dataPath: 'OutboundPrice'
              dataType: 'number'
              index: 6
              index: 5
              subtotals: ''
              width: 126
            }
@@ -93,7 +84,7 @@
              columnId: 'StoragePrice'
              dataPath: 'StoragePrice'
              dataType: 'number'
              index: 7
              index: 6
              subtotals: ''
              width: 124
            }
@@ -102,7 +93,7 @@
              columnId: 'OtherPrice'
              dataPath: 'OtherPrice'
              dataType: 'number'
              index: 8
              index: 7
              subtotals: ''
              width: 127
            }
_Main/UI/MacroPlannerWebApp/Views/ShiftPlan.vw
@@ -2,10 +2,94 @@
{
  viewcontents
  {
    image: 'COMPASSES'
    forms
    {
      form_FormShihtPlan
      {
        title: 'QMacroPlanner::FormShihtPlan'
        shown: true
        componentID: 'QMacroPlanner::FormShihtPlan'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 17
          columnPosition: 1
          columnSpan: 9
        }
        components
        {
          FormShihtPlan_PanelMatrix
          {
            sizeRatio: 1
          }
          FormShihtPlan_pOperation
          {
            sizeRatio: 1
          }
          FormShihtPlan_MatrixEditorTimeCapacities
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 200
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormShihtPlan.MatrixEditorTimeCapacities'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Outcome
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Outcome'
                    }
                    attribute_Remark
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Remark'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'DisplayIndex'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
    image: 'COMPASSES'
    description: ''
  }
  formatversion: 2
_var/_Main/ProjSettings/EditorTC/Views/°à´Îʱ¼ä·ÖÎö_[413988.0.1367211460].vw
@@ -17,7 +17,7 @@
  CREATIONUSER 'quintiq/lihongji'
  UPDATEDATETIME '2024-07-16T11:47:37'
  UPDATEUSER 'quintiq/lihongji'
  LASTACCESSDATE '2024-08-07'
  LASTACCESSDATE '2024-08-12'
  VIEWSCOPE 0
}
AUTHORIZATIONS