rislai
2024-06-14 ce49a7134d069c2f6090eb218ae633787d75b1ed
添加设置产品、产线爬坡的功能
已添加30个文件
已修改2个文件
699 ■■■■■ 文件已修改
_Main/BL/Relations/Relation_UphillRouting_CopyRouting_Routing_CopyUphillRouting.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_UphillRouting_Routing_Routing_UphillRouting.qbl 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalTool/StaticMethod_IsOverlap.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_LocalTool/_ROOT_Type_LocalTool.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Routing/Method_Copy.qbl 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/Attribute_EndDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/Attribute_Percentage.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/Attribute_StartDate.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/StaticMethod_Create#793.qbl 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/StaticMethod_Create#90.qbl 34 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/StaticMethod_Create.qbl 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_UphillRouting/_ROOT_Type_UphillRouting.qbl 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Component_pnlContent.def 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_Create#680.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_Create.def 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_Edit.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_OnOK.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Response_pnlActions_btnOk_OnClick.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/_ROOT_Component_DialogCreateEditUphillRouting.def 42 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_ListUphillRouting#943.def 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_listActionBarPageUphillRouting#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_listContextMenuUphillRouting#1.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_pnlContent.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Method_CreateEditUphillRoutings.def 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Response_ListUphillRouting_943_MenuCreate_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/_ROOT_Component_DialogCreateEditUphillRoutings.def 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuSetUnitUphillRouting_OnClick.def 19 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuSetUphillRouting_OnClick.def 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Relations/Relation_UphillRouting_CopyRouting_Routing_CopyUphillRouting.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation UphillRouting_CopyRouting_Routing_CopyUphillRouting
{
  #keys: '1[412672.0.1042903929]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide CopyRouting
  {
    #keys: '3[412672.0.1042903931][412672.0.1042903930][412672.0.1042903932]'
    Cardinality: '1toN'
    ObjectDefinition: UphillRouting
    OwningSide: 'Reference'
  }
  RelationSide.RightSide CopyUphillRouting
  {
    #keys: '3[412672.0.1042903934][412672.0.1042903933][412672.0.1042903935]'
    Cardinality: '0to1'
    ObjectDefinition: Routing
    OwningSide: 'Reference'
  }
}
_Main/BL/Relations/Relation_UphillRouting_Routing_Routing_UphillRouting.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,23 @@
Quintiq file version 2.0
#parent: #root
Relation UphillRouting_Routing_Routing_UphillRouting
{
  #keys: '1[412672.0.1042903717]'
  DefaultRelationStrategy
  {
  }
  RelationSide.LeftSide Routing
  {
    #keys: '3[412672.0.1042903719][412672.0.1042903718][412672.0.1042903720]'
    Cardinality: '0to1'
    ObjectDefinition: UphillRouting
    OwningSide: 'Reference'
  }
  RelationSide.RightSide UphillRouting
  {
    #keys: '3[412672.0.1042903722][412672.0.1042903721][412672.0.1042903723]'
    Cardinality: '1toN'
    ObjectDefinition: Routing
    OwningSide: 'Owned'
  }
}
_Main/BL/Type_LocalTool/StaticMethod_IsOverlap.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod IsOverlap (
  Date start1,
  Date end1,
  Date start2,
  Date end2
) const declarative as Boolean
{
  TextBody:
  [*
    // rislai Jun-14-2024 (created)
    return start1 < end2 and start2 < end1 ;
  *]
}
_Main/BL/Type_LocalTool/_ROOT_Type_LocalTool.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type LocalTool
{
  #keys: '5[412672.0.1042354674][412672.0.1042354672][0.0.0][412672.0.1042354673][412672.0.1042354675]'
  BaseType: Object
  StructuredName: 'LocalTools'
}
_Main/BL/Type_ProductionLineBatchData/Method_verifyEnable.qbl
@@ -12,7 +12,7 @@
    //(3)  åŒä¸€æ—¶é—´ï¼Œä¸€æ¡äº§çº¿ä¸å¯ä»¥å’Œå¤šæ¡äº§çº¿è½®æ¢ç”Ÿäº§ï¼Œå¦‚果产线1ZKG和产线2ZK的轮换班次已经在4/29/2024生效,那么产线1ZKG和其他产线的轮换班次无法在同一时间生效,此时【Enable】按钮禁用
    verifyData := select( owner,ProductionLineBatchData,plbd, plbd <> this and plbd.IsEnable() and 
                          ( plbd.Unit1() = this.Unit1() or plbd.Unit2() = this.Unit2() or plbd.Unit1() = this.Unit2() or plbd.Unit2() = this.Unit1()) and
                          ( plbd.StartDate() <= this.EndDate() or plbd.EndDate() >= this.StartDate() ));
                          LocalTool::IsOverlap( plbd.StartDate(),plbd.EndDate(),this.StartDate(),this.EndDate()));
    
    if( not isnull( verifyData )){
      feeback := "【" + verifyData.Unit1().Name() + "】【" + verifyData.Unit2().Name() + "】已于" + verifyData.StartDate().Format( "Y-M2-D2" ) +"生效。";
_Main/BL/Type_Routing/Method_Copy.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
Quintiq file version 2.0
#parent: #root
Method Copy (
  String suffix
) as Routing
{
  TextBody:
  [*
    // rislai Jun-14-2024 (created)
    routingname := this.MacroPlan().GetUniqueRoutingName( this.Name() + suffix );
    newrouting := Routing::Create( this.MacroPlan(),
                                   routingname,
                                   routingname,
                                   this.Start(),
                                   this.End(),
                                   this.AllowWIPInventory(),
                                   false
                                   );
    // Copy rouitng step with operations
    traverse( this, RoutingStep, rs )
    {
      rs.Copy( newrouting );
    }
    // Propagated all Operation-Step-Routing relation before copy operation link
    Transaction::Transaction().Propagate();
    traverse( this, RoutingStep.Operation.SourceOperationLink, ol )
    {
      ol.Copy( newrouting );
    }
    return newrouting;
  *]
}
_Main/BL/Type_UphillRouting/Attribute_EndDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute EndDate
{
  #keys: '3[412672.0.1042903765][412672.0.1042903764][412672.0.1042903766]'
  ValueType: Date
}
_Main/BL/Type_UphillRouting/Attribute_Percentage.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute Percentage
{
  #keys: '3[412672.0.1042903775][412672.0.1042903774][412672.0.1042903776]'
  ValueType: Real
}
_Main/BL/Type_UphillRouting/Attribute_StartDate.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute StartDate
{
  #keys: '3[412672.0.1042903755][412672.0.1042903754][412672.0.1042903756]'
  ValueType: Date
}
_Main/BL/Type_UphillRouting/StaticMethod_Create#793.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  Routing owner,
  Date startDate,
  Date endDate,
  Real percentage
)
{
  TextBody:
  [*
    // rislai Jun-14-2024 (created)
    UphillRouting::Create( owner,startDate,endDate,percentage,"_产品爬坡_");
  *]
}
_Main/BL/Type_UphillRouting/StaticMethod_Create#90.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,34 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  Routing owner,
  Date startDate,
  Date endDate,
  Real percentage,
  String suffix
)
{
  TextBody:
  [*
    // rislai Jun-14-2024 (created)
    verifyData := select( owner,UphillRouting,ur,LocalTool::IsOverlap( ur.StartDate(),ur.EndDate(),startDate,endDate ));
    if( not isnull( verifyData )){
      error( "设置的Start和End不可与已有数据的时间区间重叠。" );
    }
    data := owner.UphillRouting( relnew,StartDate := startDate, EndDate := endDate,Percentage := percentage );
    copy_routing := owner.Copy( suffix + startDate.Format( "Y-M2-D2") );
    copy_routing.Start( startDate );
    copy_routing.End( endDate );
    traverse( copy_routing,OperationForPlanningMatrix,op){
      op.Throughput( op.Throughput() * ( percentage / 100) );
    }
    copy_routing.CopyUphillRouting( relset, data );
  *]
}
_Main/BL/Type_UphillRouting/StaticMethod_Create.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: #root
StaticMethod Create (
  Unit unit,
  Date startDate,
  Date endDate,
  Real percentage
)
{
  TextBody:
  [*
    // rislai Jun-14-2024 (created)
    traverse( unit,Operation.RoutingForPlanningMatrix,routing , routing.IsEnabled() and LocalTool::IsOverlap( startDate,endDate,routing.Start(),routing.End())){
      UphillRouting::Create( routing,startDate,endDate,percentage,"_产线爬坡_" );
    }
    // owner.UphillRouting( relnew,Unit := unit,StartDate := startDate, EndDate := endDate,Percentage := percentage );
  *]
}
_Main/BL/Type_UphillRouting/_ROOT_Type_UphillRouting.qbl
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type UphillRouting
{
  #keys: '5[412672.0.1042903701][412672.0.1042903699][0.0.0][412672.0.1042903700][412672.0.1042903702]'
  BaseType: Object
  StructuredName: 'UphillRoutings'
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Component_pnlActions.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[412672.0.1042452873]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[412672.0.1042452877]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[412672.0.1042452879]'
      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_DialogCreateEditUphillRouting/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[412672.0.1042452871]'
  BaseType: 'WebPanel'
  Children:
  [
    Component ddlUnit
    {
      #keys: '[412672.0.1040101442]'
      BaseType: 'WebDropDownList'
      Databinding: 'Unit'
      Children:
      [
        Component deContent
        {
          #keys: '[412672.0.1040101444]'
          BaseType: 'WebDataExtractor'
          Properties:
          [
            DataType: 'structured[Unit]'
            Source: 'ApplicationMacroPlanner.DataHolderUnit'
            Taborder: 0
            Transformation: 'Elements.astype(Unit)'
          ]
        }
      ]
      Properties:
      [
        DisplayField: 'Name'
        Label: '产线'
        Taborder: 0
      ]
    }
    Component dsStartDate
    {
      #keys: '[412672.0.1040102174]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        DataBinding: 'dhDialogData.Data.StartDate'
        Label: '开始时间'
        Taborder: 1
      ]
    }
    Component dsEndDate
    {
      #keys: '[412672.0.1040102187]'
      BaseType: 'WebDateSelector'
      Properties:
      [
        DataBinding: 'dhDialogData.Data.EndDate'
        Label: '结束时间'
        Taborder: 2
      ]
    }
    Component npPercentage
    {
      #keys: '[412672.0.1040102201]'
      BaseType: 'WebNumberPicker'
      Properties:
      [
        DataBinding: 'dhDialogData.Data.Percentage'
        Label: 'Percentage'
        Max: '100'
        Min: '0'
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_Create#680.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method Create (
  Routing routing
) id:Method_DialogCreateEditUphillRouting_Create_680
{
  #keys: '[412672.0.1040101362]'
  Body:
  [*
    ddlUnit.Visible( false );
    ddlUnit.Enabled( false,"" );
    dhRouting.Data( routing );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_Create.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,12 @@
Quintiq file version 2.0
#parent: #root
Method Create () id:Method_DialogCreateEditUphillRouting_Create
{
  #keys: '[412672.0.1040101310]'
  Body:
  [*
    this.Title( ddlUnit.Label() + this.Title().SubString( 2,6) );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_Edit.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method Edit (
  UphillRouting uphillRouting
) id:Method_DialogCreateEditUphillRouting_Edit
{
  #keys: '[412672.0.1040130863]'
  Body:
  [*
    dhDialogData.Data( uphillRouting );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Method_OnOK.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: #root
Method OnOK () id:Method_DialogCreateEditUphillRouting_OnOK
{
  #keys: '[412672.0.1040102043]'
  Body:
  [*
    if( isnull( dhDialogData.Data( ) )){
      if( ddlUnit.Visible() ){
        UphillRouting::Create( ddlUnit.Data(), dsStartDate.Date(),dsEndDate.Date(),npPercentage.Number() );
      }else{
        UphillRouting::Create( dhRouting.Data(), dsStartDate.Date(),dsEndDate.Date(),npPercentage.Number());
      }
    }else{
    }
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/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: '[412672.0.1042452883]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/Response_pnlActions_btnOk_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#parent: pnlActions/btnOk
Response OnClick () id:Response_pnlActions_btnOk_OnClick
{
  #keys: '[412672.0.1042452882]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    return dsStartDate.Date() < dsEndDate.Date();
  *]
  QuillAction
  {
    Body:
    [*
      Form.OnOK();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRouting/_ROOT_Component_DialogCreateEditUphillRouting.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,42 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogCreateEditUphillRouting
{
  #keys: '[412672.0.1042452869]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
    Component dhDialogData
    {
      #keys: '[412672.0.1040101484]'
      BaseType: 'WebDataHolder'
      Databinding: 'UphillRouting'
      Properties:
      [
        Taborder: 2
      ]
    }
    Component dhRouting
    {
      #keys: '[412672.0.1040101841]'
      BaseType: 'WebDataHolder'
      Databinding: 'Routing'
      Properties:
      [
        Taborder: 3
      ]
    }
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    Padding: 'false'
    Title: '产品爬坡工艺路线'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_ListUphillRouting#943.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,59 @@
Quintiq file version 2.0
Component ListUphillRouting id:ListUphillRouting_943
{
  #keys: '[412672.0.1040121798]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorUphillRouting
    {
      #keys: '[412672.0.1040121799]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'Routing'
        Source: 'dhRouting'
        Taborder: 0
        Transformation: 'UphillRouting'
      ]
    }
    #child: listActionBarPageUphillRouting_1
    Component DataSetLevelUphillRouting
    {
      #keys: '[412672.0.1040121801]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenuUphillRouting_1
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"EndDate","title":"EndDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"EndDate"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"Percentage","title":"Percentage","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"Percentage"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"StartDate","title":"StartDate","subtotals":"","tooltip":"","width":-1,"display":"shown","editable":false,"attribute":"StartDate"}}]'
        ContextMenu: 'listContextMenuUphillRouting'
        Taborder: 2
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListUphillRouting_943_WebMenu_OnClick
    {
      #keys: '[412672.0.1042455296]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[2003.0.34277352]'
          Binding: 'this.Selection()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_listActionBarPageUphillRouting#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageUphillRouting id:listActionBarPageUphillRouting_1
{
  #keys: '[412672.0.1040121800]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_listContextMenuUphillRouting#1.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
Quintiq file version 2.0
Component listContextMenuUphillRouting id:listContextMenuUphillRouting_1
{
  #keys: '[412672.0.1040121802]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuCreate
    {
      #keys: '[412672.0.1043375746]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'ADD2'
        Taborder: 3
        Title: 'Create...'
      ]
    }
  ]
  Properties:
  [
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Component_pnlContent.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[412672.0.1043138046]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListUphillRouting_943
    Component dhRouting
    {
      #keys: '[412672.0.1040132827]'
      BaseType: 'WebDataHolder'
      Databinding: 'Routing'
      Properties:
      [
        Taborder: 1
      ]
    }
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Method_CreateEditUphillRoutings.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
Quintiq file version 2.0
#parent: #root
Method CreateEditUphillRoutings (
  Routing owner
) id:Method_DialogCreateEditUphillRoutings_CreateEditUphillRoutings
{
  #keys: '[412672.0.1040132851]'
  Body:
  [*
    dhRouting.Data( owner );
    ApplicationMacroPlanner.ShowFormModal( this );
  *]
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/Response_ListUphillRouting_943_MenuCreate_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListUphillRouting_943
Response OnClick () id:Response_ListUphillRouting_943_MenuCreate_OnClick
{
  #keys: '[412672.0.1040123392]'
  CanBindMultiple: false
  DefinitionID => /ListUphillRouting_943/Responsedef_ListUphillRouting_943_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuCreate'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogCreateEditUphillRouting );
      dlg.Create( dhRouting.Data( ));
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditUphillRoutings/_ROOT_Component_DialogCreateEditUphillRoutings.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogCreateEditUphillRoutings
{
  #keys: '[412672.0.1043138044]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
  ]
  Properties:
  [
    Alignment: 'trailing'
    ExcludeFromActiveComponent: true
    Image: 'ESCALATOR_UP'
    Padding: 'false'
    Title: '产品爬坡工艺路线'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Component_listContextMenuRoutings.def
@@ -24,5 +24,27 @@
        Title: 'Thermal trial ratio'
      ]
    }
    Component MenuSetUnitUphillRouting
    {
      #keys: '[412672.0.1040121042]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'ESCALATOR_UP'
        Taborder: 13
        Title: '设置产线爬坡工艺路线'
      ]
    }
    Component MenuSetUphillRouting
    {
      #keys: '[412672.0.1040131623]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'ESCALATOR_UP'
        Taborder: 14
        Title: '设置产品爬坡工艺路线'
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuSetUnitUphillRouting_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,19 @@
Quintiq file version 2.0
#parent: ListRoutings
Response OnClick () id:Response_ListRoutings_MenuSetUnitUphillRouting_OnClick
{
  #keys: '[412672.0.1040131205]'
  CanBindMultiple: false
  DefinitionID => /ListRoutings/Responsedef_ListRoutings_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuSetUnitUphillRouting'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogCreateEditUphillRouting );
      dlg.Create( );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_FormRoutings/Response_MacroPlanner_ListRoutings_MenuSetUphillRouting_OnClick.def
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
Quintiq file version 2.0
#parent: ListRoutings
Response OnClick (
  Routing selection
) id:Response_ListRoutings_MenuSetUphillRouting_OnClick
{
  #keys: '[412672.0.1040131705]'
  CanBindMultiple: false
  DefinitionID => /ListRoutings/Responsedef_ListRoutings_WebMenu_OnClick
  GroupServerCalls: true
  Initiator: 'MenuSetUphillRouting'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogCreateEditUphillRoutings );
      dlg.CreateEditUphillRoutings( selection );
    *]
  }
}