VBScript

Język  VBScript (Visual Basic Scripting Edition) jest podzbiorem języka Visual Basic, podobnie jak  Visual Basic for Applications. Należy do dużej rodziny języków Basic, znanej jeszcze z komputerów 8 bitowych. Jego prosta składnia i możliwość wykorzystania bibliotek obiektowych powodują, że może być użytecznym narzędziem, zarówno dla osób rozpoczynających programowanie (język tzw. pierwszego kontaktu) jak i dla zaawansowanych programistów.

 VBScript  najczęściej  używany jest w środowiskach:

¡      Windows Script Host (WSH - Host skryptów systemu Windows),

¡      Microsoft Internet Explorer (IE – przeglądarka internetowa firmy Microsoft),

¡      Active Server Pages (ASP),

¡      Microsoft Outlook (formularze).

 W naszych ćwiczeniach wykorzystamy go w Microsoft Internet Explorer, zagnieżdżając kod w HTML.

Edytory

Do tworzenia i uruchamiania skryptów w języku Visual Basic Script nie trzeba żadnych dodatkowych narzędzi, oprócz systemowych. Edycję kodów źródłowych możemy przeprowadzić używając dowolnego edytora ASCII lub ANSI, np. notatnika. Warto jednak zaopatrzyć się w edytor podający bieżące położenie kursora (numer wiersza – przynajmniej, a może jeszcze numer kolumny). Jest to przydatne w przypadku wystąpienia błędów w uruchamianych skryptach. Interpreter podaje wtedy lokalizację błędu używając numeru wiersza i kolumny.

Edytory dla programistów oferuje często dodatkowe udogodnienia, np. wyróżniają różnymi kolorami słowa kluczowe języka programowania, komentarze, łańcuchy znakowe. Z niektórych edytorów, bezpośrednio z ich środowiska można uruchamiać redagowane skrypty. Gdzie można nabyć takie narzędzia? Najlepiej w Internecie. Sš to często programy typu freeware lub shareware.

Przykłady edytorów do pisania kodów źródłowych: 

Nazwa

Dostępny pod adresem:

Typ

VBSEditor

www.koansoftware.com

freeware

Proton

meybohm.de

freeware

TextPad

textpad.com

shareware

PrimalScript

www.sapien.com/primalscript

shareware

UltraEdit

www.ultraedit.com

shareware

 

Formularz HTML

Kod źródłowy VBScript umieszczamy między znacznikami <script language="VBScript"> i </script>. Można jeszcze dodać znaczniki <!-- i -->, będące komentarzami HTML, w przypadku gdy przeglądarka internetowa nie interpretuje kodu VBScript. W przykładzie, w kodzie VBScript napisana jest procedura Dane(), pobierająca i przetwarzająca dane z formularza.

<html>

    <head>

        <script language="VBScript">

        <!--

        ‘ tu wstawiamy kod VBScript

            Sub Dane() ‘ nagłówek procedury

        If formularz.nazwisko.value = "" Then

                         MsgBox "Proszę podać swoje imię i nazwisko!"

                  Else 

                       MsgBox "Imię i nazwisko: " & formularz.nazwisko.value, Vbinformation,  "Dane"

                  End If

            End Sub  koniec procedury VBScript

        -->

        </script>

    </head>

    <body>

        <form name="formularz">

        Wpisz swoje imię i nazwisko:<br>

        <input type="text" name="nazwisko">

        <input type="button" name="przycisk" value="Zatwierdź" onClick="Dane()">

    </body>

</html

Formularz budujemy używając znacznika <form name="formularz">, gdzie “formularz”  to nazwa formularza, której używamy w procedurze Dane().

Na formularzu umieściliśmy dwa formanty (elementy):

¡        okno tekstowe o nazwie nazwisko:

<input type="text" name="nazwisko">

¡        przycisk o nazwie przycisk i  napisie Zatwierdź:

<input type="button" name="przycisk" value="Zatwierdź" onClick="Dane()">

Kliknięcie na przycisku uruchamia procedurę Dane(): onClick = "Dane()".

 

Formularz HTML z przyciskami radiowymi

<html>

    <head>

        <script language="VBScript">

        <!--

            Const PI = 3.1415926

             Const” deklaracja wartości stałej

 

            Sub Okrag()

              r = formularz.promien.value

              If r = "" Then

                MsgBox "Proszę podać promień!"

             Else

                 ob = 2*PI*r*r

                 MsgBox "Obwód wynosi: " & ob, Vbinformation,  "Okršg

             End If

          End Sub

 

        Sub Kolo()

          r = formularz.promien.value

          If r = "" Then

                MsgBox "Proszę podać promień!"

          Else

             pole = PI*r*r

             MsgBox "Pole wynosi: " & pole, Vbinformation,  "Koło" 

          End If

        End Sub

 

            Sub Kula()

                 r = formularz.promien.value

                 If r = "" Then

                    MsgBox "Proszę podać promień!"

                Else

                    pole = 4*PI*r*r

                    obj = 4/3*PI*r*r*r

                   MsgBox "Pole wynosi: " & pole & Vbcrlf & "Objętoœć wynosi: " & obj, Vbinformation,  "Kula" 

                End If

            End Sub

         -->

        </script>

    </head>

 

    <body>

        <form name="formularz">

        Okršg, koło lub kula.<br><br>

        Podaj promień:<br>

        <input type="text" name="promien" size="10" value=0> <br>

        <input type="radio" name="wybor" value="okrag" onClick = okrag()> okršg <br>

        <input type="radio" name="wybor" value="kolo" onClick = kolo()> koło <br>

        <input type="radio" name="wybor" value="kula" onClick = kula()> kula <br>

    </body>

</html>

 

Tym razem, oprócz pola tekstowego,  na formularzu umieœciliœmy 3 przyciski “radiowe”:

<input type="radio" name="wybor" value="okrag" onClick = okrag()> okršg <br>

<input type="radio" name="wybor" value="kolo" onClick = kolo()> koło <br>

<input type="radio" name="wybor" value="kula" onClick = kula()> kula <br>

 

Przyciski te posiadają wspólną nazwę  wybor, natomiast różne wartości: okrag, kolo, kula. Kliknięcie na którymœ uruchamia odpowiednią procedurę, np.: onClick = okrag(). Wybór danego przycisku anuluje poprzedni wybór (dlatego przyciski takie nazywamy radiowymi).

 Formularz HTML z listš wyboru

 <html>

    <head>

        <script language="VBScript">

        <!--

            Const PI = 3.1415926

                 Sub oblicz()

                      r = formularz.promien.value

                     If r = "" Then

                        MsgBox "Proszę podać promień!"

                  Else

                       Select Case formularz.wybor.value

                        ‘ instrukcja wyboru

                      Case "okrag"

                            ob = 2*PI*r*r

                            MsgBox "Obwód wynosi: " & ob, Vbinformation,  "Okršg

                      Case "kolo"

                           pole = PI*r*r

                           MsgBox "Pole wynosi: " & pole, Vbinformation,  "Koło" 

                     Case "kula"

                         pole = 4*PI*r*r

                        obj = 4/3*PI*r*r*r

                        MsgBox "Pole wynosi: " & pole & Vbcrlf & "Objętoœć wynosi: " & obj, Vbinformation,  "Kula" 

                    End Select ‘ koniec instrukcji wyboru

                   formularz.wybor.value=""

              End If

           End Sub

           -->

      </script>

    </head>

 <body>

    <form name="formularz">

    Okršg, koło lub kula.<br><br>

    Podaj promień:

    <input type="text" name="promien" size="10" value=0> <br>

    <Select name="wybor" onChange = oblicz()>

        <Option value = ""> Wybierz figurę:

        <Option value = "okrag"> Okršg

        <Option value = "kolo"> Koło

        <Option value = "kula"> Kula

    </Select>

    </body>

</html>

 Formularz zawiera listę wyboru Select z opcjami wartości :

 <Select name="wybor" onChange = oblicz()>

    <Option value = ""> Wybierz figurę:

    <Option value = "okrag"> Okršg

    <Option value = "kolo"> Koło

    <Option value = "kula"> Kula

</Select>

Każdy wybór – zmiana (onChange) wartoœci z listy uruchamia procedurę oblicz(). Procedura z kolei, posługując się wartością odczytaną z listy formularz.wybor.value, wykonuje odpowiednią część instrukcji wyboru. 

 Formularz HTML z polami wyboru

 <html>

    <head>

        <script language="VBScript">

        <!--

            Const PI = 3.1415926

             Sub oblicz()

                  r = formularz.promien.value

                  s = ""

                  If r = "" Then

                        MsgBox "Proszę podać promień!"

                  Else

                        If formularz.okrag.checked Then

                          ob = 2*PI*r*r

                          s = s & "Obwód wynosi: " & ob & Vbcrlf

                End If 

                If formularz.kolo.checked Then

                      pole = PI*r*r

                      s = s & "Pole koła wynosi: " & pole & Vbcrlf

                End If

                If formularz.kula.checked Then 

                      pole = 4*PI*r*r

                      obj = 4/3*PI*r*r*r

                      s = s & "Pole kuli wynosi: " & pole & Vbcrlf & "Objętość kuli wynosi: " & obj

                End If

                    MsgBox s,64,"Wyniki"

          End If

        End Sub

         -->

        </script>

   </head>

     <body>

        <form name="formularz">

        Okrąg, koło lub kula.<br><br>

        Podaj promień:

        <input type="text" name="promien" size="10" value=0> <br>

        <input type="checkbox" name="okrag"> okršg <br>

        <input type="checkbox" name="kolo"> koło <br>

        <input type="checkbox" name="kula"> kula <br>

        <input type="button" name="przycisk" value="Oblicz" onClick="oblicz()">

    </body>

</html>

 Pola wyboru checkbox, pozwalają na jednoczesny wybór kilku opcji (w  odróżnieniu od przycisków radiowych. Procedura oblicz(), wylicza i drukuje odpowiednie wartości, zależnie od stanu pól (checked).

 Język VBScript możemy  wykorzystywać nie tylko do budowania formularzy, lecz do wielu innych działań użytkownika. Powyższe przykłady są jedynie wprowadzeniem w zagadnienie.

Zadanie

Uzupełnić swoją stronę z ramkami (zadanie z poprzedniej lekcji) o podstronę uruchamianą z menu, zawierającą kalkulator walutowy. Kalkulator powinien być podobny do ostatniego przykładu, czyli wykorzystywać formularz z polami wyboru. Zamiast okręgu, koła i kuli zawierać będzie waluty: euro, dolary i czeskie korony. Działanie kalkulatora polegać będzie na przeliczaniu kwoty wyrażonej w wyżej podanych walutach na złotówki (opcjonalnie można również w drugą stronę).