| Quintiq file version 2.0 | 
| #parent: #root | 
| Method OpenNewClientWithDatasetLoaded ( | 
|   internal[MDSObjectInfo] datasetinfo | 
| ) id:Method_LibOpt_GlobalState_OpenNewClientWithDatasetLoaded | 
| { | 
|   #keys: '[141860.2.203171788]' | 
|   Body: | 
|   [* | 
|     // This method first loads the dataset that belongs to the 'datasetinfo' object, then it executes a command that opens a new thin client.  | 
|     // The dataset that belongs to the 'datasetinfo' object is automatically selected in this new thin client.  | 
|      | 
|     // This method is called when the 'Open client and select dataset' context menu item in the 'Snapshots' form is pressed.  | 
|      | 
|     // This method heavily relies on forbidden Quill. Therefore, this method is only intended to be used for development purposes.  | 
|      | 
|     if( not isnull( datasetinfo ) ) | 
|     { | 
|       mdsid := datasetinfo.MDSID();    | 
|       if( not datasetinfo.IsLoaded() ) | 
|       { | 
|         ExternalMDSEditor::Editor().LoadMDS( mdsid, MDSInterface::StandAloneStorageState() );  | 
|       } | 
|       Process::Execute( 'cmd', | 
|                         '/C', | 
|                         '"' + OS::BinDir() + 'QThinClient.exe"', | 
|                         '/startup.autostart=true', // Attempts to start the client without presenting the login dialog. | 
|                         '/startup.project=' | 
|                         // The documentation gives the following warning: | 
|                         // "This element is part of internal infrastructure and must not be used in models." | 
|                         // We use this attribute anyway, because there don't seem to be any good workarounds.                     | 
|                         + Application.ApplicationScope().Project().Name(), | 
|                         '/startup.selectdataset='  | 
|                         + datasetinfo.Kind() | 
|                         + ':' | 
|                         + datasetinfo.Path() | 
|                         + '/' | 
|                         + datasetinfo.Name(), | 
|                         // The ViewManager().CurrentView() relation is forbidden Quill (not an officially supported relation)  | 
|                         "'/startup.view=" + ApplicationScope.ViewManager().CurrentView().Name() + "'"  | 
|                         ); | 
|     } | 
|   *] | 
| } |