Navision consente di definire variabili di tipo OCX in modo da poter
utilizzare tramite codice C/AL funzionalità installate sul client. Ovviamente
affinché il codice venga eseguito sarà necessario che sui client sia installato
l'OCX se questi eseguono codice C/AL che lo referenzia.
Sfruttando questa possibilità è possibile tramite l'OCX di Windows Script
Host (ScriptControl Object C:\Windows\System32\msscript.ocx) simulare la pressione di uno o più tasti utilizzando il metodo SendKeys dell'oggetto WScript.Shell. In questo modo di fatto si possono creare delle macro artigianali per
evitare di l'esecuzioni da parte dell'utente di azioni ripetitive.
L'ultima versione attualmente disponibile di Windows Script Host (WSH) e
scaricabile al seguente link:
Microsoft Windows Script Downloads.
Sommario
Creare una CodeUnit WindowsScripHost contenente una funzione pubblica per ciascun metodo dell'engine
WSH che si intende utilizzare, per evitare memory leak in conviene definire una
variabile locale che faccia riferimento all'OCX del WSH in ciascuna funzione in
modo che le risorse dell'OCX siano rilasciate al termine dell'esecuzione.
Nel seguente esempio è illustrata la creazione di una funzione per
l'utilizzo del metodo SendKeys dell'oggetto WScript.Shell:
ShellSendKeys(Keys : Text[30])
SCO.Language:= 'VBScript';
SCO.ExecuteStatement('CreateObject("WScript.Shell").SendKeys("' + Keys +
'")');
CLEAR(SCO);
Dove SCO è una variabile locale definita come segue:
Name |
DataType |
Subtype |
Length |
SCO |
OCX |
ScriptControl Object |
|
Per aprire ad esempio la form Customer Card (21) in modalità inserimento
basta definire una variabile WSH di tipo CodeUnit che faccia riferimento alla
CodeUnit WindowsScripHost e utilizzare il seguente codice:
FORM.RUN(21);
WSH.SendKeys('{F3}');ShellSendKeys(Keys : Text[30]);