lihongji
2024-06-28 3aef91dbbfb10d9db6c7cea3c170d279d6f6dc24
车道整班
已添加36个文件
已修改4个文件
1318 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OfflinePlanColumn_MacroPlan_MacroPlan_OfflinePlanColumn.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OfflinePlanRow_MacroPlan_MacroPlan_OfflinePlanRow.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanCell/Attribute_Shift.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanCell/Attribute_Value.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl 103 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanCell/_ROOT_Type_OfflinePlanCell.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanColumn/Attribute_ColumnDate.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanColumn/Attribute_ColumnIndex.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanColumn/Attribute_ColumnName.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanColumn/Function_CalcColumnName.qbl 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanColumn/TypeIndex_OfflinePlanColumnTypeIndex.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanColumn/_ROOT_Type_OfflinePlanColumn.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/Attribute_ProductID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/Attribute_ProductionLine.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/Attribute_RowNr.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/Attribute_Type.qbl 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/TypeIndex_OfflinePlanRowTypeIndex.qbl 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/_ROOT_Type_OfflinePlanRow.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_WholeShift/Method_PostProcessing2.qbl 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlContent.def 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def 97 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_matrixEditorActionBarPage250.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_matrixeditorContextMenu204.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent#611.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bConfirm_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDeductionOfReplacementLoss_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDownload_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRefresh_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRestore_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bMaximumDailyTransferCapacity_OnClick.def 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/OfflinePlan.vw 92 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/EditorTC/Views/车道整班分析_[413988.0.1301140601].vw 500 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OfflinePlanCell_OfflinePlanColumn_OfflinePlanColumn_OfflinePlanCell
{
  #keys: '1[413988.0.1296697089]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide OfflinePlanColumn
  {
    #keys: '3[413988.0.1296697091][413988.0.1296697090][413988.0.1296697092]'
    Cardinality: '0to1'
    ObjectDefinition: OfflinePlanCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OfflinePlanCell
  {
    #keys: '3[413988.0.1296697094][413988.0.1296697093][413988.0.1296697095]'
    Cardinality: '1toN'
    ObjectDefinition: OfflinePlanColumn
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OfflinePlanCell_OfflinePlanRow_OfflinePlanRow_OfflinePlanCell
{
  #keys: '1[413988.0.1296697102]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide OfflinePlanRow
  {
    #keys: '3[413988.0.1296697104][413988.0.1296697103][413988.0.1296697105]'
    Cardinality: '0to1'
    ObjectDefinition: OfflinePlanCell
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OfflinePlanCell
  {
    #keys: '3[413988.0.1296697107][413988.0.1296697106][413988.0.1296697108]'
    Cardinality: '1toN'
    ObjectDefinition: OfflinePlanRow
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_OfflinePlanColumn_MacroPlan_MacroPlan_OfflinePlanColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OfflinePlanColumn_MacroPlan_MacroPlan_OfflinePlanColumn
{
  #keys: '1[413988.0.1296697061]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1296697063][413988.0.1296697062][413988.0.1296697064]'
    Cardinality: '0to1'
    ObjectDefinition: OfflinePlanColumn
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OfflinePlanColumn
  {
    #keys: '3[413988.0.1296697066][413988.0.1296697065][413988.0.1296697067]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Relations/Relation_OfflinePlanRow_MacroPlan_MacroPlan_OfflinePlanRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation OfflinePlanRow_MacroPlan_MacroPlan_OfflinePlanRow
{
  #keys: '1[413988.0.1296696992]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide MacroPlan
  {
    #keys: '3[413988.0.1296696994][413988.0.1296696993][413988.0.1296696995]'
    Cardinality: '0to1'
    ObjectDefinition: OfflinePlanRow
    OwningSide: 'Reference'
  }
  RelationSide.RightSide OfflinePlanRow
  {
    #keys: '3[413988.0.1296696997][413988.0.1296696996][413988.0.1296696998]'
    Cardinality: '1toN'
    ObjectDefinition: MacroPlan
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_OfflinePlanCell/Attribute_Shift.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute Shift
{
  #keys: '3[413988.0.1303338462][413988.0.1303338461][413988.0.1303338463]'
  Description: '班次'
  ValueType: String
}
_Main/BL/Type_OfflinePlanCell/Attribute_Value.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Value
{
  #keys: '3[413988.0.1296697080][413988.0.1296697079][413988.0.1296697081]'
  ValueType: String
}
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,103 @@
Quintiq file version 2.0
#parent: #root
StaticMethod RefreshOfflinePlan (
  MacroPlan macroPlan
)
{
  TextBody:
  [*
    macroPlan.OfflinePlanRow( relflush );
    macroPlan.OfflinePlanColumn( relflush );
    // ç”Ÿæˆä¸‹çº¿è®¡åˆ’表
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime() and u.Name() = "ZP4-M3" ) {
      // åˆ›å»ºäº§çº¿è¡Œ
      macroPlan.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "", Type := "0" );
      traverse ( u, Operation, o ) {
        traverse ( o, PeriodTaskOperation.NewSupply, ns ) {
          // æ‰¾è¡Œ
          oprQuantity := OfflinePlanRow::FindOfflinePlanRowTypeIndex( u.ID(), ns.AsProductionSupply().ProductInStockingPoint_MP().ProductID(), "1" );
          oprOrder    := OfflinePlanRow::FindOfflinePlanRowTypeIndex( u.ID(), ns.AsProductionSupply().ProductInStockingPoint_MP().ProductID(), "2" );
          if ( isnull( oprQuantity ) and isnull( oprOrder ) ) {
            oprQuantity := macroPlan.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := ns.AsProductionSupply().ProductInStockingPoint_MP().ProductID(), Type := "1" );
            oprOrder    := macroPlan.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := ns.AsProductionSupply().ProductInStockingPoint_MP().ProductID(), Type := "2" );
          }
          // æ‰¾åˆ—
          opc := OfflinePlanColumn::FindOfflinePlanColumnTypeIndex( ns.Start().Date() );
          if ( isnull( opc ) ) {
            opc := macroPlan.OfflinePlanColumn( relnew, ColumnDate := ns.Start().Date() );
          }
          // èµ‹å€¼å•元格
          cellQuantity := opc.OfflinePlanCell( relnew, Value := [String]ns.Quantity().Round( 0 ), Shift := ns.PeriodTask_MP().UnitPeriod().astype( UnitPeriodTimeBase ).ShiftPattern().Name() );
          cellQuantity.OfflinePlanRow( relset, oprQuantity );
          cellOrder := opc.OfflinePlanCell( relnew, Value := "单号" );
          cellOrder.OfflinePlanRow( relset, oprOrder );
        }
      }
      // åˆ›å»ºæ€»é‡è¡Œ
      macroPlan.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "Z", Type := "3" );
      // åˆ›å»ºç­æ¬¡è¡Œ
      macroPlan.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "Z", Type := "4" );
    }
    // åˆ›å»ºäº§å“åˆ—&类型列
    productOPC := macroPlan.OfflinePlanColumn( relnew, ColumnDate := macroPlan.StartOfPlanning().Date() - 2 );
    typeOPC    := macroPlan.OfflinePlanColumn( relnew, ColumnDate := macroPlan.StartOfPlanning().Date() - 1 );
    traverse ( macroPlan, OfflinePlanRow, opr ) {
      if ( opr.Type() = "0" ) {
        productLineCell := productOPC.OfflinePlanCell( relnew, Value := opr.ProductionLine() );
        productLineCell.OfflinePlanRow( relset, opr );
      } else if( opr.Type() = "1" ) {
        productCell := productOPC.OfflinePlanCell( relnew, Value := opr.ProductID() );
        productCell.OfflinePlanRow( relset, opr );
        typeCell    := typeOPC.OfflinePlanCell( relnew, Value :=  "Quantity" );
        typeCell.OfflinePlanRow( relset, opr );
      } else if ( opr.Type() = "2" ) {
        typeCell    := typeOPC.OfflinePlanCell( relnew, Value :=  "Order" );
        typeCell.OfflinePlanRow( relset, opr );
      } else if ( opr.Type() = "3" ) {
        totalCell := productOPC.OfflinePlanCell( relnew, Value := "合计" );
        totalCell.OfflinePlanRow( relset, opr );
        totalCell := typeOPC.OfflinePlanCell( relnew, Value :=  "总量" );
        totalCell.OfflinePlanRow( relset, opr );
      } else if ( opr.Type() = "4" ) {
        shiftCell := typeOPC.OfflinePlanCell( relnew, Value :=  "班次" );
        shiftCell.OfflinePlanRow( relset, opr );
      }
    }
    // è¡¥å…¨æ€»é‡å’Œç­æ¬¡
    totalOPRs := selectset( macroPlan, OfflinePlanRow, tempOPR, tempOPR.Type() = "3" );
    shiftOPRs := selectset( macroPlan, OfflinePlanRow, tempOPR, tempOPR.Type() = "4" );
    traverse ( macroPlan, OfflinePlanColumn, opc, opc.OfflinePlanCell( relsize ) > 0 and opc.ColumnDate() >= macroPlan.StartOfPlanning().Date() ) {
      traverse ( totalOPRs, Elements, totalOPR ) {
        total     := sum( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = totalOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1", [Real]tempOPC.Value() );
        totalCell := opc.OfflinePlanCell( relnew, Value := [String]total );
        totalCell.OfflinePlanRow( relset, totalOPR );
      }
      traverse ( shiftOPRs, Elements, shiftOPR ) {
        shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = shiftOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" );
        if ( not isnull( shift ) ) {
          shiftCell := opc.OfflinePlanCell( relnew, Value := shift.Shift() );
          shiftCell.OfflinePlanRow( relset, shiftOPR );
        }
      }
    }
    // è¡¥å…¨æ—¶é—´åˆ—
    indexDate := macroPlan.StartOfPlanning().Date();
    endDate   := Date::Construct( indexDate.Year(), 12, 31 );
    while ( indexDate <= endDate ) {
      opc := OfflinePlanColumn::FindOfflinePlanColumnTypeIndex( indexDate );
      if ( isnull( opc ) ) {
        opc := macroPlan.OfflinePlanColumn( relnew, ColumnDate := indexDate );
      }
      indexDate := indexDate + 1;
    }
  *]
}
_Main/BL/Type_OfflinePlanCell/_ROOT_Type_OfflinePlanCell.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OfflinePlanCell
{
  #keys: '5[413988.0.1296696989][413988.0.1296696987][0.0.0][413988.0.1296696988][413988.0.1296696990]'
  BaseType: Object
  StructuredName: 'OfflinePlanCells'
}
_Main/BL/Type_OfflinePlanColumn/Attribute_ColumnDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ColumnDate
{
  #keys: '3[413988.0.1295080211][413988.0.1295080210][413988.0.1295080212]'
  IsReadOnly: true
  ValueType: Date
}
_Main/BL/Type_OfflinePlanColumn/Attribute_ColumnIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ColumnIndex
{
  #keys: '3[413988.0.1296697042][413988.0.1296697041][413988.0.1296697043]'
  ValueType: Number
}
_Main/BL/Type_OfflinePlanColumn/Attribute_ColumnName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute ColumnName
{
  #keys: '3[413988.0.1296697052][413988.0.1296697051][413988.0.1296697053]'
  ValueType: String
}
_Main/BL/Type_OfflinePlanColumn/Function_CalcColumnName.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Function CalcColumnName
{
  TextBody:
  [*
    // lihongji Jun-27-2024 (created)
    value := ifexpr( this.ColumnDate() < this.MacroPlan().StartOfPlanning().Date(), "", this.ColumnDate().Format( "Y/M2/D2" ) );
    this.ColumnName( value );
  *]
}
_Main/BL/Type_OfflinePlanColumn/TypeIndex_OfflinePlanColumnTypeIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
TypeIndex OfflinePlanColumnTypeIndex
{
  Attributes:
  [
    TypeIndexAttribute
    {
      ModelElement: ColumnDate
    }
  ]
}
_Main/BL/Type_OfflinePlanColumn/_ROOT_Type_OfflinePlanColumn.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OfflinePlanColumn
{
  #keys: '5[413988.0.1296696984][413988.0.1296696982][0.0.0][413988.0.1296696983][413988.0.1296696985]'
  BaseType: Object
  StructuredName: 'OfflinePlanColumns'
}
_Main/BL/Type_OfflinePlanRow/Attribute_ProductID.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductID
{
  #keys: '3[413988.0.1296697032][413988.0.1296697031][413988.0.1296697033]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_OfflinePlanRow/Attribute_ProductionLine.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute ProductionLine
{
  #keys: '3[413988.0.1296697022][413988.0.1296697021][413988.0.1296697023]'
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_OfflinePlanRow/Attribute_RowNr.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute RowNr
{
  #keys: '3[413988.0.1296697012][413988.0.1296697011][413988.0.1296697013]'
  ValueType: String
}
_Main/BL/Type_OfflinePlanRow/Attribute_Type.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Attribute Type
{
  #keys: '3[413988.0.1295121717][413988.0.1295121716][413988.0.1295121718]'
  Description:
  [*
    äº§çº¿åè¡Œ    ï¼š0
    Quantity行:1
    Order行     ï¼š2
    åˆè®¡è¡Œ        ï¼š3
    ç­æ¬¡è¡Œ        ï¼š4
  *]
  IsReadOnly: true
  ValueType: String
}
_Main/BL/Type_OfflinePlanRow/TypeIndex_OfflinePlanRowTypeIndex.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: #root
TypeIndex OfflinePlanRowTypeIndex
{
  Attributes:
  [
    TypeIndexAttribute
    {
      ModelElement: ProductionLine
    }
    TypeIndexAttribute
    {
      ModelElement: ProductID
    }
    TypeIndexAttribute
    {
      ModelElement: Type
    }
  ]
}
_Main/BL/Type_OfflinePlanRow/_ROOT_Type_OfflinePlanRow.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type OfflinePlanRow
{
  #keys: '5[413988.0.1296696979][413988.0.1296696977][0.0.0][413988.0.1296696978][413988.0.1296696980]'
  BaseType: Object
  StructuredName: 'OfflinePlanRows'
}
_Main/BL/Type_WholeShift/Method_IsRoundingOrZeroFilling4.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,35 @@
Quintiq file version 2.0
#parent: #root
Method IsRoundingOrZeroFilling4 (
  MacroPlan macroPlan,
  Unit unit
)
{
  Description: '车道整班'
  TextBody:
  [*
    traverse ( unit, Lane.LaneLeg.Trip, t ) {
      traverse ( t, ProductInTrip, pit, pit.Quantity() > 0.0 ) {
        // èŽ·å–äº§å“lotsize倍数
        lotsize := 1;
        if ( pit.Product_MP().ParentID().Regex( "缸体" ) ) {
          lotsize := macroPlan.CylinderBlock();
        } else if ( pit.Product_MP().ParentID().Regex( "缸盖" ) ) {
          lotsize := macroPlan.CylinderHead();
        } else if ( pit.Product_MP().ParentID().Regex( "连杆" ) ) {
          lotsize := macroPlan.ConnectingRod();
        } else if ( pit.Product_MP().ParentID().Regex( "曲轴" ) ) {
          lotsize := macroPlan.Crankshaft();
        } else if ( pit.Product_MP().ParentID().Regex( "曲轴" ) ) {
          lotsize := macroPlan.BalanceAxis();
        }
        if ( lotsize > 1 ) {
          debuginfo( "产品ID:", pit.ProductID(), "    äº§å“æ•°é‡ï¼š", pit.Quantity(), "    lotsize:", lotsize );
          quantityToBeSupplemented := lotsize - ( pit.Quantity() mod lotsize );
          pit.Update( pit.Quantity() + quantityToBeSupplemented, true );
        }
      }
    }
  *]
}
_Main/BL/Type_WholeShift/Method_PostProcessing2.qbl
@@ -47,9 +47,10 @@
    }
    
    // è½¦é“整班
    traverse ( macroPlan, Unit, unit, unit.IsToFill() and unit.HasCapacityTypeTransportQuantity() ) {
      unitName := unit.Name();
    traverse ( macroPlan, Unit, u, u.IsToFill() and u.HasCapacityTypeTransportQuantity() ) {
      unitName := u.Name();
      debuginfo( "车道产线: ", unitName );
      this.IsRoundingOrZeroFilling4( macroPlan, u );
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgSecondDevelopmentPlan.def
@@ -22,6 +22,17 @@
      BaseType: 'WebButton'
      Properties:
      [
        Taborder: 2
      ]
    }
    Component bOfflinePlan
    {
      #keys: '[413988.0.1296872738]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'LIGHTBULB'
        Label: 'Offline plan'
        Taborder: 1
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: abgSecondDevelopmentPlan/bOfflinePlan
Response OnClick () id:Response_MacroPlanner_abgSecondDevelopmentPlan_bOfflinePlan_OnClick
{
  #keys: '[413988.0.1296872869]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      ApplicationScope.ViewManager().ResetUserViewById( "OfflinePlan", true);
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogUpperLimitOfTransferCapacity/Component_pnlContent.def
@@ -11,6 +11,7 @@
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'MacroPlan.UpperLimitOfTransferCapacityZKG'
        Label: 'ZKG(pcs)'
        Taborder: 0
      ]
@@ -21,6 +22,7 @@
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'MacroPlan.UpperLimitOfTransferCapacityZKM'
        Label: 'ZKM(pcs)'
        Taborder: 1
      ]
@@ -31,6 +33,7 @@
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'MacroPlan.UpperLimitOfTransferCapacityPL'
        Label: 'PL(pcs)'
        Taborder: 2
      ]
@@ -41,6 +44,7 @@
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'MacroPlan.UpperLimitOfTransferCapacityKW'
        Label: 'KW(pcs)'
        Taborder: 3
      ]
@@ -51,6 +55,7 @@
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'MacroPlan.UpperLimitOfTransferCapacityAGW'
        Label: 'AGW(pcs)'
        Taborder: 4
      ]
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_MatrixEditor951.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,97 @@
Quintiq file version 2.0
Component MatrixEditor951
{
  #keys: '[413988.0.1296803041]'
  BaseType: 'WebMatrixEditor'
  Children:
  [
    Component MatrixEditorCell491
    {
      #keys: '[413988.0.1296803042]'
      BaseType: 'WebMatrixEditorCell'
      Children:
      [
        Component DataExtractor548
        {
          #keys: '[413988.0.1296803043]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'OfflinePlanColumn.OfflinePlanCell'
          ]
        }
      ]
      Properties:
      [
        Attributes: 'Value'
        Column: 'OfflinePlanColumn'
        Row: 'OfflinePlanRow'
        Taborder: 0
      ]
    }
    Component MatrixEditorRows271
    {
      #keys: '[413988.0.1296803046]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor869
        {
          #keys: '[413988.0.1296803047]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'OfflinePlanRow'
          ]
        }
      ]
      Properties:
      [
        Legend: 'RowNr'
        SortCriteria: 'ProductionLine;ProductID;Type'
        Taborder: 1
      ]
    }
    Component MatrixEditorColumns844
    {
      #keys: '[413988.0.1296803050]'
      BaseType: 'WebMatrixEditorHeaderLevel'
      Children:
      [
        Component DataExtractor259
        {
          #keys: '[413988.0.1296803051]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'MacroPlan'
            Source: 'MacroPlan'
            Taborder: 0
            Transformation: 'OfflinePlanColumn'
          ]
        }
      ]
      Properties:
      [
        Legend: 'ColumnName'
        SortCriteria: 'ColumnDate'
        Taborder: 2
      ]
    }
    #child: matrixEditorActionBarPage250
    #child: matrixeditorContextMenu204
  ]
  Properties:
  [
    Columns: 'MatrixEditorColumns844'
    ContextMenu: 'matrixeditorContextMenu204'
    Rows: 'MatrixEditorRows271'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_matrixEditorActionBarPage250.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixEditorActionBarPage250
{
  #keys: '[413988.0.1296803054]'
  BaseType: 'matrixEditorActionBarPage'
  Properties:
  [
    Taborder: 3
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_matrixeditorContextMenu204.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component matrixeditorContextMenu204
{
  #keys: '[413988.0.1296803057]'
  BaseType: 'matrixeditorContextMenu'
  Properties:
  [
    Taborder: 4
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pContent#611.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
Component pContent
{
  #keys: '[413988.0.1296872691]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: MatrixEditor951
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Component_pHeader.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
Quintiq file version 2.0
Component pHeader
{
  #keys: '[413988.0.1296872680]'
  BaseType: 'WebPanel'
  Children:
  [
    Component bRefresh
    {
      #keys: '[413988.0.1296860898]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Refresh'
        Taborder: 0
      ]
    }
    Component bDownload
    {
      #keys: '[413988.0.1296875316]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Download'
        Taborder: 1
      ]
    }
    Component bDeductionOfReplacementLoss
    {
      #keys: '[413988.0.1297911732]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Deduction of replacement loss'
        Taborder: 2
      ]
    }
    Component bRestore
    {
      #keys: '[413988.0.1297911774]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Restore'
        Taborder: 3
      ]
    }
    Component bSaveAsDraft
    {
      #keys: '[413988.0.1297973728]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Save as draft'
        Taborder: 4
      ]
    }
    Component bConfirm
    {
      #keys: '[413988.0.1297973782]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Confirm'
        Taborder: 5
      ]
    }
  ]
  Properties:
  [
    Border: true
    FixedSize: true
    Orientation: 'horizontal'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bConfirm_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: pHeader/bConfirm
Response OnClick () id:Response_pHeader_bConfirm_OnClick
{
  #keys: '[413988.0.1297974240]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDeductionOfReplacementLoss_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: pHeader/bDeductionOfReplacementLoss
Response OnClick () id:Response_pHeader_bDeductionOfReplacementLoss_OnClick
{
  #keys: '[413988.0.1297973984]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bDownload_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: pHeader/bDownload
Response OnClick () id:Response_pHeader_bDownload_OnClick
{
  #keys: '[413988.0.1297973899]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/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.1297973814]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      OfflinePlanCell::RefreshOfflinePlan( MacroPlan );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bRestore_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: pHeader/bRestore
Response OnClick () id:Response_pHeader_bRestore_OnClick
{
  #keys: '[413988.0.1297974069]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/Response_pHeader_bSaveAsDraft_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: pHeader/bSaveAsDraft
Response OnClick () id:Response_pHeader_bSaveAsDraft_OnClick
{
  #keys: '[413988.0.1297974155]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormOfflinePlan/_ROOT_Component_FormOfflinePlan.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormOfflinePlan
{
  #keys: '[413988.0.1296872622]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pHeader
    #child: pContent
  ]
  Properties:
  [
    Image: 'WIND_ENGINE_OFFSHORE'
    Title: 'OfflinePlan'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormTransferPlan/Response_pHeader_bMaximumDailyTransferCapacity_OnClick.def
@@ -7,6 +7,12 @@
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogUpperLimitOfTransferCapacity );
      ApplicationMacroPlanner.ShowFormModal( dlg );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Views/OfflinePlan.vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,92 @@
Quintiq file version 2.0
{
  viewcontents
  {
    forms
    {
      form_FormOfflinePlan
      {
        title: 'QMacroPlanner::FormOfflinePlan'
        shown: true
        componentID: 'QMacroPlanner::FormOfflinePlan'
        layout
        {
          mode: 'open'
          rowPosition: 1
          rowSpan: 14
          columnPosition: 1
          columnSpan: 12
        }
        components
        {
          FormOfflinePlan_pHeader
          {
            sizeRatio: 1
          }
          FormOfflinePlan_pContent
          {
            sizeRatio: 1
          }
          FormOfflinePlan_MatrixEditor951
          {
            gridColor: '#c4c4c4'
            totalHeaderWidth: 36
            attributeHeaderWidthRatio: 0.6
            nameHeaderWidthRatio: 0.4
            columnWidth: 100
            horizontalGrid: true
            verticalGrid: true
            backendState
            {
              componentId: 'QMacroPlanner::FormOfflinePlan.MatrixEditor951'
              state
              {
                cells
                {
                  attributes
                  {
                    attribute_Value
                    {
                      type: 'MatrixEditorWebApiCellDataModelInterest'
                      index: 0
                      rowsubtotal: ''
                      columnsubtotal: ''
                      attribute: 'Value'
                    }
                  }
                }
                columns
                {
                  sorting
                  {
                    criteria: "datamember:'ColumnDate'"
                  }
                }
                rows
                {
                  sorting
                  {
                    criteria: "datamember:'ProductionLine';datamember:'ProductID';datamember:'Type'"
                  }
                }
              }
            }
          }
        }
      }
    }
    userconfigurableinformation
    {
    }
    page: ''
    group: ''
    index: 0
    image: 'JACKHAMMER'
    description: ''
  }
  formatversion: 2
  id: 'OfflinePlan'
  name: 'OfflinePlan'
  isglobal: false
  isroot: true
}
_var/_Main/ProjSettings/EditorTC/Views/³µµÀÕû°à·ÖÎö_[413988.0.1301140601].vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,500 @@
# Quintiq GUI View File
# Version 3.0
PROPERTIES
{
  KEY := [413988.0.1301140601]
  NAME := '车道整班分析'
  HELPPAGE := ''
  PARENTKEY := [100676.19.414142820]
  DOMAIN := 'MacroPlanner'
  FOCUSED := [100828.0.145642700]
  MUSTREADMDSSETTINGS := false
  ISPERSONAL false
  OWNERNAME 'quintiq/lihongji'
  ICONIMAGE 'WINDOWS'
  CREATIONDATETIME '2024-06-28T13:59:36'
  CREATIONUSER 'quintiq/lihongji'
  UPDATEDATETIME '2024-06-28T13:59:54'
  UPDATEUSER 'quintiq/lihongji'
  LASTACCESSDATE '2024-06-28'
  VIEWSCOPE 0
}
AUTHORIZATIONS
{
  OPEN
  {
    AUTHORIZATIONS
    {
    }
  }
  EDIT
  {
    AUTHORIZATIONS
    {
    }
  }
}
MDSINFO
{
  LOCAL ''
  GLOBAL ''
}
INFOOBJECT
{
  KEY [892.10.659695]
  OBJECTTYPE Application // appEditor
  INFOOBJECTS
  {
   INFOOBJECT
   {
    KEY [892.10.659696]
    OBJECTTYPE Frame // Frame
    CONTENTS
    {
     State := maximized
     (896,312,1024,768)
     WorkspaceLocation := TreePath[R0.8;B0.0061;]
    }
    INFOOBJECTS
    {
     INFOOBJECT
     {
      KEY [103784.990.795900613]
      OBJECTTYPE ValueHolder // vhSearchHistory
      CONTENTS
      {
       Value ''
      }
     }
     INFOOBJECT
     {
      KEY [10786.1.820220316]
      OBJECTTYPE ValueHolder // vhLoadingErrCount
      CONTENTS
      {
       Value '0'
      }
     }
     INFOOBJECT
     {
      KEY [10786.1.820229990]
      OBJECTTYPE ValueHolder // vhLoadReason
      CONTENTS
      {
       Value 'Startup'
      }
     }
     INFOOBJECT
     {
      KEY [10786.1.821405088]
      OBJECTTYPE ValueHolder // vhWriteErrorCount
      CONTENTS
      {
       Value '0'
      }
     }
     INFOOBJECT
     {
      KEY [10786.2.342765638]
      OBJECTTYPE ValueHolder // vhGlobals
      CONTENTS
      {
       Value ''
      }
      BASEINFOOBJECTS
      {
      }
     }
     INFOOBJECT
     {
      KEY [103784.990.815711421]
      SINGLEINSTANCE false
      ID 'Type Details'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form // frmObjectDefinitionBrowser
      CREATETYPE frmObjectDefinitionBrowser
      CONTENTS
      {
       State := normal
       (485,0,400,912)
       DockableLocation := Station[MAIN]State[NORM]TreePath[L0.2;B0.5727;]TabIdx[0]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [121142.0.500922030]
        OBJECTTYPE GUIDataSetLevel // dslTypes
        CONTENTS
        {
         Columns
         {
           Definition := [892.10.660027]
           {
             [892.10.660028]
             [644.0.84080945]
           }
           SubTotals := true
           Visible
           {
             Column internal[DataSetDataColumn] [121142.0.501068000]
             {
               Header := 'Name'
               Width := 100
               Subtotals := false
               Specific
               {
                 DataPath := 'Name [1.2.1645]'
               }
             }
             Column internal[DataSetDataColumn] [121142.0.501068001]
             {
               Header := 'BaseTypeName'
               Width := 100
               Subtotals := false
               Specific
               {
                 DataPath := 'BaseTypeName [1.2.2198]'
               }
             }
           }
         }
         DataMemberSort 'SortOrder [1.2.1686]' true true
         ColumnSort [121142.0.501068000] true false
        }
       }
       INFOOBJECT
       {
        KEY [121142.0.500923128]
        OBJECTTYPE List // lstObjectDefinitionBrowser
        CONTENTS
        {
         Quantorrow := false
        }
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [121142.0.500923177]
          OBJECTTYPE GUIDataSetLevel // dslElements
          CONTENTS
          {
           Columns
           {
             Definition := [103784.990.769111502]
             {
               [103784.990.795596828]
               [103784.990.795596827]
             }
             SubTotals := true
             Visible
             {
               Column internal[DataSetDataColumn] [121142.0.501068002]
               {
                 Width := 401
                 SizedByUser := true
                 Subtotals := false
                 Specific
                 {
                   DataPath := 'Outline [1.2.6115]'
                 }
               }
               Column internal[DataSetDataColumn] [121142.0.501068003]
               {
                 Width := 319
                 SizedByUser := true
                 Subtotals := false
                 Specific
                 {
                   DataPath := 'ValueType [1.2.6117]'
                 }
               }
             }
           }
           Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="internal[UITypeDisplayElementBase]">\n  <GEBFiltering Key="@Default_Filter1" TargetType="internal[UITypeDisplayElementBase]">\n    <CurrentFilter>true</CurrentFilter>\n    <Name>Default Filter</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>0</SortIndex>\n    <GEBFilteringData Key="@2">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Outline1" ElementType="internal[UITypeDisplayElementBase]" ValueType="String">\n        <ColumnID>[121142.0.1058023525]</ColumnID>\n        <BaseName>Outline</BaseName>\n        <Name>Outline</Name>\n        <Title>Outline</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Outline</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@3">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@4" Column="@Outline1">\n          <ColumnID>[121142.0.1058023525]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@5">\n          <ExpressionText></ExpressionText>\n          <Converter>\n            <ZeroConverter Key="@6">\n              <IsStandard>true</IsStandard>\n              <IsISO>false</IsISO>\n              <IsCustom>false</IsCustom>\n              <ConversionType>0</ConversionType>\n            </ZeroConverter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n  <GEBFiltering Key="@Hide_inherited_elements1" TargetType="internal[UITypeDisplayElementBase]">\n    <CurrentFilter>false</CurrentFilter>\n    <Name>Hide inherited elements</Name>\n    <Active>false</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>1</SortIndex>\n    <GEBFilteringData Key="@7">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Outline2" ElementType="internal[UITypeDisplayElementBase]" ValueType="String">\n        <ColumnID>[121142.0.507823646]</ColumnID>\n        <BaseName>Outline</BaseName>\n        <Name>Outline</Name>\n        <Title>Outline</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Outline</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBSelectColumn Key="@ValueType1" ElementType="internal[UITypeDisplayElementBase]" ValueType="String">\n        <ColumnID>[121142.0.507823661]</ColumnID>\n        <BaseName>ValueType</BaseName>\n        <Name>ValueType</Name>\n        <Title>ValueType</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>ValueType</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBSelectColumn Key="@IsInherited1" ElementType="internal[UITypeDisplayElementBase]" ValueType="Boolean">\n        <ColumnID>[121142.0.507823701]</ColumnID>\n        <BaseName>IsInherited</BaseName>\n        <Name>IsInherited</Name>\n        <Title>IsInherited</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>IsInherited</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@8">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@9" Column="@Outline2">\n          <ColumnID>[121142.0.507823646]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFilterColumn Key="@10" Column="@ValueType1">\n          <ColumnID>[121142.0.507823661]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFilterColumn Key="@11" Column="@IsInherited1">\n          <ColumnID>[121142.0.507823701]</ColumnID>\n          <GEBFilterColumnMatch Key="@12">\n            <Operation>=</Operation>\n            <Enabled>true</Enabled>\n            <RHSValue>\n              <RHSConstantValue Key="@13">\n                <StringValue></StringValue>\n                <Value>false</Value>\n              </RHSConstantValue>\n            </RHSValue>\n          </GEBFilterColumnMatch>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@14">\n          <ExpressionText></ExpressionText>\n          <Converter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n  <GEBFiltering Key="@Hide_empty_groups1" TargetType="internal[UITypeDisplayElementBase]">\n    <CurrentFilter>false</CurrentFilter>\n    <Name>Hide empty groups</Name>\n    <Active>false</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>2</SortIndex>\n    <GEBFilteringData Key="@15">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Outline3" ElementType="internal[UITypeDisplayElementBase]" ValueType="String">\n        <ColumnID>[121142.0.507823747]</ColumnID>\n        <BaseName>Outline</BaseName>\n        <Name>Outline</Name>\n        <Title>Outline</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Outline</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@16">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@17" Column="@Outline3">\n          <ColumnID>[121142.0.507823747]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@18">\n          <ExpressionText>object.istype( UITypeDisplayNewElementPlaceholder )\nor object.Group().ModeledElementsSize() &gt; 0</ExpressionText>\n          <Converter>\n            <ZeroConverter Key="@19">\n              <IsStandard>true</IsStandard>\n              <IsISO>false</IsISO>\n              <IsCustom>false</IsCustom>\n              <ConversionType>0</ConversionType>\n            </ZeroConverter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n  <GEBFiltering Key="@Hide_coded_elements1" TargetType="internal[UITypeDisplayElementBase]">\n    <CurrentFilter>false</CurrentFilter>\n    <Name>Hide coded elements</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>3</SortIndex>\n    <GEBFilteringData Key="@20">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Outline4" ElementType="internal[UITypeDisplayElementBase]" ValueType="String">\n        <ColumnID>[121142.0.1058023525]</ColumnID>\n        <BaseName>Outline</BaseName>\n        <Name>Outline</Name>\n        <Title>Outline</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Outline</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@21">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@22" Column="@Outline4">\n          <ColumnID>[121142.0.1058023525]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@23">\n          <ExpressionText>( object.istype( UITypeDisplayElement ) and object.Kind() = &quot;RELATION&quot; ) or\nobject.istype( UITypeDisplayGroupHeader ) or\nobject.istype( UITypeDisplayNewElementPlaceholder ) or\n( object.istype( UIModeledTypeDisplayElement ) and\n  not isnull(object.astype( UIModeledTypeDisplayElement ).ObjectModelObject()) and\n  object.astype( UIModeledTypeDisplayElement ).ObjectModelObject().Visible() )</ExpressionText>\n          <Converter>\n            <ZeroConverter Key="@24">\n              <IsStandard>true</IsStandard>\n              <IsISO>false</IsISO>\n              <IsCustom>false</IsCustom>\n              <ConversionType>0</ConversionType>\n            </ZeroConverter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n</GEBObjectsFilter>\n'
           DataMemberSort 'Index [1.2.7326]' true true
           ColumnSort [121142.0.501068002] true false
          }
          INFOOBJECTS
          {
           INFOOBJECT
           {
            KEY [121142.0.500923178]
            OBJECTTYPE GUIDataSetLevel // dslOverrides
            CONTENTS
            {
             Columns
             {
               Definition := [103784.990.1153959078]
               {
                 [103784.990.1159008565]
               }
               SubTotals := true
               Visible
               {
                 Column internal[DataSetDataColumn] [121142.0.501068004]
                 {
                   Width := 100
                   Subtotals := false
                   Specific
                   {
                     DataPath := 'ObjectModelObject [1.3.4850]|TargetType [1.2.1730]'
                   }
                 }
               }
             }
            }
           }
          }
         }
        }
       }
      }
     }
     INFOOBJECT
     {
      KEY [136402.0.98084624]
      SINGLEINSTANCE false
      ID 'Types per Module'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form // frmTypesByModule
      CREATETYPE frmTypesByModule
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[L0.2;T0.4273;]TabIdx[0]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
       BASEINFOOBJECT
       {
        KEY [136402.0.98084624]
        OBJECTTYPE GUIComponent // frmTypesByModule
        COMPONENTDATA
        {
         [136402.0.98084624]:[103784.990.728734692]:[892.10.659816]:[514.0.129466]:[892.10.659835] STR 'true'
        }
       }
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [121142.0.1211769996]
        OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel776
        CONTENTS
        {
         Columns
         {
           Definition := [121142.0.950060792]
           {
             [121142.0.950062702]
           }
           SubTotals := true
           Visible
           {
             Column internal[DataSetDataColumn] [121142.0.950062702]
             {
               Width := 100
               Subtotals := false
               Specific
               {
                 DataPath := 'Name [1.2.6744]'
               }
             }
           }
         }
         ColumnSort [121142.0.950062702] true false
        }
       }
       INFOOBJECT
       {
        KEY [103784.990.728734692]
        OBJECTTYPE List // ListTypes
        CONTENTS
        {
         Quantorrow := false
        }
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [101180.2.890701323]
          OBJECTTYPE ValueHolder // ValueHolder
          CONTENTS
          {
           Value 'false'
          }
         }
         INFOOBJECT
         {
          KEY [10786.2.342808981]
          OBJECTTYPE ValueHolder // vhGlobals
          CONTENTS
          {
           Value ''
          }
         }
         INFOOBJECT
         {
          KEY [892.10.659838]
          OBJECTTYPE GUIDataSetLevel // dslTypes
          CONTENTS
          {
           Columns
           {
             Definition := [121142.0.950060792]
             {
               [121142.0.950062702]
             }
             SubTotals := true
             Visible
             {
               Column internal[DataSetDataColumn] [121142.0.950062702]
               {
                 Width := 367
                 SizedByUser := true
                 Subtotals := false
                 Specific
                 {
                   DataPath := 'Name [1.2.6744]'
                 }
               }
             }
           }
           DataMemberSort 'IsDomain [1.2.6747]' false true
           DataMemberSort 'IsSystemLibrary [1.2.7907]' true true
           DataMemberSort 'IsAvailable [1.2.7451]' false true
           ColumnSort [121142.0.950062702] true false
          }
          INFOOBJECTS
          {
           INFOOBJECT
           {
            KEY [136402.0.98091406]
            OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelTypes
            CONTENTS
            {
             Columns
             {
               Definition := [103784.990.1535755633]
               {
                 [103784.990.1535759199]
               }
               SubTotals := true
               Visible
               {
                 Column internal[DataSetDataColumn] [103784.990.1535759199]
                 {
                   Width := 375
                   SizedByUser := true
                   Subtotals := false
                   Specific
                   {
                     DataPath := 'Name [1.2.1645]'
                   }
                 }
               }
             }
             Filter := '<?xml version="1.0" encoding="UTF-16"?>\n<GEBObjectsFilter xmlns="http://www.quintiq.com/GEB/GEBObjectsFilter" Key="@1" CurrentFilter="@Default_Filter1" TargetType="internal[ObjectModelType]">\n  <GEBFiltering Key="@Default_Filter1" TargetType="internal[ObjectModelType]">\n    <CurrentFilter>true</CurrentFilter>\n    <Name>Default Filter</Name>\n    <Active>true</Active>\n    <IsFavorite>false</IsFavorite>\n    <SortIndex>0</SortIndex>\n    <GEBFilteringData Key="@2">\n      <DefaultColumnPrefix></DefaultColumnPrefix>\n      <ColumnPostfix></ColumnPostfix>\n      <GEBSelectColumn Key="@Name1" ElementType="internal[ObjectModelType]" ValueType="String">\n        <ColumnID>[413988.0.1111730433]</ColumnID>\n        <BaseName>Name</BaseName>\n        <Name>Name</Name>\n        <Title>Name</Title>\n        <IsTarget>false</IsTarget>\n        <NameHasBeenSet>false</NameHasBeenSet>\n        <ColumnFinal>Fail</ColumnFinal>\n        <AttributePathText>Name</AttributePathText>\n        <AttributePathIdentifier>\n        </AttributePathIdentifier>\n      </GEBSelectColumn>\n      <GEBFilter Key="@3">\n        <FreeFilterEnabled>true</FreeFilterEnabled>\n        <GEBFilterColumn Key="@4" Column="@Name1">\n          <ColumnID>[413988.0.1111730433]</ColumnID>\n        </GEBFilterColumn>\n        <GEBFreeFilterBody Key="@5">\n          <ExpressionText></ExpressionText>\n          <Converter>\n          </Converter>\n        </GEBFreeFilterBody>\n      </GEBFilter>\n    </GEBFilteringData>\n  </GEBFiltering>\n</GEBObjectsFilter>\n'
             DataMemberSort 'SortOrder [1.2.1686]' true true
             ColumnSort [103784.990.1535759199] true false
            }
            INFOOBJECTS
            {
             INFOOBJECT
             {
              KEY [135566.0.318964952]
              OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSpecializations
              CONTENTS
              {
               Columns
               {
                 Definition := [103784.990.1535755633]
                 {
                   [103784.990.1535759199]
                 }
                 SubTotals := true
                 Visible
                 {
                   Column internal[DataSetDataColumn] [103784.990.1535759199]
                   {
                     Width := 100
                     Subtotals := false
                     Specific
                     {
                       DataPath := 'Name [1.2.1645]'
                     }
                   }
                 }
               }
               DataMemberSort 'SortOrder [1.2.1686]' true true
               ColumnSort [103784.990.1535759199] true false
              }
             }
            }
           }
          }
         }
        }
       }
      }
     }
     INFOOBJECT
     {
      KEY [121142.0.36340892]
      SINGLEINSTANCE false
      ID 'Model Overview'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form // frmModelOverview
      CREATETYPE frmModelOverview
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[R0.8;T0.9939;]TabIdx[0]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
       BASEINFOOBJECT
       {
        KEY [121142.0.36340892]
        OBJECTTYPE GUIContainerComponent // frmModelOverview
        COMPONENTDATA
        {
         [121142.0.36340892]:[121142.0.37512339]:[121142.0.40573788] STR 'PeriodTaskOperation:Unit:PeriodTaskLaneLeg:Operation:MacroPlan:Lane:PeriodTask_MP:NewSupply:LaneLeg:UnitPeriod:DependentDemand:ProductInTrip:Trip#601:266:-40:657:238:266:189:211:497:17:178:464:513#168:437:163:276:350:529:165:274:436:277:59:59:244#219:54:197:109:109:54:153:109:87:120:175:153:54#26:26:26:26:26:26:26:26:26:26:26:26:26'
         [121142.0.36340892]:[121142.0.37512339]:[121142.0.48706989]:[121142.0.48706990]:[121142.0.48809938] STR 'true'
        }
       }
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [121142.0.37512339]
        OBJECTTYPE CustomDrawComponent // customDraw
        CONTENTS
        {
         ZoomX 1.331
         ZoomY 1.331
        }
        INFOOBJECTS
        {
        }
       }
      }
     }
    }
   }
  }
  COMPONENTDATA
  {
   [892.10.659695]:[892.10.659696]:[103784.990.702401639] STR 'MacroPlanner'
   [892.10.659695]:[892.10.659696]:[892.10.659800]:[892.10.1501977] STR '0'
  }
}