Può essere utile studiare per le nostre pagine ASP, una funzione in Visual Basic Script (d'ora in poi VBS ) capace di fare la conversione Lire/Euro per tabelle, listini ed altro ancora.
Anche se Netscape Navigator non supporta il VBS non ci dobbiamo preoccupare, perchè sarà il Web Server remoto a processare e compilare la nostra funzione. Per fare questo all'interno della pagina ASP identificheremo la funzione di conversione attraverso un TAG SCRIPT particolare:
class="colorato">
<SCRIPT RUNAT="Server" Language="VBScript"</b> >
Codice della Funzione
</SCRIPT>
possiamo osservare che a differenza del normale TAG SCRIPT che conosciamo vi è un argomento in più, specifico per i server che supportano ASP: RUNAT="Server"
il quale indica al server web stesso che prima di passare l'output al browser, questo script venga eseguito dal server, e non dal client.
Il codice della nostra funzione
Una funzione in VBS è una procedura che può essere chiamata all'interno di una pagina ASP ed ha la seguente sintassi:.
Function nome ( <i>lista argomenti</i> ) <i>Corpo della funzione;</i> Espressioni, variabili End Function
nome = è il nome della funzione, nel nostro caso sarà Euro
lista argomenti = è la lista delle variabili che rappresentano gli argomenti che vengono passati alla funzione quando è chiamata e possiede una sintassi articolata:
( byval nome variabili )
byval = ci dice che l'argomento è passato attraverso un valore.
nome variabili = sono le variabili che vengono passate ed utilizzate all'interno della funzione.
Nel nostro caso l'argomento della funzione Euro sarà la somma in lire che vogliamo convertire, ad esempio Euro(ByVal somma_in_lire_da_convertire).
corpo della funzione = contiene le espressioni ed il codice VBS.
Ecco qui sotto il codice della funzione sistemato all'interno di una ipotetica pagina di prova che abbiamo chiamato euro.asp :
<a name="tag"></a> <SCRIPT RUNAT=Server Language=VBScript> FUNCTION <a name="arg"></a> Euro ( <i>ByVal somma_in_lire_da_convertire</i> ) ' Nome e lista degli argomenti della funzione Corpo della funzione ' Valore dell'EURO è pari a 1936.27 somma_in_EURO = somma_in_lire_da_convertire/1936.27 intEuro = int(somma_in_EURO) Cents = CInt((somma_in_EURO - intEuro) * 100) ' Formattazione delle centinaia If Cents = 0 Then strCents = "00" ElseIf Cents< 10 Then strCents = "0" & Cents Else strCents = CStr(Cents) End If ' Inizializzazione dell'EURO strEuro = "" ' Determinazione dell'EURO While len(CStr(intEuro))> 3 Temp = intEuro mod 1000 If Temp = 0 Then strEuro = "000" & strEuro ElseIf Temp< 10 Then strEuro = "00" & CStr(Temp) & strEuro ElseIf Temp< 100 Then strEuro = "0" & CStr(Temp) & strEuro Else strEuro = CStr(Temp) & strEuro End If strEuro = "." & strEuro intEuro = (intEuro - Temp) / 1000 Wend ' Il simbolo ¤ lo potete trovare premendo alt+0128 sulla tastiera ' (se avete la <a href="http://www.microsoft.com/italy/euro/" target="_blank"> patch dei font per l'Euro</a> fornita da Microsoft) strEuro = CStr(intEuro) & strEuro Euro = "Euro " & strEuro & "." & strCents END FUNCTION </SCRIPT> <HTML> <HEAD><TITLE>Esempio di Funzione in VBS</TITLE></HEAD> <BODY> Testo della pagina, all'interno del quale posso utilizzare la mia funzione Euro() vedi sotto alcuni esempi. <P> Il valore di Lire 100.000 è pari a <%=Euro(100000)%></P> </BODY> </HTML>
Se avete un pò di pratica con il Visual Basic od il Basic, non vi sarà difficile riuscire a capire il codice sopradescritto.
Come utilizzarla nelle nostre pagine ASP ?
Una volta inserito il TAG SCRIPT con la nostra funzione in testa alla pagina ASP che dobbiamo produrre, possiamo utilizzare la funzione ogni qualvolta lo desideriamo all'interno della pagina, ad esempio:
Codice HTML/ASP:
<P> Il valore di Lire 100.000 è pari a <%=Euro(100000)%></P>
Output sul client dopo che la pagina è stata processata dal server:
Il valore di Lire 100.000 è pari a Euro 51.65
oppure se stiamo sfogliando la tabella del nostro database:
Codice HTML/ASP:
.... Connessione al database (per maggiori informazioni)
<TABLE> <% Do While not RS.EOF %> <TR> <TD>Il prezzo del prodotto in lire è<%= RS("prezzi_in_lire") %> </TD> <TD>Il prezzo del prodotto in Euro è<%=Euro(RS("prezzi_in_lire")) %> </TD> </TR> <% rs.MoveNext Loop %> </TABLE>
Avremo una tabella formattata automaticamente con i prezzi in Lire ed in Euro, con un notevole risparmio di tempo e di spazio.
Difatti il nostro catalogo merci non dovrà essere aggiornato sul database per i nuovi valori in Euro, ma solamente al momento della sua interrogazione via ASP.
Sfruttando i Serve-Sider-Include possiamo inserirla all'interno della nostra pagina in questo modo:
<!--#include virtual="/scripts/euro.inc"-->
Il file euro.inc conterrà il TAG SCRIPT, con all'interno il codice della funzione.
Ovviamente a partire da questo semplice esempio è possibile creare nuovi moduli, in modo da facilitare la conversione in più valute, funzionalità molto comoda ai tempi dell'Euro e dell'Europa unita.