Quintiq file version 2.0 
 | 
#parent: #root 
 | 
Method OnOk () id:Method_DialogCreateEditScenario_OnOk 
 | 
{ 
 | 
  #keys: '[134266.1.2021821381]' 
 | 
  Body: 
 | 
  [* 
 | 
    // Disabled button to prevent the possibility of multiple firing 
 | 
    btnOK.Enabled( false, '' ) 
 | 
     
 | 
    // On ok execution, create new scenario, copy or edit 
 | 
    this.ApplyChanges(); 
 | 
     
 | 
    data := DataHolderDialogData.Data(); 
 | 
    newscenario := null( Scenario ); 
 | 
    strategy := null( Strategy ); 
 | 
     
 | 
    // Copy scenario 
 | 
    if( isnull( data.WrappedInstance() ) ) 
 | 
    { 
 | 
      if(  DataHolderActionCopy.Data() ) 
 | 
      {  
 | 
        scenario := data.Parent().astype( ScenarioMP ); 
 | 
        strategy := data.SelectedStrategy(); 
 | 
              
 | 
        newscenario:= scenario.Copy( data.Parent(), data.Name(), edtAssumption.Text(), 
 | 
                                     data.Comment(), data.State() ); 
 | 
         
 | 
                                   
 | 
      } 
 | 
      // If DatasetMDSID is set, it means the scenario 
 | 
      // will be linked to an existing dataset 
 | 
      else if( data.DatasetMDSID() <> Key::ZeroKey() ) 
 | 
      { 
 | 
        ScenarioManager.CreateScenarioMPFromDataset( data.Parent(), 
 | 
                                                     data.Name(), 
 | 
                                                     edtAssumption.Text(), 
 | 
                                                     data.Comment(), 
 | 
                                                     '', 
 | 
                                                     data.DatasetName(), 
 | 
                                                     data.DatasetMDSID(), 
 | 
                                                     data.State() ); 
 | 
         
 | 
      } 
 | 
      else 
 | 
      { 
 | 
        newscenario := ScenarioManager.CreateScenarioMP( data.Parent(), 
 | 
                                                         data.Name(), 
 | 
                                                         edtAssumption.Text(), 
 | 
                                                         data.Comment(), 
 | 
                                                         data.State(), 
 | 
                                                         '', 
 | 
                                                         ApplicationMacroPlanner.GetUserName() ); 
 | 
         
 | 
        strategy := data.SelectedStrategy(); 
 | 
      } 
 | 
    } 
 | 
    // Edit scenario 
 | 
    else 
 | 
    { 
 | 
      data.WrappedInstance().Update( data.Name(), data.Comment(), data.State() ); 
 | 
      data.WrappedInstance().SelectedStrategy( relset, data.SelectedStrategy() ); 
 | 
    } 
 | 
     
 | 
    // Post scenario creation 
 | 
    // Set kb and strategy after creation of scenario and set the scenario as active 
 | 
    if( not isnull( newscenario ) ) 
 | 
    {            
 | 
      newscenario.SelectedStrategy( relset, strategy );  
 | 
      if ( not DataHolderActionCopy.Data() ) 
 | 
      {                                                                                                     
 | 
        ApplicationMacroPlanner.SelectScenario( newscenario.astype( ScenarioMP ) ); 
 | 
      }   
 | 
    } 
 | 
     
 | 
    this.Close(); 
 | 
  *] 
 | 
} 
 |