E' possibile definire un proprio esecutore in grado di elaborare la configurazione generata dal modulo utente mer mezzo del risolutore.


Il metodo più semplice per definire un proprio esecutore è quello di usare il LUA. Il file QsCfgUser.exe.config contiene due parametri configurabili ScriptPre e ScriptPost.


<?xml version="1.0"?>
<configuration>
  <startup useLegacyV2RuntimeActivationPolicy="true"><supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.1"/></startup>
  <appSettings>
    <add key="ScriptPre" value="D:\Program Files\QS_Informatica\Configuratore22\lua\executor.lua"/>
    <add key="ScriptPost" value="D:\Program Files\QS_Informatica\Configuratore22\lua\executor.lua"/>
  </appSettings>
</configuration>

A questi due parametri possono essere assegnati due script lua (oppure lo stesso) che verranno eseguiti prima e dopo l'esecuzione del modulo utente-risolutore. In questo modo è possibile preimpostare il configuratore con i dati corretti nel PRE, ricevere l'input utente ed elaborare la risoluzione grezza nel modulo POST.

Per semplificare la preparazione dell'esecutore il software espone automaticamente al lua diverse informazioni.


CFGUE

Questo oggetto globale rappresenta il configuratore (eseguibile).


CFGUE.Context

E' una stringa e rappresenta il context di esecuzione (PRE/POST). Quando viene caricato lo script ScriptPre la stringa vale PRE.  Quando viene caricato lo script ScriptPost la stringa vale POST. In questo modo è possibile definire il proprio codice anche all'interno dello stesso file.


CFGUE.DialogResult

E' il risultato del dialogo di configurazione utente. E' di tipo DialogResult (.NET) convertito in stringa. Esempio la pressione del tasto OK ritorna la stringa "OK".


Settaggi dell'esecutore

E' possibile aggiungere i propri settaggi al file QsCfgUser.exe.config nel nodo <appSettings>. Queste impostazioni vengo automaticamente esposte dall'oggetto CFGUE. Per esempio CFGUE.ScriptPre indica la path dello script pre.


CFGUE.LastConfiguration

Contiene il risultato "grezzo" dell'ultima configurazione eseguita.


CFGU

Poiché il modulo utente è completamente caricato, l'oggetto CFGU è sempre disponibile sia nel context PRE che nel context POST.


Avendo in mano questi oggetti è possibile sfruttare il codice LUA per realizzare un esecutore di qualsiasi tipo.