rislai
2024-06-14 1d8b8f8f291ad75cbe60fc3652c7954e60244136
Merge branch 'dev' of http://47.101.211.7:10101/r/VWED into dev
已修改8个文件
已添加23个文件
622 ■■■■■ 文件已修改
_Main/BL/InfoMessages.qbl 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Entity/Attribute_IsToFill.qbl 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Entity/Method_IsUnit.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Entity/_ROOT_Type_Entity.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Operation/Method_Copy.qbl 95 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Operation/_ROOT_Type_Operation.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OperationBOM/Attribute_OldStockingPointID.qbl 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_OperationBOM/_ROOT_Type_OperationBOM.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Routing/StaticMethod_ThermalTrialRatio.qbl 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Routing/StaticMethod_ValidateThermalTrialRatio.qbl 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/Type_Routing/_ROOT_Type_Routing.qbl 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgWholeShiftSystem#633.def 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abpAlgorithmPostProcessing.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgWholeShiftSystem_bWholeShiftSystem_OnClick.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlMaxCapacity.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRatio.def 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def 123 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listActionBarPageEntities#1.def 10 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902#1.def 35 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlActions.def 40 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlContent.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_ListEntity_MenuSelectAll_OnClick.def 17 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_ListEntity_OnDrawElement.def 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_pnlActions_btnCancel_OnClick.def 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_pnlActions_btnOk_OnClick.def 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/_ROOT_Component_DialogWholeShiftSystem.def 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
_Main/BL/InfoMessages.qbl
@@ -106,4 +106,8 @@
  {
    DefaultText: 'The Event type of binding Event exists.'
  }
  InfoMessage MP_Routing_RequiredField
  {
    DefaultText: 'All fields Required This parameter is mandatory.'
  }
}
_Main/BL/Type_Entity/Attribute_IsToFill.qbl
对比新文件
@@ -0,0 +1,7 @@
Quintiq file version 2.0
#parent: #root
Attribute IsToFill
{
  #keys: '3[414702.2.1844249287][414702.2.1844249286][414702.2.1844249288]'
  ValueType: Boolean
}
_Main/BL/Type_Entity/Method_IsUnit.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#parent: #root
Method IsUnit () declarative remote as Boolean
{
  TextBody: 'return guard( this.istype( Unit ), false );'
}
_Main/BL/Type_Entity/_ROOT_Type_Entity.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type Entity #extension
{
}
_Main/BL/Type_Operation/Method_Copy.qbl
对比新文件
@@ -0,0 +1,95 @@
Quintiq file version 2.0
#parent: #root
Method Copy (
  RoutingStep newroutingstep,
  StockingPoint_MP stockingpoint,
  String id,
  Unit unit
) as Operation
{
  Description: 'Duplicate the entire operation (including input product groups + input output products + costs)'
  TextBody:
  [*
    idholder := this.MacroPlan().IDHolder();
    //unit := this.Unit();
    // Create new Operation with information of this Operation
    newoperation := Operation::Create( id,
                                       unit,
                                       id,
                                       newroutingstep,
                                       this.LeadTime(),
                                       this.StandardDeviationLeadTime(),
                                       this.Throughput(),
                                       this.HasUserLotSize(),
                                       this.UserMinimumQuantity(),
                                       this.HasUserMaximumQuantity(),
                                       this.UserMaximumQuantity(),
                                       this.UserLotSize(),
                                       this.CO2Emission(),
                                       false,
                                       false );
    // Copy OperationCosts of this Operation to the new Operation
    traverse( this, OperationCost, operationcost )
    {
      // Select UnitAccount
      accountassignment := select( unit, UnitAccount, ua,
                                   ua.Account_MP() = operationcost.AccountAssignment().Account_MP()
                                   and ua.CostDriver() = operationcost.AccountAssignment().CostDriver() );
      // Create OperationCost for the new Operation if UnitAccount is found
      if( not isnull( accountassignment ) )
      {
        OperationCost::Create( idholder.GetOperationCostID(),
                               newoperation,
                               accountassignment.Account_MP(),
                               accountassignment.CostDriver(),
                               operationcost.Start(),
                               operationcost.TimeUnit(),
                               operationcost.LengthOfTime(),
                               operationcost.Cost(),
                               false );
      }
    }
    // Copy OperationBOM from this Operation to the new Operation
    traverse( this, OperationBOM, ob, not ob.IsInput() )
    {
      pisp := ob.PISPNodeInRouting().ProductInStockingPoint_MP();
      newpisp := pisp.Product_MP().AddToStockingPoint( stockingpoint );
    //  info( 'last----', ob.IsInput(), ',', ob.OperationID(), ',', ob.ProductID(), ',', ob.StockingPointID(), ',', pisp.ProductID(), ',', pisp.StockingPointID() );
      OperationBOM::Create( newoperation, newpisp,
                            not ob.IsInput(),
                            ob.InputGroupID(),
                            ob.HasUserInputQuantity(),
                            ob.Quantity(),
                            ob.MinQuantityInGroup(),
                            ob.MaxQuantityInGroup(),
                            ob.IsExcluded(),
                            false );
    //  output.PISPNodeInRouting().Update( pisp.Product_MP(), stockingpoint );
    //  info( 'new output----', output.IsInput(), ',', output.OperationID(), ',', output.ProductID(), ',', output.StockingPointID() );
      OperationBOM::Create( newoperation, ob.PISPNodeInRouting().ProductInStockingPoint_MP(),
                            ob.IsInput(),
                            ob.InputGroupID(),
                            ob.HasUserInputQuantity(),
                            ob.Quantity(),
                            ob.MinQuantityInGroup(),
                            ob.MaxQuantityInGroup(),
                            ob.IsExcluded(),
                            false );
    //  input.UpdateTypeIndex( input.OperationID(), input.ProductID(), ob.OldStockingPointID(), false );
    //  info( 'new input----', input.IsInput(), ',', input.OperationID(), ',', input.ProductID(), ',', input.StockingPointID() );
    }
    // Copy OpearationInputGroup of this Operation to the new Operation
    traverse( this, OperationInputGroup, inputgroup )
    {
      inputgroup.Copy( newoperation );
    }
    return newoperation;
  *]
}
_Main/BL/Type_Operation/_ROOT_Type_Operation.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
TypeSpecialization Operation #extension
{
}
_Main/BL/Type_OperationBOM/Attribute_OldStockingPointID.qbl
对比新文件
@@ -0,0 +1,8 @@
Quintiq file version 2.0
#parent: #root
Attribute OldStockingPointID
{
  #keys: '3[415136.0.782845096][415136.0.782845095][415136.0.782845097]'
  Description: '娣诲姞鐑紡涔嬪墠鐨勫簱瀛樼偣'
  ValueType: String
}
_Main/BL/Type_OperationBOM/_ROOT_Type_OperationBOM.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
TypeSpecialization OperationBOM #extension
{
}
_Main/BL/Type_Routing/StaticMethod_ThermalTrialRatio.qbl
对比新文件
@@ -0,0 +1,53 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ThermalTrialRatio (
  Routing routing,
  Number capacity,
  Date start,
  Date end,
  Number ratio
) as owning Routings
{
  Description: 'Check input is valid'
  TextBody:
  [*
    // Adhi Feb-10-2016 (created)
    thermaltrial := '鐑紡';
    newroutings := construct( Routings );
    unit := selectobject( routing.MacroPlan(), Unit, unit, unit.ID() = thermaltrial and unit.HasCapacityTypeQuantity() );
    newrouting := routing.Copy();
    routingstep := newrouting.LastStep();
    //info( '------------------', routingstep.Tool(), ',', unit.ID() );
    newroutingstep := RoutingStep::Create( newrouting, thermaltrial, routingstep.Tool(), false );
    traverse( routingstep, Operation, operation ){
      id := Operation::GetConcatenatedID( newrouting.ID(), newroutingstep.Name(), unit.ID() );
    //  info( '------------------', operation.Name(), routingstep.Name(), newroutingstep.Name() );
      stockingpoint := StockingPoint_MP::FindCreateUpdate( routing.MacroPlan(), thermaltrial, unit, newrouting, true );
      traverse( operation, OperationBOM, obom, not obom.IsInput() ){
        pisp := obom.PISPNodeInRouting().ProductInStockingPoint_MP();
    //    info( 'before----', ',', obom.StockingPointID(), pisp.StockingPointID(), pisp.ProductID() );
        obom.OldStockingPointID( obom.StockingPointID() );
        newpisp := pisp.Product_MP().AddToStockingPoint( stockingpoint );
    //    obom.PISPNodeInRouting().ProductInStockingPoint_MP( relset, newpisp );
        obom.PISPNodeInRouting().Update( newpisp.Product_MP(), newpisp.StockingPoint_MP() );
    //    afterpisp := obom.PISPNodeInRouting().ProductInStockingPoint_MP();
        obom.UpdateTypeIndex( obom.OperationID(), obom.ProductID(), stockingpoint.ID(), obom.IsInput() );
    //    info( 'after----', obom.StockingPointID(), afterpisp.StockingPointID(), afterpisp.ProductID() );
      }
    //  info( '------------------------------', operation.SourceOperationLink( relsize ) );
      operation.Copy( newroutingstep, stockingpoint, id, unit );
    }
    traverse( newrouting, RoutingStep.Operation.SourceOperationLink, ol )
    {
      ol.SynchronizeAll( false );
    }
    newroutings.Add( routing );
    return &newroutings;
  *]
}
_Main/BL/Type_Routing/StaticMethod_ValidateThermalTrialRatio.qbl
对比新文件
@@ -0,0 +1,25 @@
Quintiq file version 2.0
#parent: #root
StaticMethod ValidateThermalTrialRatio (
  output String feedback_o,
  Routing routing,
  Number capacity,
  Date start,
  Date end,
  Number ratio
) declarative remote as Boolean
{
  Description: 'Check input is valid'
  TextBody:
  [*
    // Adhi Feb-10-2016 (created)
    feedback_o := '';
    if( isnull( routing ) or capacity < 1 or start = Date::MinDate() or end = Date::MinDate() or ratio < 1 ){
      feedback_o := Translations::MP_Routing_RequiredField();
    }
    return feedback_o = '';
  *]
}
_Main/BL/Type_Routing/_ROOT_Type_Routing.qbl
对比新文件
@@ -0,0 +1,6 @@
Quintiq file version 2.0
#root
#parent: #DomainModel
Type Routing #extension
{
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_ActionBarPageScenarioSelection.def
@@ -3,6 +3,6 @@
{
  Properties:
  [
    Taborder: 20
    Taborder: 21
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abgWholeShiftSystem#633.def
对比新文件
@@ -0,0 +1,25 @@
Quintiq file version 2.0
Component abgWholeShiftSystem
{
  #keys: '[414702.2.1844443226]'
  BaseType: 'WebActionBarGroup'
  Children:
  [
    Component bWholeShiftSystem
    {
      #keys: '[414702.2.1843140838]'
      BaseType: 'WebButton'
      Properties:
      [
        Image: 'WIND_ENGINE'
        Label: 'Whole shift system'
        Taborder: 0
      ]
    }
  ]
  Properties:
  [
    Category: 'Actions-1'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_abpAlgorithmPostProcessing.def
对比新文件
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component abpAlgorithmPostProcessing
{
  #keys: '[414702.2.1844443225]'
  BaseType: 'WebActionBarPage'
  Children:
  [
    #child: abgWholeShiftSystem
  ]
  Properties:
  [
    Taborder: 20
    Title: 'Algorithm Post-processing'
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Component_applicationFixedPageActionBarPageDef.def
@@ -3,6 +3,6 @@
{
  Properties:
  [
    Taborder: 21
    Taborder: 22
  ]
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/Response_MacroPlanner_abgWholeShiftSystem_bWholeShiftSystem_OnClick.def
对比新文件
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: abgWholeShiftSystem/bWholeShiftSystem
Response OnClick () id:Response_MacroPlanner_abgWholeShiftSystem_bWholeShiftSystem_OnClick
{
  #keys: '[414702.2.1843141002]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebButton_OnClick'
  QuillAction
  {
    Body:
    [*
      dlg := construct( DialogWholeShiftSystem );
      ApplicationMacroPlanner.ShowFormModal( dlg );
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_ApplicationMacroPlanner/_ROOT_Component_ApplicationMacroPlanner.def
@@ -17,6 +17,7 @@
        #child: ActionBarPageScenarioSelection
        #child: applicationFixedPageActionBarPageDef
        #child: applicationDevelopmentActionBarPageDef_1
        #child: abpAlgorithmPostProcessing
      ]
    }
    Component dhBinaryDataPR id:dhBinaryDataPR_688
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlMaxCapacity.def
@@ -12,6 +12,7 @@
      Properties:
      [
        Label: 'Maximum thermal trial capacity'
        Mask: 'NUMBER'
        Taborder: 0
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Component_pnlRatio.def
@@ -22,6 +22,7 @@
      Properties:
      [
        Label: '1:'
        Mask: 'NUMBER'
        Taborder: 1
      ]
    }
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Method_OnOK.def
@@ -12,18 +12,9 @@
    
    data := dhDialogData.Data();
    
    //if( isnull( data.WrappedInstance() ) ) // New
    //{
    //  // When create product, parent relation must be null (as server method has logic to detect parent change using this relation)
    //  data.Parent( relflush );
    //  data.Commit();
    //  dhForm.Data().ListEventType().SelectByKey( data.WrappedInstance().Key() );
    //}
    //else
    //{
    //  LibCal_EventType::Update( dhDialogData.Data().WrappedInstance(), efID.Text(), efName.Text()
    //                            ,guard( selParent.Data(), null(  LibCal_EventType ) ) );
    //}
    newroutings := Routing::ThermalTrialRatio( data, [Number]efMaxCapacity.Text(), dsStartTime.Date(), dsEndTime.Date(), [Number]efThermalTrialRatio.Text() );
    ApplicationMacroPlanner.SelectListObjects( dhForm.Data().ListRoutings(), newroutings );
    
    this.Close();
  *]
_Main/UI/MacroPlannerWebApp/Component_DialogCreateEditThermalTrialRatio/Response_pnlActions_btnOk_OnClick.def
@@ -5,12 +5,15 @@
  #keys: '[415136.0.756140039]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  Precondition:
  [*
    return Routing::ValidateThermalTrialRatio( feedback, ddlRouting.Data(), [Number]efMaxCapacity.Text(), dsStartTime.Date(), dsEndTime.Date(), [Number]efThermalTrialRatio.Text() );
  *]
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
      Form.OnOK();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_ListEntity.def
对比新文件
@@ -0,0 +1,123 @@
Quintiq file version 2.0
Component ListEntity
{
  #keys: '[414702.2.1845329611]'
  BaseType: 'WebList'
  Children:
  [
    Component DataExtractorEntity
    {
      #keys: '[414702.2.1845329612]'
      BaseType: 'WebDataExtractor'
      Properties:
      [
        DataType: 'MacroPlan'
        FixedFilter: 'not object.GetIsSystem() and object.IsUnit();'
        Source: 'MacroPlan'
        Taborder: 0
        Transformation: 'RootEntity'
      ]
    }
    Component DataSetLevelRootEntity
    {
      #keys: '[414702.2.1845329613]'
      BaseType: 'WebDataSetLevel'
      Children:
      [
        #child: listContextMenu902_1
        Component DataSetLevelChildEntity
        {
          #keys: '[414702.2.1845329623]'
          BaseType: 'WebDataSetLevel'
          Properties:
          [
            Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayName","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayCapacityType","title":"Capacity type","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayCapacityType"}}]'
            ContextMenu: 'listContextMenu902'
            FixedFilter: 'not object.GetIsSystem() and object.IsUnit();'
            RelationFromParent: 'ChildEntity'
            RelationRepeating: 'ChildEntity'
            SortCriteria: 'DisplayIndex'
            Taborder: 0
          ]
        }
      ]
      Properties:
      [
        Columns: '[{"attribute":{"classtype":"WebApiDefinitionAttributeAllConstraint","columnid":"All constraints","title":"All constraints","subtotals":"","tooltip":"","width":-1,"display":"shown"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayName","title":"Name","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayName"}},{"attribute":{"classtype":"WebApiDefinitionAttributeDataMember","columnid":"DisplayCapacityType","title":"Capacity type","subtotals":"","tooltip":"","width":-1,"display":"shown","attribute":"DisplayCapacityType"}}]'
        ContextMenu: 'listContextMenu902'
        RelationFromParent: 'ChildEntity'
        SortCriteria: 'DisplayIndex'
        Taborder: 1
      ]
    }
    #child: listActionBarPageEntities_1
  ]
  Properties:
  [
    DefaultExpandLevels: 100
    Taborder: 0
  ]
  ResponseDefinitions:
  [
    DelegatedResponseDefinition OnClick id:Responsedef_ListEntity_WebMenu_OnClick
    {
      #keys: '[414702.2.1845329586]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[293.0.3027433]'
          Binding: 'this.Selection()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_ListEntity_WebButton_OnClick
    {
      #keys: '[414702.2.1845329585]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument selection
        {
          #keys: '[6763.0.8029304]'
          Binding: 'this.Selection()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_ListEntity_WebMenu_OnClick_360
    {
      #keys: '[414702.2.1845329584]'
      Initiator: 'WebMenu'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument checked
        {
          #keys: '[6763.0.8029349]'
          Binding: 'this.Checked()'
        }
      ]
    }
    DelegatedResponseDefinition OnClick id:Responsedef_ListEntity_WebButton_OnClick_613
    {
      #keys: '[414702.2.1845329583]'
      Initiator: 'WebButton'
      IsInherited: false
      ResponseType: 'OnClick'
      Arguments:
      [
        ResponseDefinitionArgument checked
        {
          #keys: '[6763.0.8029394]'
          Binding: 'this.Checked()'
        }
      ]
    }
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listActionBarPageEntities#1.def
对比新文件
@@ -0,0 +1,10 @@
Quintiq file version 2.0
Component listActionBarPageEntities id:listActionBarPageEntities_1
{
  #keys: '[414702.2.1845329624]'
  BaseType: 'listActionBarPage'
  Properties:
  [
    Taborder: 2
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_listContextMenu902#1.def
对比新文件
@@ -0,0 +1,35 @@
Quintiq file version 2.0
Component listContextMenu902 id:listContextMenu902_1
{
  #keys: '[414702.2.1845329614]'
  BaseType: 'listContextMenu'
  Children:
  [
    Component MenuSeparator
    {
      #keys: '[121142.1.1147171519]'
      BaseType: 'MenuSeparator'
      IsDerived: true
      Properties:
      [
        Taborder: 3
      ]
    }
    Component MenuSelectAll
    {
      #keys: '[414702.2.1845329622]'
      BaseType: 'WebMenu'
      Properties:
      [
        Image: 'SELECTION_VIEW'
        Shortcut: 'Ctrl+A'
        Taborder: 2
        Title: 'Select all'
      ]
    }
  ]
  Properties:
  [
    Taborder: 1
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Component_pnlActions.def
对比新文件
@@ -0,0 +1,40 @@
Quintiq file version 2.0
Component pnlActions
{
  #keys: '[414702.2.1844994358]'
  BaseType: 'WebPanel'
  Children:
  [
    Component btnOk
    {
      #keys: '[414702.2.1844994362]'
      BaseType: 'WebButton'
      Properties:
      [
        Label: 'OK'
        Taborder: 0
      ]
    }
    Component btnCancel
    {
      #keys: '[414702.2.1844994364]'
      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_DialogWholeShiftSystem/Component_pnlContent.def
对比新文件
@@ -0,0 +1,15 @@
Quintiq file version 2.0
Component pnlContent
{
  #keys: '[414702.2.1844994356]'
  BaseType: 'WebPanel'
  Children:
  [
    #child: ListEntity
  ]
  Properties:
  [
    Padding: 'true'
    Taborder: 0
  ]
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_ListEntity_MenuSelectAll_OnClick.def
对比新文件
@@ -0,0 +1,17 @@
Quintiq file version 2.0
#parent: ListEntity
Response OnClick () id:Response_ListEntity_MenuSelectAll_OnClick
{
  #keys: '[414702.2.1845206151]'
  CanBindMultiple: false
  DefinitionID => /ListEntity/Responsedef_ListEntity_WebMenu_OnClick
  Initiator: 'MenuSelectAll'
  QuillAction
  {
    Body:
    [*
      this.SelectAll();
    *]
    GroupServerCalls: false
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/Response_ListEntity_OnDrawElement.def
对比新文件
@@ -0,0 +1,18 @@
Quintiq file version 2.0
#parent: ListEntity
Response OnDrawElement (
  Entity element
) id:Response_ListEntity_OnDrawElement
{
  #keys: '[414702.2.1845463150]'
  CanBindMultiple: false
  DefinitionID: 'Responsedef_WebList_OnDrawElement'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      drawinfo.Image( 0, element.GetIconName() );
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/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: '[414702.2.1844994368]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/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: '[414702.2.1844994367]'
  DefinitionID: 'Responsedef_WebButton_OnClick'
  GroupServerCalls: true
  QuillAction
  {
    Body:
    [*
      Form.ApplyChanges();
      Form.Close();
    *]
  }
}
_Main/UI/MacroPlannerWebApp/Component_DialogWholeShiftSystem/_ROOT_Component_DialogWholeShiftSystem.def
对比新文件
@@ -0,0 +1,24 @@
Quintiq file version 2.0
#root
#parent: MacroPlannerWebApp
OrphanComponent DialogWholeShiftSystem
{
  #keys: '[414702.2.1844994354]'
  BaseType: 'WebForm'
  Children:
  [
    #child: pnlContent
    #child: pnlActions
  ]
  Properties:
  [
    Alignment: 'trailing'
    EnterButton: 'btnOk'
    EscapeButton: 'btnCancel'
    ExcludeFromActiveComponent: true
    MinimumColumns: 100
    MinimumRows: 100
    Padding: 'false'
    Title: 'WholeShiftSystem'
  ]
}