WebBlock, Script d'esecuzione

 Premessa
L'utilizzo di queste funzionalità richiede un minimo di pratica in materia di programmazione di base. Se non avete alcuna familiarità e non avete mai avuto modo di provare, il vostro sito web - la vetrina principale della vostra attività - non è certo l'ideale per iniziare. Rivolgetevi ai nostri esperti che vi assisteranno nella realizzazione del vostro progetto.
 
 Introduzione
Lo script d'esecuzione associato al WebBlock vi permette di definire un codice VBScript da eseguire alla sottoscrizione del formulario. Potete utilizzare le operazioni di base del linguaggio VBScript come :
- le operazioni di calcolo numerico (+, -, *, ecc.)
- le operazioni di concatenazione dei caratteri.
- le funzioni di base del linguaggio come Len(), Trim(), ecc.
- le istruzioni algoritmiche come If/Else/End If, ecc.

IMPORTANTE : Per far sì che il codice sia eseguito all'invio del formulario, dovrete imperativamente utilizzare un tasto di invio di tipo "Invio ed esecuzione di Script".

Notate, inoltre, che non potete effettuare operazioni sui controlli di Data/Ora (recuperare i valori, definire i valori ecc.).

Per modificare i valori associati ai controlli dei formulari disponete di due tipi di funzioni GetItemValue() e SetItemValue().

Nota generale: Il nome dei controlli non è sensibile a maiuscole e minuscole; questi corrispondono ai nomi specifici nelle pagine di modifica delle proprietà.
 
 Funzione GetItemValue( ByVal strItemName )
Descrizione :
Questa funzione rinvia il valore corrente associato ad un controllo o ad un oggetto.

Argomentazione
strItemName : il nome del controllo il cui valore deve essere rinviato.

Note
Questa funzione è compatibile con tutti gli elementi del formulario. Se il controllo è un menu a scorrimento (Combo), il valore rinviato sarà quello dell'elemento selezionato. Se il controllo è una casella da selezionare, il valore associato sarà rinviato ( 1 se il valore non è stato precisato) se la casella è selezionata.
 
 Sub SetItemValue( ByVal strItemName, ByVal varValue )
Descrizione
Questa procedura permette di modificare il valore di un controllo inserito.

Argomentazione
strItemName : il nome del controllo il cui valore deve essere modificato.
varValue : il nuovo valore da associare al controllo.

Note
Essendo, questa, una procedura in senso VBScript (nessun rinvio di valore), necessita l'utilizzo del prefisso "Call".
Questa procedura è compatibile con tutti gli elementi del formulario. Se il controllo è un menu a scorrimento (Combo), il valore selezionato corrisponderà a quello impostato nei pramentri, se presente nella lista. Se il controllo è una casella da selezionare, la casella sarà selezionata se il valore impostato è diverso da zero.
 
 Esempio semplice
Immaginiamo un formulario contenente 3 elementi " Formulario - Zona di Testo", nominati "A", "B" e "C". .
L'utente inserirà dei valori numerici in "A" e "B' e lo script seguente assegnerà il risultato del calcolo A+B nella zona C :

Dim nResult
nResult = GetItemValue("A") + GetItemValue("B")
Call SetItemValue( "C", nResult )

Natate l'utilizzo del prefisso "Call" quando è richiamata la procedura SetItemValue().
 
 Evoluzione dell'esempio con un menu a scorrimento
Riprendiamo l'esempio precedente e aggiungiamo nel WebBlock un menu a scorrimento per scegliere l'operatore di calcolo. Denominiamo la lista "Operator" e utilizziamo la lista di valori che segue :

1##Addizione
2##Sottrazione
3##Moltiplicazione
4##Divisione

In seguito utilizziamo questo codice per lo script di esecuzione :

Dim nOperator, nValue1, nValue2, nResult
nOperator = GetItemValue("Operator")
nValue1 = GetItemValue("A")
nValue2 = GetItemValue("B")
If ( nOperator = 2 ) Then
    '*** Sottrazione
    nResult = nValue1 - nValue2
ElseIf ( nOperator = 3 ) Then
    '*** Moltiplicazione
    nResult = nValue1 * nValue2
ElseIf ( nOperator = 4 ) Then
    '*** Divisione
    nResult = nValue1 / nValue2
Else
    '*** Addizione
    nResult = nValue1 + nValue2
End If
Call SetItemValue( "C", nResult )
 
 Evoluzione dell'esempio con un oggetto Testo
L'oggetto Testo, (da non confondere con l'oggetto "Formulario - Zona di Testo") resta invisibile se nessun testo è inserito nelle proprietà. Potete assegnargli un nome come per un elemento del formulario. Se è associata un'azione di navigazione all'oggetto, questa sarà visibile e funzionale solo se un testo sarà stato assegnato all'oggetto.

In seguito, modifichiamo il codice dello script di esecuzione aggiungendo alla fine la linea seguente:

Call SetItemValue( "Result", nResult )

Lanciamo di nuovo il WebBlock: noterete come il risultato del calcolo è visualizzato nella Zona di Testo "C" ma anche nel vostro oggetto Testo !
 
 Con un po' d'immaginazione!
Supponiamo che vendiate termosifoni e che i vari modelli (6) da proporre dipendano dal risultato di un calcolo in funzione della superficie della stanza, della sua altezza, del livello di isolamento e del clima.

Nel vostro formulario, dopo alcuni testi descrittivi, inserite :
    - 2 oggetti "Formulario - Zona di Testo" per scegliere la superficie della stanza e l'altezza (approfittate per limitare la scelta, ad esempio ad una superficie compresa tra 10 e 70m2, altezza tra 2 e 3 metri).
    - 2 oggetti "Formulario - Menu a scorrimento" per selezionare un tipo di isolamento "Eccellente/Medio/Scarso" e un'area geeografica "Montagna/Collina/Mare"

In una cella create 6 oggetti testo (Denominati Termosifone1 - - - Termosifone6) i cui testi sono di base vuoti, e selezionate come azione di navigazione "Aprire il componente Carrello Acquisti", "Proporre un elemento" , "Termosifone1" (poi, Termosifone2 per la seconda zona di testo e via di seguito). Dal momento che i testi sono vuoti, nulla viene visualizzato.

Beninteso, inserirete un tasto di Invio del tipo "Invio ed esecuzione di script".

All'avvio il WebBlock viene visualizzato, con il vostro testo descrittivo, le zone di scelta vuote, le liste di scelta e il tasto di Invio, rinominato "Scegli il termosifone adatto alle tue necessità".

Quando l'utente compilerà i campi, selezionabili dalle liste, e cliccherà sul tasto, verrà effettuato un calcolo che avrà come risultato quello di proporre il termosifone più adatto alla selezione dell'utente.

Se sarà l'apparecchio 1 il più appropriato, usate Call SetItemValue( "Termosifone1", "Vi consigliamo il nostro termosifone tipo 1, clicca qui" ), e via di seguito per gli altri risultati.

Dato che avete precedentemente associato la giusta azione di navigazione all'elemento "Termosifone1", fin qui non visibile, al visitatore verrà proposto di passare direttamente alla pagina d'acquisto di un Termosifone perfettametne conforme alle sue necessità!
 
 Alcuni consigli importanti per i formulari che prevedono script d'esecuzione
1) Non utilizzate lo stesso nome per più controlli.

2) Utilizzate dei nomi di controlli semplici e significativi.

3) Pensate a preparare un porcesso di convalida il più corto possibile sui vari campi del formulario, per limitare al minimo il rischio di errore negli script.

4) Testate sistematicamente gli script dopo ogni modifica.

5) Non testate con valori X, mettetevi nei panni di un utente che potrebbe inserire qualsiasi tipo di valore.

6) Costruite gli script a poco a poco e testateli in funzione della misura dello sviluppo portato avanti. Questo vi permetterà di accorgervi subito e più facilmente di eventuali errori.

7) Se riscontrate un errore all'esecuzione e non riuscite a capirne le cause, tornate sui vostri passi e inserite le linee di codice in coda nei commenti, marcando quest'ultime con delle semplici virgolette.
Un'ulteriore tecnica più avanzata è quella di aggiungere un oggetto testo (che potete denominare "Debug" per esempio) al vostro formulario e assegnargli un indicatore di avanzamento a mano a mano che le linee dello script sono eseguite, come in questo esempio :

Call SetItemValue( "Debug", "Tappa 1" )
...
Call SetItemValue( "Debug", "Tappa 2" )
...

Il valore visualizzato vi indicherà in quale passaggio si è interrotto lo script.
 

Aggiungi ai preferiti: http://www.oxatis.com/Help/HelpCenterContent.asp?ActionID=512&TID=1244&MID=5000%7C12000%7C55799&LangID=4
© 2001-2019 Oxatis. Tutti i diritti riservati.