lazhen
2024-07-18 f819dba346f6ac9ba89148a12cbd361d23af8303
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev-zlg
已添加27个文件
已修改6个文件
1190 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_ShiftDayTime_ShiftDay_ShiftDay_ShiftDayTime.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl 38 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OfflinePlanRow/Attribute_Type.qbl 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDay/_ROOT_Type_ShiftDay.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDayTime/Attribute_EndDateTIme.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDayTime/Attribute_Name.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDayTime/Attribute_Sequence.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDayTime/Attribute_StartDateTime.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDayTime/Function_CalcSequence.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ShiftDayTime/_ROOT_Type_ShiftDayTime.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Component_pnlContent.def 51 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Method_Edit.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Method_New.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Method_OnOK.def 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Response_pnlActions_btnOk_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/_ROOT_Component_DialogCreateEditShiftDayTime.def 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Component_ListShiftDayTime.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Component_listActionBarPageShiftDayTime.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Component_listContextMenuShiftDayTime.def 47 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Response_ListShiftDayTime_mDelete_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Response_ListShiftDayTime_mEdit_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Response_ListShiftDayTime_mNew_OnClick.def 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/_ROOT_Component_FormShiftDayTime.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftPattern/Component_MatrixEditorShiftPatterns.def 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftPattern/Response_MacroPlanner_MatrixEditorShiftPatterns_OnUserSelectionChanged.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormShiftPattern/_ROOT_Component_FormShiftPattern.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Views/Time_Capacities.vw 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/EditorTC/Views/拆班次分析_[413988.0.1361110378].vw 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/EditorTC/Views/班次时间分析_[413988.0.1367211460].vw 491 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_var/_Main/ProjSettings/EditorTC/Views/车道整班分析_[413988.0.1301140601].vw 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_ShiftDayTime_ShiftDay_ShiftDay_ShiftDayTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation ShiftDayTime_ShiftDay_ShiftDay_ShiftDayTime
{
  #keys: '1[413988.0.1371171483]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide ShiftDay
  {
    #keys: '3[413988.0.1371171485][413988.0.1371171484][413988.0.1371171486]'
    Cardinality: '0to1'
    ObjectDefinition: ShiftDayTime
    OwningSide: 'Reference'
  }
  RelationSide.RightSide ShiftDayTime
  {
    #keys: '3[413988.0.1371171488][413988.0.1371171487][413988.0.1371171489]'
    Cardinality: '1toN'
    ObjectDefinition: ShiftDay
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_OfflinePlanCell/StaticMethod_RefreshOfflinePlan.qbl
@@ -11,7 +11,7 @@
    opt := macroPlan.OfflinePlanTable( relnew, SaveDateTime := DateTime::ActualTime() );
    
    // ç”Ÿæˆä¸‹çº¿è®¡åˆ’表
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime() /*and u.Name() = "Spider Assy Line 1"*/ ) {
    traverse ( macroPlan, Unit, u, u.HasCapacityTypeTime() /*and u.Name() = "Body in White Line 1"*/ ) {
      // åˆ›å»ºäº§çº¿è¡Œ
      opt.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "", Type := "0" );
      
@@ -45,6 +45,10 @@
      opt.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "Z", Type := "3" );
      // åˆ›å»ºç­æ¬¡è¡Œ
      opt.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "Z", Type := "4" );
      // åˆ›å»ºç­æ¬¡å¼€å§‹æ—¶é—´è¡Œ
      opt.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "Z", Type := "5" );
      // åˆ›å»ºç­æ¬¡ç»“束时间行
      opt.OfflinePlanRow( relnew, ProductionLine := u.ID(), ProductID := "Z", Type := "6" );
    }
    
    // åˆ›å»ºäº§å“åˆ—&类型列
@@ -70,12 +74,20 @@
      } else if ( opr.Type() = "4" ) {
        shiftCell := typeOPC.OfflinePlanCell( relnew, Value :=  "班次" );
        shiftCell.OfflinePlanRow( relset, opr );
      } else if ( opr.Type() = "5" ) {
        shiftStartDateCell := typeOPC.OfflinePlanCell( relnew, Value :=  "班次开始时间" );
        shiftStartDateCell.OfflinePlanRow( relset, opr );
      } else if ( opr.Type() = "6" ) {
        shiftEndDateCell := typeOPC.OfflinePlanCell( relnew, Value :=  "班次结束时间" );
        shiftEndDateCell.OfflinePlanRow( relset, opr );
      }
    }
    
    // è¡¥å…¨æ€»é‡å’Œç­æ¬¡
    totalOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "3" );
    shiftOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "4" );
    // è¡¥å…¨æ€»é‡&班次&班次开始时间&班次结束时间
    totalOPRs          := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "3" );
    shiftOPRs          := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "4" );
    shiftStartDateOPRs := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "5" );
    shiftEndDateOPRs   := selectset( opt, OfflinePlanRow, tempOPR, tempOPR.Type() = "6" );
    traverse ( opt, 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() );
@@ -90,6 +102,24 @@
          shiftCell.OfflinePlanRow( relset, shiftOPR );
        }
      }
      traverse ( shiftStartDateOPRs, Elements, ssdOPR ) {
        shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = ssdOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" );
        if ( not isnull( shift ) ) {
          startDate     := guard( minselect( macroPlan, ShiftPattern.ShiftDay.ShiftDayTime, tempSDT, tempSDT.ShiftDay().ShiftPatternName() = shift.Shift(), tempSDT.Sequence() ).StartDateTime().Format( "H:m" ), "" );
          startDateCell := opc.OfflinePlanCell( relnew, Value := startDate );
          startDateCell.OfflinePlanRow( relset, ssdOPR );
        }
      }
      traverse ( shiftEndDateOPRs, Elements, sedOPR ) {
        shift := select( opc, OfflinePlanCell, tempOPC, tempOPC.OfflinePlanRow().ProductionLine() = sedOPR.ProductionLine() and tempOPC.OfflinePlanRow().Type() = "1" );
        if ( not isnull( shift ) ) {
          endDate     := guard( maxselect( macroPlan, ShiftPattern.ShiftDay.ShiftDayTime, tempSDT, tempSDT.ShiftDay().ShiftPatternName() = shift.Shift(), tempSDT.Sequence() ).EndDateTIme().Format( "H:m" ), "" );
          endDateCell := opc.OfflinePlanCell( relnew, Value := endDate );
          endDateCell.OfflinePlanRow( relset, sedOPR );
        }
      }
    }
    
    // è¡¥å…¨æ—¶é—´åˆ—
_Main/BL/Type_OfflinePlanRow/Attribute_Type.qbl
@@ -5,11 +5,13 @@
  #keys: '3[413988.0.1295121717][413988.0.1295121716][413988.0.1295121718]'
  Description:
  [*
    äº§çº¿åè¡Œ    ï¼š0
    Quantity行:1
    Order行     ï¼š2
    åˆè®¡è¡Œ        ï¼š3
    ç­æ¬¡è¡Œ        ï¼š4
    äº§çº¿åè¡Œ         ï¼š0
    Quantity行     ï¼š1
    Order行          ï¼š2
    åˆè®¡è¡Œ             ï¼š3
    ç­æ¬¡è¡Œ             ï¼š4
    ç­æ¬¡å¼€å§‹æ—¶é—´ï¼š5
    ç­æ¬¡ç»“束时间:6
  *]
  ValueType: String
}
_Main/BL/Type_ShiftDay/_ROOT_Type_ShiftDay.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type ShiftDay #extension
{
}
_Main/BL/Type_ShiftDayTime/Attribute_EndDateTIme.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDateTIme
{
  #keys: '3[413988.0.1371171509][413988.0.1371171508][413988.0.1371171510]'
  ValueType: DateTime
}
_Main/BL/Type_ShiftDayTime/Attribute_Name.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Name
{
  #keys: '3[413988.0.1371171519][413988.0.1371171518][413988.0.1371171520]'
  ValueType: String
}
_Main/BL/Type_ShiftDayTime/Attribute_Sequence.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Sequence
{
  #keys: '3[413988.0.1388790020][413988.0.1388790019][413988.0.1388790021]'
  ValueType: Number
}
_Main/BL/Type_ShiftDayTime/Attribute_StartDateTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDateTime
{
  #keys: '3[413988.0.1371171499][413988.0.1371171498][413988.0.1371171500]'
  ValueType: DateTime
}
_Main/BL/Type_ShiftDayTime/Function_CalcSequence.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
Function CalcSequence
{
  TextBody:
  [*
    // lihongji Jul-17-2024 (created)
    value := 0;
    if ( this.Name() = "早班" ) {
      value := 1;
    } else if ( this.Name() = "中班" ) {
      value := 2;
    } else if ( this.Name() = "夜班" ) {
      value := 3;
    }
    this.Sequence( value );
  *]
}
_Main/BL/Type_ShiftDayTime/_ROOT_Type_ShiftDayTime.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type ShiftDayTime
{
  #keys: '5[413988.0.1371171480][413988.0.1371171478][0.0.0][413988.0.1371171479][413988.0.1371171481]'
  BaseType: Object
  StructuredName: 'ShiftDayTimes'
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -183,5 +183,15 @@
        Taborder: 51
      ]
    }
    Component dhSelectedShiftDay
    {
      #keys: '[413988.0.1371211822]'
      BaseType: 'WebDataHolder'
      Databinding: 'ShiftDay'
      Properties:
      [
        Taborder: 56
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[413988.0.1372501443]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[413988.0.1372501447]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[413988.0.1372501449]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'Cancel'
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    Border: true
    ExcludeFromActiveComponent: true
    FixedSize: true
    Orientation: 'horizontal'
    Padding: 'true'
    Style: 'footer'
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,51 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[413988.0.1372501441]'
  BaseType: 'WebPanel'
  Children:
  [
    Component dtsStart
    {
      #keys: '[413988.0.1372565797]'
      BaseType: 'WebDateTimeSelector'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.StartDateTime'
        DateTimeFormat: 'h:m'
        Label: 'Start'
        Taborder: 0
      ]
    }
    Component dtsEnd
    {
      #keys: '[413988.0.1372565809]'
      BaseType: 'WebDateTimeSelector'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.EndDateTIme'
        DateTimeFormat: 'h:m'
        Label: 'End'
        Taborder: 1
      ]
    }
    Component ddslName
    {
      #keys: '[413988.0.1372565893]'
      BaseType: 'WebDropDownStringList'
      Properties:
      [
        DataBinding: 'DataHolderDialogData.Data.Name'
        Label: 'Name'
        Sorting: 'none'
        Strings: '早班;中班;夜班'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  ShiftDayTime selection
) id:Method_DialogCreateEditShiftDayTime_Edit
{
  #keys: '[413988.0.1372696373]'
  Body:
  [*
    DataHolderDialogData.Data( selection );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Method_New.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: #root
Method New (
  ShiftDay selection
) id:Method_DialogCreateEditShiftDayTime_New
{
  #keys: '[413988.0.1372696375]'
  Body:
  [*
    data := selection.ShiftDayTime( relnew );
    DataHolderDialogData.Data( data );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Method_OnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogCreateEditShiftDayTime_OnOK
{
  #keys: '[413988.0.1372696376]'
  Body:
  [*
    // On ok
    Form.ApplyChanges();
    Form.Close();
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Response_pnlActions_btnCancel_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: pnlActions/btnCancel
Response OnClick () id:Response_pnlActions_btnCancel_OnClick
{
  #keys: '[413988.0.1372501453]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[413988.0.1372501452]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditShiftDayTime/_ROOT_Component_DialogCreateEditShiftDayTime.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogCreateEditShiftDayTime
{
  #keys: '[413988.0.1372501439]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component DataHolderDialogData
    {
      #keys: '[413988.0.1372570042]'
      BaseType: 'WebDataHolder'
      Databinding: 'ShiftDayTime'
      Properties:
      [
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Component_ListShiftDayTime.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListShiftDayTime
{
  #keys: '[413988.0.1371272751]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorShiftDayTime
    {
      #keys: '[413988.0.1371272752]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'ShiftDay'
        Source: 'ApplicationMacroPlanner.dhSelectedShiftDay'
        Taborder: 0
        Transformation: 'ShiftDayTime'
      ]
    }
    #child: listActionBarPageShiftDayTime
    Component DataSetLevelShiftDayTime
    {
      #keys: '[413988.0.1371272757]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuShiftDayTime
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"Start","title":"Start","subtotals":"","tooltip":"","width":-1,"display":"always","expressionbody":"object.StartDateTime().Format( \'H:m\' )"}},{"attribute":{"classtype":"WebApiDefinitionAttributeExpression","columnid":"End","title":"End","subtotals":"","tooltip":"","width":-1,"display":"shown","expressionbody":"object.EndDateTIme().Format( \'H:m\' )"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Name","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"always","editable":false,"attribute":"Name"}}]'
        ContextMenu: 'listContextMenuShiftDayTime'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListShiftDayTime_WebMenu_OnClick
    {
      #keys: '[413988.0.1372785557]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[3327.0.38408907]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Component_listActionBarPageShiftDayTime.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageShiftDayTime
{
  #keys: '[413988.0.1371272754]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Component_listContextMenuShiftDayTime.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,47 @@
Quintiq file version 2.0
Component listContextMenuShiftDayTime
{
  #keys: '[413988.0.1371272759]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component mNew
    {
      #keys: '[413988.0.1372821546]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'ADD2'
        Taborder: 3
        Title: 'New'
      ]
    }
    Component mEdit
    {
      #keys: '[413988.0.1372635806]'
      BaseType: 'WebMenu'
      Properties:
      [
        BindOnDoubleClick: true
        Image: 'NOTEBOOK_EDIT'
        Taborder: 4
        Title: 'Edit'
      ]
    }
    Component mDelete
    {
      #keys: '[413988.0.1372312862]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'DELETE'
        Taborder: 5
        Title: 'Delete'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Response_ListShiftDayTime_mDelete_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListShiftDayTime
Response OnClick (
  structured[ShiftDayTime] selection
) id:Response_ListShiftDayTime_mDelete_OnClick
{
  #keys: '[413988.0.1372312886]'
  CanBindMultiple: false
  DefinitionID => /ListShiftDayTime/Responsedef_ListShiftDayTime_WebMenu_OnClick
  Initiator: 'mDelete'
  QuillAction
  {
    Body:
    [*
      MacroPlan::DeleteObjects( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Response_ListShiftDayTime_mEdit_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: ListShiftDayTime
Response OnClick (
  ShiftDayTime selection
) id:Response_ListShiftDayTime_mEdit_OnClick
{
  #keys: '[413988.0.1372785651]'
  CanBindMultiple: false
  DefinitionID => /ListShiftDayTime/Responsedef_ListShiftDayTime_WebMenu_OnClick
  Initiator: 'mEdit'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogCreateEditShiftDayTime );
      dlg.Edit( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/Response_ListShiftDayTime_mNew_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: ListShiftDayTime
Response OnClick () id:Response_ListShiftDayTime_mNew_OnClick
{
  #keys: '[413988.0.1372900794]'
  CanBindMultiple: false
  DefinitionID => /ListShiftDayTime/Responsedef_ListShiftDayTime_WebMenu_OnClick
  Initiator: 'mNew'
  Precondition:
  [*
    return not isnull( ApplicationMacroPlanner.dhSelectedShiftDay().Data() );
  *]
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogCreateEditShiftDayTime );
      dlg.New( ApplicationMacroPlanner.dhSelectedShiftDay().Data() );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftDayTime/_ROOT_Component_FormShiftDayTime.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent FormShiftDayTime
{
  #keys: '[413988.0.1371272702]'
  BaseType: 'WebForm'
  Children:
  [
    #child: ListShiftDayTime
  ]
  Properties:
  [
    Title: 'Shift Day Time'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftPattern/Component_MatrixEditorShiftPatterns.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,4 @@
Quintiq file version 2.0
Component MatrixEditorShiftPatterns #extension
{
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftPattern/Response_MacroPlanner_MatrixEditorShiftPatterns_OnUserSelectionChanged.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
Quintiq file version 2.0
#parent: MatrixEditorShiftPatterns
Response OnUserSelectionChanged (
  ShiftDay selection
) id:Response_MacroPlanner_MatrixEditorShiftPatterns_OnUserSelectionChanged
{
  #keys: '[413988.0.1372435241]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebMatrixEditor_OnUserSelectionChanged'
  Precondition:
  [*
    return not isnull( MacroPlan );
  *]
  QuillAction
  {
    Body:
    [*
      dhSelectedShiftDay.Data( selection );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormShiftPattern/_ROOT_Component_FormShiftPattern.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
#root
#parent: LibMacroPlannerWebUI
OrphanComponent FormShiftPattern #extension
{
  Children:
  [
    #child: MatrixEditorShiftPatterns
  ]
}
_Main/UI/MacroPlannerWebApp/Views/Time_Capacities.vw
@@ -13,6 +13,17 @@
            totalHeaderWidth: 293
          }
        }
        layout
        {
          rowPosition: 16
        }
      }
      form_FormShiftPattern
      {
        layout
        {
          rowSpan: 15
        }
      }
      form_FormProductionLineBatchData
      {
@@ -22,7 +33,7 @@
        layout
        {
          mode: 'open'
          rowPosition: 18
          rowPosition: 26
          rowSpan: 9
          columnPosition: 1
          columnSpan: 8
@@ -60,6 +71,57 @@
          }
        }
      }
      form_FormShiftDayTime
      {
        title: 'QMacroPlanner::FormShiftDayTime'
        shown: true
        componentID: 'QMacroPlanner::FormShiftDayTime'
        layout
        {
          mode: 'open'
          rowPosition: 8
          rowSpan: 8
          columnPosition: 9
          columnSpan: 4
        }
        components
        {
          FormShiftDayTime_ListShiftDayTime
          {
          }
          FormShiftDayTime_DataSetLevelShiftDayTime
          {
            groupDepth: -1
            column_Start
            {
              columnId: 'Start'
              dataPath: 'Start'
              dataType: 'string'
              index: 0
              subtotals: ''
              width: 150
            }
            column_End
            {
              columnId: 'End'
              dataPath: 'End'
              dataType: 'string'
              index: 1
              subtotals: ''
              width: 150
            }
            column_Name
            {
              columnId: 'Name'
              dataPath: 'Name'
              dataType: 'string'
              index: 2
              subtotals: ''
              width: 150
            }
          }
        }
      }
    }
  }
  formatversion: 2
_var/_Main/ProjSettings/EditorTC/Views/²ð°à´Î·ÖÎö_[413988.0.1361110378].vw
@@ -17,7 +17,7 @@
  CREATIONUSER 'quintiq/lihongji'
  UPDATEDATETIME '2024-07-12T11:19:19'
  UPDATEUSER 'quintiq/lihongji'
  LASTACCESSDATE '2024-07-12'
  LASTACCESSDATE '2024-07-16'
  VIEWSCOPE 0
}
AUTHORIZATIONS
@@ -43,13 +43,13 @@
INFOOBJECT
{
  KEY [892.10.659695]
  OBJECTTYPE Application // appEditor
  OBJECTTYPE Application
  INFOOBJECTS
  {
   INFOOBJECT
   {
    KEY [892.10.659696]
    OBJECTTYPE Frame // Frame
    OBJECTTYPE Frame
    CONTENTS
    {
     State := maximized
@@ -61,7 +61,7 @@
     INFOOBJECT
     {
      KEY [103784.990.795900613]
      OBJECTTYPE ValueHolder // vhSearchHistory
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
@@ -70,7 +70,7 @@
     INFOOBJECT
     {
      KEY [10786.1.820220316]
      OBJECTTYPE ValueHolder // vhLoadingErrCount
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '0'
@@ -79,7 +79,7 @@
     INFOOBJECT
     {
      KEY [10786.1.820229990]
      OBJECTTYPE ValueHolder // vhLoadReason
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'Startup'
@@ -88,7 +88,7 @@
     INFOOBJECT
     {
      KEY [10786.1.821405088]
      OBJECTTYPE ValueHolder // vhWriteErrorCount
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '0'
@@ -97,13 +97,10 @@
     INFOOBJECT
     {
      KEY [10786.2.342765638]
      OBJECTTYPE ValueHolder // vhGlobals
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
      }
      BASEINFOOBJECTS
      {
      }
     }
     INFOOBJECT
@@ -112,7 +109,7 @@
      SINGLEINSTANCE false
      ID 'Type Details'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form // frmObjectDefinitionBrowser
      OBJECTTYPE Form
      CREATETYPE frmObjectDefinitionBrowser
      CONTENTS
      {
@@ -120,15 +117,12 @@
       (485,0,400,912)
       DockableLocation := Station[MAIN]State[NORM]TreePath[L0.2052;B0.5727;]TabIdx[0]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [121142.0.500922030]
        OBJECTTYPE GUIDataSetLevel // dslTypes
        OBJECTTYPE GUIDataSetLevel
        CONTENTS
        {
         Columns
@@ -170,7 +164,7 @@
       INFOOBJECT
       {
        KEY [121142.0.500923128]
        OBJECTTYPE List // lstObjectDefinitionBrowser
        OBJECTTYPE List
        CONTENTS
        {
         Quantorrow := false
@@ -180,7 +174,7 @@
         INFOOBJECT
         {
          KEY [121142.0.500923177]
          OBJECTTYPE GUIDataSetLevel // dslElements
          OBJECTTYPE GUIDataSetLevel
          CONTENTS
          {
           Columns
@@ -224,7 +218,7 @@
           INFOOBJECT
           {
            KEY [121142.0.500923178]
            OBJECTTYPE GUIDataSetLevel // dslOverrides
            OBJECTTYPE GUIDataSetLevel
            CONTENTS
            {
             Columns
@@ -261,7 +255,7 @@
      SINGLEINSTANCE false
      ID 'Types per Module'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form // frmTypesByModule
      OBJECTTYPE Form
      CREATETYPE frmTypesByModule
      CONTENTS
      {
@@ -274,7 +268,7 @@
       BASEINFOOBJECT
       {
        KEY [136402.0.98084624]
        OBJECTTYPE GUIComponent // frmTypesByModule
        OBJECTTYPE GUIComponent
        COMPONENTDATA
        {
         [136402.0.98084624]:[103784.990.728734692]:[892.10.659816]:[514.0.129466]:[892.10.659835] STR 'true'
@@ -286,7 +280,7 @@
       INFOOBJECT
       {
        KEY [121142.0.1211769996]
        OBJECTTYPE GUIDataSetLevel // GUIDataSetLevel776
        OBJECTTYPE GUIDataSetLevel
        CONTENTS
        {
         Columns
@@ -315,7 +309,7 @@
       INFOOBJECT
       {
        KEY [103784.990.728734692]
        OBJECTTYPE List // ListTypes
        OBJECTTYPE List
        CONTENTS
        {
         Quantorrow := false
@@ -325,7 +319,7 @@
         INFOOBJECT
         {
          KEY [101180.2.890701323]
          OBJECTTYPE ValueHolder // ValueHolder
          OBJECTTYPE ValueHolder
          CONTENTS
          {
           Value 'false'
@@ -334,7 +328,7 @@
         INFOOBJECT
         {
          KEY [10786.2.342808981]
          OBJECTTYPE ValueHolder // vhGlobals
          OBJECTTYPE ValueHolder
          CONTENTS
          {
           Value ''
@@ -343,7 +337,7 @@
         INFOOBJECT
         {
          KEY [892.10.659838]
          OBJECTTYPE GUIDataSetLevel // dslTypes
          OBJECTTYPE GUIDataSetLevel
          CONTENTS
          {
           Columns
@@ -377,7 +371,7 @@
           INFOOBJECT
           {
            KEY [136402.0.98091406]
            OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelTypes
            OBJECTTYPE GUIDataSetLevel
            CONTENTS
            {
             Columns
@@ -410,7 +404,7 @@
             INFOOBJECT
             {
              KEY [135566.0.318964952]
              OBJECTTYPE GUIDataSetLevel // GUIDataSetLevelSpecializations
              OBJECTTYPE GUIDataSetLevel
              CONTENTS
              {
               Columns
@@ -451,7 +445,7 @@
      SINGLEINSTANCE false
      ID 'Model Overview'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form // frmModelOverview
      OBJECTTYPE Form
      CREATETYPE frmModelOverview
      CONTENTS
      {
@@ -464,7 +458,7 @@
       BASEINFOOBJECT
       {
        KEY [121142.0.36340892]
        OBJECTTYPE GUIContainerComponent // frmModelOverview
        OBJECTTYPE GUIContainerComponent
        COMPONENTDATA
        {
         [121142.0.36340892]:[121142.0.37512339]:[121142.0.40573788] STR 'PeriodTaskOperation:Unit:PeriodTaskLaneLeg:OperationInput:OperationOutput:Operation:MacroPlan:PeriodTask_MP#410:211:150:667:432:465:184:173#218:128:299:127:29:128:29:216#219:54:197:164:175:109:109:153#26:26:26:26:26:26:26:26'
@@ -477,14 +471,11 @@
       INFOOBJECT
       {
        KEY [121142.0.37512339]
        OBJECTTYPE CustomDrawComponent // customDraw
        OBJECTTYPE CustomDrawComponent
        CONTENTS
        {
         ZoomX 1.331
         ZoomY 1.331
        }
        INFOOBJECTS
        {
        }
       }
      }
_var/_Main/ProjSettings/EditorTC/Views/°à´Îʱ¼ä·ÖÎö_[413988.0.1367211460].vw
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,491 @@
# Quintiq GUI View File
# Version 3.0
PROPERTIES
{
  KEY := [413988.0.1367211460]
  NAME := '班次时间分析'
  HELPPAGE := ''
  PARENTKEY := [100676.19.414142820]
  DOMAIN := 'MacroPlanner'
  FOCUSED := [100828.0.145642700]
  MUSTREADMDSSETTINGS := false
  ISPERSONAL false
  OWNERNAME 'quintiq/lihongji'
  ICONIMAGE 'WINDOWS'
  CREATIONDATETIME '2024-07-16T11:28:56'
  CREATIONUSER 'quintiq/lihongji'
  UPDATEDATETIME '2024-07-16T11:47:37'
  UPDATEUSER 'quintiq/lihongji'
  LASTACCESSDATE '2024-07-17'
  VIEWSCOPE 0
}
AUTHORIZATIONS
{
  OPEN
  {
    AUTHORIZATIONS
    {
    }
  }
  EDIT
  {
    AUTHORIZATIONS
    {
    }
  }
}
MDSINFO
{
  LOCAL ''
  GLOBAL ''
}
INFOOBJECT
{
  KEY [892.10.659695]
  OBJECTTYPE Application
  INFOOBJECTS
  {
   INFOOBJECT
   {
    KEY [892.10.659696]
    OBJECTTYPE Frame
    CONTENTS
    {
     State := maximized
     (896,312,1024,768)
     WorkspaceLocation := TreePath[R0.7948;B0.0061;]
    }
    INFOOBJECTS
    {
     INFOOBJECT
     {
      KEY [103784.990.795900613]
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
      }
     }
     INFOOBJECT
     {
      KEY [10786.1.820220316]
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '0'
      }
     }
     INFOOBJECT
     {
      KEY [10786.1.820229990]
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value 'Startup'
      }
     }
     INFOOBJECT
     {
      KEY [10786.1.821405088]
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value '0'
      }
     }
     INFOOBJECT
     {
      KEY [10786.2.342765638]
      OBJECTTYPE ValueHolder
      CONTENTS
      {
       Value ''
      }
     }
     INFOOBJECT
     {
      KEY [103784.990.815711421]
      SINGLEINSTANCE false
      ID 'Type Details'
      PARENTKEY [892.10.659696]
      OBJECTTYPE Form
      CREATETYPE frmObjectDefinitionBrowser
      CONTENTS
      {
       State := normal
       (485,0,400,912)
       DockableLocation := Station[MAIN]State[NORM]TreePath[L0.2052;B0.5727;]TabIdx[0]Selection[FRONT]
      }
      INFOOBJECTS
      {
       INFOOBJECT
       {
        KEY [121142.0.500922030]
        OBJECTTYPE GUIDataSetLevel
        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
        CONTENTS
        {
         Quantorrow := false
        }
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [121142.0.500923177]
          OBJECTTYPE GUIDataSetLevel
          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
            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
      CREATETYPE frmTypesByModule
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[L0.2052;T0.4273;]TabIdx[0]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
       BASEINFOOBJECT
       {
        KEY [136402.0.98084624]
        OBJECTTYPE GUIComponent
        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
        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
        CONTENTS
        {
         Quantorrow := false
        }
        INFOOBJECTS
        {
         INFOOBJECT
         {
          KEY [101180.2.890701323]
          OBJECTTYPE ValueHolder
          CONTENTS
          {
           Value 'false'
          }
         }
         INFOOBJECT
         {
          KEY [10786.2.342808981]
          OBJECTTYPE ValueHolder
          CONTENTS
          {
           Value ''
          }
         }
         INFOOBJECT
         {
          KEY [892.10.659838]
          OBJECTTYPE GUIDataSetLevel
          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
            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
              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
      CREATETYPE frmModelOverview
      CONTENTS
      {
       State := normal
       (0,0,0,0)
       DockableLocation := Station[MAIN]State[NORM]TreePath[R0.7948;T0.9939;]TabIdx[0]Selection[FRONT]
      }
      BASEINFOOBJECTS
      {
       BASEINFOOBJECT
       {
        KEY [121142.0.36340892]
        OBJECTTYPE GUIContainerComponent
        COMPONENTDATA
        {
         [121142.0.36340892]:[121142.0.37512339]:[121142.0.40573788] STR 'ShiftDay:UnitPeriodTimeBase:MacroPlan:Day_MP:ShiftPattern#458:187:237:469:220#179:86:285:284:180#98:208:109:76:142#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
        CONTENTS
        {
         ZoomX 1.331
         ZoomY 1.331
        }
       }
      }
     }
    }
   }
  }
  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'
  }
}
_var/_Main/ProjSettings/EditorTC/Views/³µµÀÕû°à·ÖÎö_[413988.0.1301140601].vw
@@ -17,7 +17,7 @@
  CREATIONUSER 'quintiq/lihongji'
  UPDATEDATETIME '2024-06-28T13:59:54'
  UPDATEUSER 'quintiq/lihongji'
  LASTACCESSDATE '2024-07-12'
  LASTACCESSDATE '2024-07-16'
  VIEWSCOPE 0
}
AUTHORIZATIONS