lihongji
2024-10-12 6abb15fbe15c966e5281160baacab45ab8bc741b
下线计划存档建模
已添加63个文件
已修改1个文件
1347 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl 93 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def 19 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def 99 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def 98 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/HighlightRules.hl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw 215 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_In.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InterfaceNewOfflinePlanDetailData_InterfaceNewOfflinePlanVersion_InterfaceNewOfflinePlanVersion_InterfaceNewOfflinePlanDetailData
{
  #keys: '1[413988.0.1635820084]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide InterfaceNewOfflinePlanVersion
  {
    #keys: '3[413988.0.1635820086][413988.0.1635820085][413988.0.1635820087]'
    Cardinality: '0to1'
    ObjectDefinition: InterfaceNewOfflinePlanDetailData
    OwningSide: 'Reference'
  }
  RelationSide.RightSide InterfaceNewOfflinePlanDetailData
  {
    #keys: '3[413988.0.1635820089][413988.0.1635820088][413988.0.1635820090]'
    Cardinality: '1toN'
    ObjectDefinition: InterfaceNewOfflinePlanVersion
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_In.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation InterfaceNewOfflinePlanVersion_InterfaceDataset_InterfaceDataset_InterfaceNewOfflinePlanVersion
{
  #keys: '1[413988.0.1635820033]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide InterfaceDataset
  {
    #keys: '3[413988.0.1635820035][413988.0.1635820034][413988.0.1635820036]'
    Cardinality: '0to1'
    ObjectDefinition: InterfaceNewOfflinePlanVersion
    OwningSide: 'Reference'
  }
  RelationSide.RightSide InterfaceNewOfflinePlanVersion
  {
    #keys: '3[413988.0.1635820038][413988.0.1635820037][413988.0.1635820039]'
    Cardinality: '1toN'
    ObjectDefinition: InterfaceDataset
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation NewOfflinePlanCell_Detailed_NewOfflinePlanCell_Total
{
  #keys: '1[413988.0.1603460432]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Detailed
  {
    #keys: '3[413988.0.1603460434][413988.0.1603460433][413988.0.1603460435]'
    Cardinality: '1toN'
    ObjectDefinition: NewOfflinePlanCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide Total
  {
    #keys: '3[413988.0.1603460437][413988.0.1603460436][413988.0.1603460438]'
    Cardinality: '0to1'
    ObjectDefinition: NewOfflinePlanCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOff.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation NewOfflinePlanCell_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanCell
{
  #keys: '1[413988.0.1603460144]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide NewOfflinePlanColumn
  {
    #keys: '3[413988.0.1603460146][413988.0.1603460145][413988.0.1603460147]'
    Cardinality: '0to1'
    ObjectDefinition: NewOfflinePlanCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide NewOfflinePlanCell
  {
    #keys: '3[413988.0.1603460149][413988.0.1603460148][413988.0.1603460150]'
    Cardinality: '1toN'
    ObjectDefinition: NewOfflinePlanColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflineP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
#parent: #root
Relation NewOfflinePlanRow_NewOfflinePlanCell_NewOfflinePlanCell_NewOfflinePlanRow
{
  #keys: '1[413988.0.1603460131]'
  DeclarativeSequenceRelationStrategy
  {
    #keys: '13[0.0.0][413988.0.1603460275][413988.0.1603460269][413988.0.1603460276][413988.0.1603460270][413988.0.1603460277][413988.0.1603460271][413988.0.1603460278][413988.0.1603460272][413988.0.1603460279][413988.0.1603460273][413988.0.1603460280][413988.0.1603460274]'
    SequenceElementSuffix: 'NOPCell'
    SequenceSuffix: 'NOPCell'
    SortAttributes:
    [
      DeclarativeSequenceRelationSortAttribute
      {
        #keys: '1[413988.0.1603460282]'
        Attribute: 'StartDate'
      }
    ]
  }
  RelationSide.LeftSide NewOfflinePlanCell
  {
    #keys: '3[413988.0.1603460133][413988.0.1603460132][413988.0.1603460134]'
    Cardinality: '1toN'
    ObjectDefinition: NewOfflinePlanRow
    OwningSide: 'Owned'
  }
  RelationSide.RightSide NewOfflinePlanRow
  {
    #keys: '3[413988.0.1603460136][413988.0.1603460135][413988.0.1603460137]'
    Cardinality: '0to1'
    ObjectDefinition: NewOfflinePlanCell
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation NewOfflinePlanTable_MacroPlan_MacroPlan_NewOfflinePlanTable
{
  #keys: '1[413988.0.1603460049]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1603460051][413988.0.1603460050][413988.0.1603460052]'
    Cardinality: '0to1'
    ObjectDefinition: NewOfflinePlanTable
    OwningSide: 'Reference'
  }
  RelationSide.RightSide NewOfflinePlanTable
  {
    #keys: '3[413988.0.1603460054][413988.0.1603460053][413988.0.1603460055]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOf.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation NewOfflinePlanTable_NewOfflinePlanColumn_NewOfflinePlanColumn_NewOfflinePlanTable
{
  #keys: '1[413988.0.1603460118]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide NewOfflinePlanColumn
  {
    #keys: '3[413988.0.1603460120][413988.0.1603460119][413988.0.1603460121]'
    Cardinality: '1toN'
    ObjectDefinition: NewOfflinePlanTable
    OwningSide: 'Owned'
  }
  RelationSide.RightSide NewOfflinePlanTable
  {
    #keys: '3[413988.0.1603460123][413988.0.1603460122][413988.0.1603460124]'
    Cardinality: '0to1'
    ObjectDefinition: NewOfflinePlanColumn
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflineP.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation NewOfflinePlanTable_NewOfflinePlanRow_NewOfflinePlanRow_NewOfflinePlanTable
{
  #keys: '1[413988.0.1603460091]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide NewOfflinePlanRow
  {
    #keys: '3[413988.0.1603460093][413988.0.1603460092][413988.0.1603460094]'
    Cardinality: '1toN'
    ObjectDefinition: NewOfflinePlanTable
    OwningSide: 'Owned'
  }
  RelationSide.RightSide NewOfflinePlanTable
  {
    #keys: '3[413988.0.1603460096][413988.0.1603460095][413988.0.1603460097]'
    Cardinality: '0to1'
    ObjectDefinition: NewOfflinePlanRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Order.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Order
{
  #keys: '3[413988.0.1635820128][413988.0.1635820127][413988.0.1635820129]'
  Description: '生产顺序(String)'
  ValueType: String
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_OrderNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderNr
{
  #keys: '3[413988.0.1635820138][413988.0.1635820137][413988.0.1635820139]'
  Description: '生产顺序(Number)'
  ValueType: Number
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[413988.0.1635820181][413988.0.1635820180][413988.0.1635820182]'
  Description: '产品ID'
  ValueType: String
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ProductionLine.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductionLine
{
  #keys: '3[413988.0.1635820098][413988.0.1635820097][413988.0.1635820099]'
  Description: '产线名'
  ValueType: String
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[413988.0.1635820108][413988.0.1635820107][413988.0.1635820109]'
  Description: '数量'
  ValueType: Real
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternEnd.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftPatternEnd
{
  #keys: '3[413988.0.1635820171][413988.0.1635820170][413988.0.1635820172]'
  Description: '班次结束时间'
  ValueType: String
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftPatternName
{
  #keys: '3[413988.0.1635820151][413988.0.1635820150][413988.0.1635820152]'
  Description: '班次名'
  ValueType: String
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_ShiftPatternStart.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftPatternStart
{
  #keys: '3[413988.0.1635820161][413988.0.1635820160][413988.0.1635820162]'
  Description: '班次开始时间'
  ValueType: String
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[413988.0.1635820118][413988.0.1635820117][413988.0.1635820119]'
  Description: '开始时间'
  ValueType: Date
}
_Main/BL/Type_InterfaceNewOfflinePlanDetailData/_ROOT_Type_InterfaceNewOfflinePlanDetailData.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InterfaceNewOfflinePlanDetailData
{
  #keys: '5[413988.0.1635820064][413988.0.1635820062][0.0.0][413988.0.1635820063][413988.0.1635820065]'
  BaseType: Object
  Description: '下线计划每个版本详细数据'
  StructuredName: 'InterfaceNewOfflinePlanDetailDatas'
}
_Main/BL/Type_InterfaceOfflinePlanVersion/Attribute_ScenarioName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ScenarioName
{
  #keys: '3[413988.0.1635820050][413988.0.1635820049][413988.0.1635820051]'
  Description: '版本名'
  ValueType: String
}
_Main/BL/Type_InterfaceOfflinePlanVersion/_ROOT_Type_InterfaceNewOfflinePlanVersion.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type InterfaceNewOfflinePlanVersion
{
  #keys: '5[413988.0.1635820030][413988.0.1635820028][0.0.0][413988.0.1635820029][413988.0.1635820031]'
  BaseType: Object
  Description: '下线计划版本存档数据'
  StructuredName: 'InterfaceNewOfflinePlanVersions'
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[413988.0.1603460249][413988.0.1603460248][413988.0.1603460250]'
  ValueType: Date
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_InventoryWeight.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute InventoryWeight
{
  #keys: '3[413988.0.1606610060][413988.0.1606610059][413988.0.1606610061]'
  Description: '剩余库存 - æœ€å°åº“å­˜'
  ValueType: Real
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_Order.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Order
{
  #keys: '3[413988.0.1603460357][413988.0.1603460356][413988.0.1603460358]'
  Description: '生产顺序(String)'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_OrderNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OrderNr
{
  #keys: '3[413988.0.1607288352][413988.0.1607288351][413988.0.1607288353]'
  Description: '生产顺序(Number)'
  ValueType: Number
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_Quantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Quantity
{
  #keys: '3[413988.0.1603460347][413988.0.1603460346][413988.0.1603460348]'
  Description: '数量'
  ValueType: Real
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternEnd.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftPatternEnd
{
  #keys: '3[413988.0.1603460415][413988.0.1603460414][413988.0.1603460416]'
  Description: '班次结束时间'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftPatternName
{
  #keys: '3[413988.0.1603460389][413988.0.1603460388][413988.0.1603460390]'
  Description: '班次名'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_ShiftPatternStart.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ShiftPatternStart
{
  #keys: '3[413988.0.1603460402][413988.0.1603460401][413988.0.1603460403]'
  Description: '班次开始时间'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[413988.0.1603460239][413988.0.1603460238][413988.0.1603460240]'
  ValueType: Date
}
_Main/BL/Type_NewOfflinePlanCell/Attribute_TotalQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute TotalQuantity
{
  #keys: '3[413988.0.1603460379][413988.0.1603460378][413988.0.1603460380]'
  Description: '合计'
  ValueType: Real
}
_Main/BL/Type_NewOfflinePlanCell/Function_CalcEndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcEndDate
{
  TextBody:
  [*
    // lihongji Oct-11-2024 (created)
    value := guard( this.NewOfflinePlanColumn().EndDate(), Date::MinDate() );
    this.EndDate( value );
  *]
}
_Main/BL/Type_NewOfflinePlanCell/Function_CalcStartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcStartDate
{
  TextBody:
  [*
    // lihongji Oct-11-2024 (created)
    value := guard( this.NewOfflinePlanColumn().StartDate(), Date::MinDate() );
    this.StartDate( value );
  *]
}
_Main/BL/Type_NewOfflinePlanCell/Function_CalcTotalQuantity.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcTotalQuantity
{
  TextBody:
  [*
    // lihongji Oct-11-2024 (created)
    value := sum( this, Detailed, tempNOPC, true, tempNOPC.Quantity() );
    this.TotalQuantity( value );
  *]
}
_Main/BL/Type_NewOfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,93 @@
Quintiq file version 2.0
#parent: #root
StaticMethod RefreshOfflinePlan (
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    macroPlan.NewOfflinePlanTable( relflush );
    nopt := macroPlan.NewOfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
    // ç”Ÿæˆä¸‹çº¿è®¡åˆ’表【一条产线在同一天不会产生两次相同产品的周期任务】
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime()
    //           and u.Name() = "eMotor Assy (France)" // æµ‹è¯•本地场景时可以过滤
    //           and u.Name() = "DL-MoMo"              // æµ‹è¯•实际场景时可以过滤
              )
    {
      // å¾ªçŽ¯éåŽ†å‘¨æœŸä»»åŠ¡çš„NewSupply【生成明细下线计划】
      traverse ( u, Operation, o ) {
        traverse ( o, PeriodTaskOperation.NewSupply, ns ) {
          // ProductInStockingPoint_MP
          pisp     := ns.AsProductionSupply().ProductInStockingPoint_MP();
          // ProductInStockingPointInPeriodPlanningLeaf
          pispippl := ns.ProductInStockingPointInPeriodPlanningLeaf();
          // Period_MP
          pmp      := pispippl.Period_MP();
          // ShiftPattern
          sp       := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern();
          // ShiftDayTime
          sdt      := select( sp, ShiftDayTime, tempSDT, tempSDT.Name() = tempSDT.ShiftPattern().Name() );
          // ç”Ÿæˆä¸‹çº¿è®¡åˆ’【产线明细】行
          detailedNOPR   := select( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.ProductID() = pisp.ProductID() and tempNOPR.Type() = "1" );
          if ( isnull( detailedNOPR ) ) {
            detailedNOPR := nopt.NewOfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := pisp.ProductID(), Type := "1" );
          }
          // ç”Ÿæˆä¸‹çº¿è®¡åˆ’列
          nopc   := select( nopt, NewOfflinePlanColumn, tempNOPC, tempNOPC.StartDate() = pmp.StartDate() and tempNOPC.EndDate() = pmp.EndDate() );
          if ( isnull( nopc ) ) {
            nopc := nopt.NewOfflinePlanColumn( relnew, StartDate := pmp.StartDate(), EndDate := pmp.EndDate() );
          }
          // ç”Ÿæˆä¸‹çº¿è®¡åˆ’【产线明细】单元格
          detaileNOPCell := select( detailedNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = nopc );
          if ( isnull ( detaileNOPCell ) ) {
            detaileNOPCell := detailedNOPR.NewOfflinePlanCell( relnew,
                                                               Quantity          := ns.Quantity().Round( 0 ),
                                                               InventoryWeight   := pispippl.InventoryLevelEnd() - pispippl.MinInventoryLevel(),
                                                               ShiftPatternName  := guard( sdt.Name(), "" ),
                                                               ShiftPatternStart := guard( sdt.StartDateTime().Format( "H:m" ), "" ),
                                                               ShiftPatternEnd   := guard( sdt.EndDateTIme().Format( "H:m" ), "" ) );
            detaileNOPCell.NewOfflinePlanColumn( relset, nopc );
          }
        }
      }
      // è®¾ç½®ç”Ÿäº§é¡ºåºã€å¯¹ä¸‹çº¿è®¡åˆ’明细生效】
      // ã€ç”Ÿæˆåˆè®¡ä¸‹çº¿è®¡åˆ’】
      totalNOPR   := nopt.NewOfflinePlanRow( relnew, ProductID := "All", ProductionLine := u.ID(), Type := "2" );
      detailNOPRs := selectset( nopt, NewOfflinePlanRow, tempNOPR, tempNOPR.ProductionLine() = u.ID() and tempNOPR.Type() = "1" );
      traverse ( detailNOPRs, Elements, detailNOPR ) {
        traverse ( detailNOPR, NewOfflinePlanCell, detailNOPCell ) {
          // ç”Ÿäº§ä¸‹çº¿è®¡åˆ’【产线合计】单元格
          totalNOPRCell   := select( totalNOPR, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = detailNOPCell.NewOfflinePlanColumn() );
          if ( isnull( totalNOPRCell ) ) {
            totalNOPRCell := totalNOPR.NewOfflinePlanCell( relnew );
            totalNOPRCell.NewOfflinePlanColumn( relset, detailNOPCell.NewOfflinePlanColumn() ); // è®¾ç½®åˆ—
            // å°†æ˜Žç»†å•元格关联到合计单元格
            totalNOPRCell.Detailed( relinsert, detailNOPCell );
          } else {
            // å°†æ˜Žç»†å•元格关联到合计单元格
            totalNOPRCell.Detailed( relinsert, detailNOPCell );
          }
        }
      }
      // è¡¥é½ç©ºæ ¼å­
      traverse ( nopt, NewOfflinePlanRow, nopr ) {
        traverse ( nopt, NewOfflinePlanColumn, nopc ) {
          cell   := select( nopr, NewOfflinePlanCell, tempNOPCell, tempNOPCell.NewOfflinePlanColumn() = nopc );
          if ( isnull( cell ) ) {
            cell := nopr.NewOfflinePlanCell( relnew );
            cell.NewOfflinePlanColumn( relset, nopc );
          }
        }
      }
    }
  *]
}
_Main/BL/Type_NewOfflinePlanCell/_ROOT_Type_NewOfflinePlanCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type NewOfflinePlanCell
{
  #keys: '5[413988.0.1603460079][413988.0.1603460077][0.0.0][413988.0.1603460078][413988.0.1603460080]'
  BaseType: Object
  Description: '下线计划单元格'
  StructuredName: 'NewOfflinePlanCells'
}
_Main/BL/Type_NewOfflinePlanColumn/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[413988.0.1603460170][413988.0.1603460169][413988.0.1603460171]'
  ValueType: Date
}
_Main/BL/Type_NewOfflinePlanColumn/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[413988.0.1603460160][413988.0.1603460159][413988.0.1603460161]'
  ValueType: Date
}
_Main/BL/Type_NewOfflinePlanColumn/_ROOT_Type_NewOfflinePlanColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type NewOfflinePlanColumn
{
  #keys: '5[413988.0.1603460074][413988.0.1603460072][0.0.0][413988.0.1603460073][413988.0.1603460075]'
  BaseType: Object
  Description: '下线计划列'
  StructuredName: 'NewOfflinePlanColumns'
}
_Main/BL/Type_NewOfflinePlanRow/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1607288491][413988.0.1607288490][413988.0.1607288492]'
  Description: '显示名'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[413988.0.1603460321][413988.0.1603460320][413988.0.1603460322]'
  Description: '产品ID'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanRow/Attribute_ProductionLine.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductionLine
{
  #keys: '3[413988.0.1603460311][413988.0.1603460310][413988.0.1603460312]'
  Description: '产线名'
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanRow/Attribute_Type.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Attribute Type
{
  #keys: '3[413988.0.1603460334][413988.0.1603460333][413988.0.1603460335]'
  Description:
  [*
    1:明细显示
    2:合计显示
  *]
  ValueType: String
}
_Main/BL/Type_NewOfflinePlanRow/Function_CalcName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcName
{
  TextBody:
  [*
    // lihongji Oct-12-2024 (created)
    value := this.ProductionLine() + ifexpr( this.ProductID() = "All", "", "_" + this.ProductID() );
    this.Name( value );
  *]
}
_Main/BL/Type_NewOfflinePlanRow/Method_Filter.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: #root
Method Filter (
  Entitys entitys
) declarative remote as Boolean
{
  TextBody:
  [*
    flag := false;
    traverse ( entitys, Elements.astype( Unit ), u, not flag ) {
      flag := u.Name() = this.ProductionLine();
    }
    return flag;
  *]
}
_Main/BL/Type_NewOfflinePlanRow/_ROOT_Type_NewOfflinePlanRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type NewOfflinePlanRow
{
  #keys: '5[413988.0.1603460069][413988.0.1603460067][0.0.0][413988.0.1603460068][413988.0.1603460070]'
  BaseType: Object
  Description: '下线计划行'
  StructuredName: 'NewOfflinePlanRows'
}
_Main/BL/Type_NewOfflinePlanTable/Attribute_SaveDateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute SaveDateTime
{
  #keys: '3[413988.0.1603460037][413988.0.1603460036][413988.0.1603460038]'
  Description: '保存草稿的时间'
  ValueType: DateTime
}
_Main/BL/Type_NewOfflinePlanTable/_ROOT_Type_NewOfflinePlanTable.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type NewOfflinePlanTable
{
  #keys: '5[413988.0.1603460031][413988.0.1603460029][0.0.0][413988.0.1603460030][413988.0.1603460032]'
  BaseType: Object
  StructuredName: 'NewOfflinePlanTables'
}
_Main/Sys/Repr/Global/NewOfflinePlanCell.qrp
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
#parent: #root
TypeRepresentation NewOfflinePlanCell
{
  AttributeRepresentation ShiftPatternEnd
  {
    AttributeKey: '[413988.0.1603460414]'
    Synonym: '班次结束时间'
  }
  AttributeRepresentation ShiftPatternName
  {
    AttributeKey: '[413988.0.1603460388]'
    Synonym: '班次'
  }
  AttributeRepresentation ShiftPatternStart
  {
    AttributeKey: '[413988.0.1603460401]'
    Synonym: '班次开始时间'
  }
  AttributeRepresentation TotalQuantity
  {
    AttributeKey: '[413988.0.1603460378]'
    Synonym: '总量'
  }
  RelationRepresentation AsFirstNOPCell { RelationKey: '[413988.0.1603460270]' Visibility: 'Normal' }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -22,7 +22,7 @@
      BaseType: 'WebButton'
      Properties:
      [
        Taborder: 5
        Taborder: 6
      ]
    }
    Component bOfflinePlan
@@ -45,7 +45,7 @@
        Description: 'AssemblyOnlinePlan'
        Image: 'PALM_TREE'
        Label: 'Filing plan'
        Taborder: 2
        Taborder: 3
      ]
    }
    Component bPackagingPlan
@@ -56,7 +56,7 @@
      [
        Image: 'SIXPACK_BEER'
        Label: 'Packaging plan'
        Taborder: 3
        Taborder: 4
      ]
    }
    Component bShippingActualData
@@ -67,7 +67,18 @@
      [
        Image: 'TABLE_CONNECTION'
        Label: 'Shipping data'
        Taborder: 4
        Taborder: 5
      ]
    }
    Component bNewOfflinePlan
    {
      #keys: '[413988.0.1607471411]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'LIGHTBULB'
        Label: 'Output plan'
        Taborder: 2
      ]
    }
  ]
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: abgSecondDevelopmentPlan/bNewOfflinePlan
Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bNewOfflinePlan_OnClick
{
  #keys: '[413988.0.1607471572]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "NewOfflinePlan", true );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor515.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,99 @@
Quintiq file version 2.0
Component MatrixEditor515
{
  #keys: '[413988.0.1607432871]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCell568
    {
      #keys: '[413988.0.1607432872]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractor802
        {
          #keys: '[413988.0.1607432873]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[NewOfflinePlanRow]'
            Source: 'dhSelectedDetailNewOfflinePlanRow'
            Taborder: 0
            Transformation: 'Elements.NewOfflinePlanCell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'Quantity;Order'
        Column: 'NewOfflinePlanColumn'
        Row: 'NewOfflinePlanRow'
        Taborder: 0
      ]
    }
    Component MatrixEditorRows710
    {
      #keys: '[413988.0.1607432876]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor206
        {
          #keys: '[413988.0.1607432877]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[NewOfflinePlanRow]'
            Source: 'dhSelectedDetailNewOfflinePlanRow'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'ProductionLine;ProductID'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumns748
    {
      #keys: '[413988.0.1607432880]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor675
        {
          #keys: '[413988.0.1607432881]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'NewOfflinePlanTable'
            Source: 'dhNewOfflinePlanTable'
            Taborder: 0
            Transformation: 'NewOfflinePlanColumn'
          ]
        }
      ]
      Properties:
      [
        Legend: 'StartDate'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPage623
    #child: matrixeditorContextMenu229
  ]
  Properties:
  [
    AllowAttributeConfiguration: true
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumns748'
    ContextMenu: 'matrixeditorContextMenu229'
    Rows: 'MatrixEditorRows710'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_MatrixEditor583.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,98 @@
Quintiq file version 2.0
Component MatrixEditor583
{
  #keys: '[413988.0.1607432902]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCell950
    {
      #keys: '[413988.0.1607432903]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractor782
        {
          #keys: '[413988.0.1607432904]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[NewOfflinePlanRow]'
            Source: 'dhSelectedTotalNewOfflinePlanRow'
            Taborder: 0
            Transformation: 'Elements.NewOfflinePlanCell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'TotalQuantity;ShiftPatternName;ShiftPatternStart;ShiftPatternEnd'
        Column: 'NewOfflinePlanColumn'
        Row: 'NewOfflinePlanRow'
        Taborder: 0
      ]
    }
    Component MatrixEditorRows569
    {
      #keys: '[413988.0.1607432907]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor195
        {
          #keys: '[413988.0.1607432908]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[NewOfflinePlanRow]'
            Source: 'dhSelectedTotalNewOfflinePlanRow'
            Taborder: 0
            Transformation: 'Elements'
          ]
        }
      ]
      Properties:
      [
        Legend: 'Name'
        SortCriteria: 'ProductionLine;ProductID'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumns473
    {
      #keys: '[413988.0.1607432911]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor526
        {
          #keys: '[413988.0.1607432912]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'NewOfflinePlanTable'
            Source: 'dhNewOfflinePlanTable'
            Taborder: 0
            Transformation: 'NewOfflinePlanColumn'
          ]
        }
      ]
      Properties:
      [
        Legend: 'StartDate'
        SortCriteria: 'StartDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPage338
    #child: matrixeditorContextMenu267
  ]
  Properties:
  [
    AllowMultipleAttributes: true
    Columns: 'MatrixEditorColumns473'
    ContextMenu: 'matrixeditorContextMenu267'
    Rows: 'MatrixEditorRows569'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage338.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPage338
{
  #keys: '[413988.0.1607432915]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixEditorActionBarPage623.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPage623
{
  #keys: '[413988.0.1607432884]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu229.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenu229
{
  #keys: '[413988.0.1607432887]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_matrixeditorContextMenu267.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenu267
{
  #keys: '[413988.0.1607432918]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pDetail.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component pDetail
{
  #keys: '[413988.0.1607470703]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditor515
  ]
  Properties:
  [
    Border: true
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
Quintiq file version 2.0
Component pHeader
{
  #keys: '[413988.0.1607470685]'
  BaseType: 'WebPanel'
  Children:
  [
    Component bRefresh
    {
      #keys: '[413988.0.1607470932]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Refresh'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Component_pTotal.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component pTotal
{
  #keys: '[413988.0.1607470720]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditor583
  ]
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_dhNewOfflinePlanTable_OnCreated.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: dhNewOfflinePlanTable
Response OnCreated () id:Response_FormNewOfflinePlan_dhNewOfflinePlanTable_OnCreated
{
  #keys: '[413988.0.1612870517]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebComponent_OnCreated'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      nopt := maxselect( MacroPlan, NewOfflinePlanTable, tempOPT, true, tempOPT.SaveDateTime() );
      this.Data( nopt );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/Response_pHeader_bRefresh_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: pHeader/bRefresh
Response OnClick () id:Response_pHeader_bRefresh_OnClick
{
  #keys: '[413988.0.1607471065]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      NewOfflinePlanCell::RefreshOfflinePlan( MacroPlan );
      nopt := maxselect( MacroPlan, NewOfflinePlanTable, tempNOPT, true, tempNOPT.SaveDateTime() );
      dhNewOfflinePlanTable.Data( nopt );
      WebMessageBox::Success( Translations::A_VWED_Success() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormNewOfflinePlan/_ROOT_Component_FormNewOfflinePlan.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormNewOfflinePlan
{
  #keys: '[413988.0.1606778977]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pTotal
    #child: pHeader
    #child: pDetail
    Component dhNewOfflinePlanTable
    {
      #keys: '[413988.0.1607471150]'
      BaseType: 'WebDataHolder'
      Databinding: 'NewOfflinePlanTable'
      Properties:
      [
        Taborder: 3
      ]
    }
    Component dhSelectedDetailNewOfflinePlanRow
    {
      #keys: '[413988.0.1607433222]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[NewOfflinePlanRow]*'
      Children:
      [
        Component deSelectedNewOfflinePlanRow
        {
          #keys: '[413988.0.1608510877]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'NewOfflinePlanTable'
            FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities'
            FixedFilter: 'object.Filter( entities ) and object.Type() = "1"'
            Source: 'dhNewOfflinePlanTable'
            Taborder: 0
            Transformation: 'NewOfflinePlanRow'
          ]
        }
      ]
      Properties:
      [
        Taborder: 4
      ]
    }
    Component dhSelectedTotalNewOfflinePlanRow
    {
      #keys: '[413988.0.1609979741]'
      BaseType: 'WebDataHolder'
      Databinding: 'structured[NewOfflinePlanRow]*'
      Children:
      [
        Component deSelectedNewOfflinePlanRow681
        {
          #keys: '[413988.0.1609979742]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'NewOfflinePlanTable'
            FilterArguments: 'entities:QLibMacroPlannerWebUI::ApplicationMacroPlanner.DataHolderCheckedEntities'
            FixedFilter: 'object.Filter( entities ) and object.Type() = "2"'
            Source: 'dhNewOfflinePlanTable'
            Taborder: 0
            Transformation: 'NewOfflinePlanRow'
          ]
        }
      ]
      Properties:
      [
        Taborder: 5
      ]
    }
  ]
  Properties:
  [
    Description: '新装配下线计划'
    Image: 'WIND_ENGINE_OFFSHORE'
    Title: 'Output plan'
  ]
}
_Main/UI/MacroPlannerWebApp/HighlightRules.hl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
HighlightRules
{
  HighlightRule
  {
    #keys: '1[413988.0.1616240421]'
    Bidirectional: true
    ContinueHighlighting: true
    Description: '下线计划根据细分突出显示合计'
    Groups: Default
    HighlightPathString: 'Total'
    StartTypeString: 'NewOfflinePlanCell'
  }
}
_Main/UI/MacroPlannerWebApp/Views/NewOfflinePlan.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,215 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormNewOfflinePlan
      {
        title: 'QMacroPlanner::FormNewOfflinePlan'
        shown: true
        componentID: 'QMacroPlanner::FormNewOfflinePlan'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 14
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormNewOfflinePlan_pHeader
          {
            sizeRatio: 1
          }
          FormNewOfflinePlan_pDetail
          {
            sizeRatio: 1
          }
          FormNewOfflinePlan_MatrixEditor515
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 511
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormNewOfflinePlan.MatrixEditor515'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Quantity
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: 'sum'
                      attribute: 'Quantity'
                    }
                    attribute_Order
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Order'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'ProductionLine';datamember:'ProductID'"
                  }
                }
              }
            }
          }
          FormNewOfflinePlan_pTotal
          {
            sizeRatio: 1
          }
          FormNewOfflinePlan_MatrixEditor583
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 510
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormNewOfflinePlan.MatrixEditor583'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_TotalQuantity
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'TotalQuantity'
                    }
                    attribute_ShiftPatternName
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 1
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'ShiftPatternName'
                    }
                    attribute_ShiftPatternStart
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 2
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'ShiftPatternStart'
                    }
                    attribute_ShiftPatternEnd
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 3
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'ShiftPatternEnd'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'StartDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'ProductionLine';datamember:'ProductID'"
                  }
                }
              }
            }
          }
        }
      }
      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: 'CHART_DONUT'
    description: ''
  }
  formatversion: 2
  id: 'NewOfflinePlan'
  name: 'NewOfflinePlan'
  isglobal: false
  isroot: true
}