Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
VBScript.doc
Скачиваний:
0
Добавлен:
04.01.2020
Размер:
259.07 Кб
Скачать

27

Учебник по vbScript

Dynamik HTML

Что такое VBScript

VBScript (Visual Basic Scripting Edition) - это упрощенная версия Visual Basic. Не имея таких широких возможностей, как исходный Visual Basic, он, тем не менее является мощным и простым в использовании средством, которое может использоваться для "оживления" вашей WEB-страницы. Если вы уже знакомы с Visual Basic или Visual Basic for Applications, вы найдете, что работа в VBScript очень проста и необычайно эффективна. Не смущайтесь, если вы не работали с другими версиями Visual Basic. VBScript очень прост в изучении, даже для новичков.

  • Вставка сценария на VBScript в Web-страницы. вы научитесь добавлять сценарий на VBScript на страницу, а также узнаете различные методы для связи кода сценария и HTML.

  • Работа с переменными. Что значит язык без переменных? Здесь вы узнаете как определять и использовать переменные в ваших программах сценария.

  • Объекты VBScript. Апплеты Java и элементы управления ActiveX расширяют возможности HTML. В течение этого урока вы узнаете, как связывать эти объекты с помощью языка VBScript.

  • Управляющие операторы VBScript. Условные переходы и циклы - предмет данного урока.

  • Использование VBScript при создании форм. С помощью языка VBScript вы можете проверять формы перед отправкой. Вы увидите это в пятом уроке.

Упражнения шаг за шагом

Урок 1. Вставка сценария на VBScript в Web-страницы

Языки сценария, такие как Java Script и VBScript, созданы как расширение для HTML. Броузер получает сценарий вместе с остальной частью Web-страницы. именно броузер должен проанализировать и выполнить сценарий. В HTML был включен тэг, используемый для внедрения сценария на страницу, тэг - <SCRIPT>.

Тэг <SCRIPT>

Сценарий на странице должен располагаться внутри пары тэгов <SCRIPT> и </SCRIPT>. Пример показан ниже:

<HTML> <HEAD> <TITLE>Работа в VBScript</TITLE> <SCRIPT LANGUAGE="VBSCRIPT">     MsgBox "Добро пожаловать на мою страницу!" </SCRIPT>

Открывающий тэг включает аргумент LANGUAGE, который указывает используемый язык сценария.  Он необходим из-за того, что существует несколько языков сценария. Без указания значения этого аргумента браузер не будет знать, на каком из них написан сценарий (по умолчанию это Java Script).

Хотя принципиально вы можете распределить сценарий по всему документу, используя такую конструкцию, обычно сценарий располагается одним большим блоком  в начале или в конце документа. Это облегчает его обработку и адресацию внутри документа.

Работа с несовместимыми браузерами

Не все браузеры поддерживают языки сценария. Некоторые поддерживают только  Java Script. Только Microsoft Internet Explorer поддерживает VBScript. Те браузеры, которые не поддерживают сценарий, воспринимают его как текст и отражают в окне как часть страницы. Вряд ли это является осуществлением вашей мечты. Простым способом для решения этой проблемы является заключение сценария в тэги комментария (<!-- и -->). Ниже показан тот же пример с применением тегов комментария.

<HTML> <HEAD> <TITLE>Работа в VBScript</TITLE> <SCRIPT LANGUAGE="VBSCRIPT"> <!--     MsgBox "Добро пожаловать на мою страницу!" --> </SCRIPT> </HEAD> </HTML>

Теперь, если просматривать страницу браузером, не поддерживающим VBScript, он просто проигнорирует эту часть страницы, не отображая ничего на экране.

Первое упражнение по языку VBScript

Лучший способ выучить любой язык - работать с ним, так что убедимся в этом с помощью упражнения 1, в котором вы научитесь вставлять код сценария на страницу. Следуйте инструкциям для создания вашей первой страницы на VBScript.

Упражнение 1: вставка сценария на VBScript на страницу

В этом упражнении вы создадите документ HTML и вставите туда простой сценарий для ответа на событие, порожденное щелчком на кнопке. Вам нужно быть знакомым с созданием и проверкой документов HTML.

Создание документа HTML

  • Откройте текстовый редактор и наберите там следующий текст:

<HTML> <HEAD> <TITLE>Работа в VBScript: Упражнение 1</TITLE> </HEAD> <BODY>   <H1>Пример работы в VBScript</H1>   <P>Это первое упражнение по работе в VBScript. Нажмите     на кнопку для получения сообщения.</P>   <FORM name="frmExercise1">     <INPUT TYPE="Button" Name="cmdClickMe" VALUE="Нажми меня">   </FORM> </HEAD> </HTML>

  •   Сохраните файл и протестируйте его, запустив в Internet Explorer. Результатом будет такая страница.

  • Попробуете "нажать" на кнопку Нажми меня. Случилось что-нибудь?

Теперь добавим сценарий для получения ответа от кнопки Нажми меня. Новая версия этого упражнения находится в файле p0001a.htm.

Добавление сценария

  • Вновь откройте документ, созданный в части 1. Измените его, добавив выделенные строки:

<HTML> <HEAD> <TITLE>Работа в VBScript: Упражнение 1</TITLE> </HEAD> <BODY>   <H1>Пример работы в VBScript</H1>   <P>Это первое упражнение по работе в VBScript. Нажмите     на кнопку для получения сообщения.</P>   <FORM name="frmExercise1">     <INPUT TYPE="Button" Name="cmdClickMe" VALUE="Нажми меня">     <SCRIPT FOR="cmdClickMe" EVENT="onClick" LANGUAGE="VBSCRIPT">         MsgBox "Добро пожаловать на мою страницу!"     </SCRIPT>   </FORM> </HEAD> </HTML>

Сохраните файл и загрузите снова в Internet Explorer. Опять щелкните на кнопке. Результат будет примерно таким.

Как это работает

Рассмотрим три строки в коде, которые мы добавили. Мы хотим, чтобы вы имели твердую уверенность в том, что делает сценарий на VBScript и как он это делает. Первая строка определяет место, где будет находиться сценарий. Агумент FOR определяет, что данный сценарий создан для кнопки под названием cmdClickMe. Это название кнопки мы дали внутри тэга <INPUT>. Аргумент EVENT указывает на то, что сценарий должен начать работу при "нажатии" кнопки (щелчке на ней). Аргумент LANGUAGE определяет язык для этого модуля  -- VBScript.

    <SCRIPT FOR="cmdClickMe" EVENT="onClick" LANGUAGE="VBSCRIPT">

Вторая строка - единственная строка на  VBScript в этом документе. Функция MsgBox просто показывает диалоговое окно сообщения. О ней вы узнаете больше несколько позже. Третья строка обозначает конец сценария.

В предыдущей части мы просто вставили модуль VBScript посте тега HTML, отвечающего за появление кнопки. Этот метод работает, но его редко используют. HTML и сам по себе труден для восприятия. Чередование HTML и сценария приведет к еще большей путанице. Гораздо лучше будет, если поместить весь сценарий в одном месте документа. Следующие инструкции помогут вам это сделать. Полная версия данной части упражнения находится в файле p0001b.htm.

Лучший метод для внедрения VBScript

  • Откройте созданный в прошлой части документ и удалите строки, которые вы только что добавили:

    <SCRIPT FOR="cmdClickMe" EVENT="onClick" LANGUAGE="VBSCRIPT">         MsgBox "Добро пожаловать на мою страницу!"     </SCRIPT>

  • Измените документ, добавив выделенные строки, показанные ниже:

    <HTML>     <HEAD>     <TITLE>Работа в VBScript: Упражнение 1</TITLE>     <SCRIPT LANGUAGE="VBSCRIPT">     <!--            Sub cmdClickMe_onclick()         MsgBox "Добро пожаловать на мою страницу!"       End Sub     -->     </SCRIPT>     </HEAD>     <BODY>       <H1>Пример работы в VBScript</H1>       <P>Это первое упражнение по работе в VBScript. Нажмите         на кнопку для получения сообщения.</P>       <FORM name="frmExercise1">         <INPUT TYPE="Button" Name="cmdClickMe" VALUE="Нажми меня">       </FORM>     </HEAD>     </HTML>

Сохраните файл и загрузите его в Internet Explorer. Когда вы щелкните на кнопке Нажми меня, результат будет тем же, что и раньше.

Как это работает

В данном случае раздел сценария начинается с того же тега <SCRIPT>. В центре этого сценария есть три строки, "оживляющие" нашу страницу. Первая строка объявляет процедуру под названием cmdClickMe_onClick (так мы назвали кнопку Click Me). Процедуры такого типа известны как программы обработки событий. Событием в данном случае является "нажатие" кнопки пользователем. Программа обработки данного события будет выполняться при каждом нажатии этой кнопки.

Sub cmdClickMe_OnClick

Во второй строке мы увидим уже знакомую функцию MsgBox. Третья строка определяет конец процедуры.

Не останавливайтесь сейчас надолго на деталях, вы еще увидите их в дальнейших примерах.

Резюме

Вот вы и создали свою первую страничку, в которую внедрили сценарий на языке  VBScript. За время ее создания вы узнали:

  • как добавлять сценарий на страницу;

  • какие есть способы для создания страниц, на которых HTML и VBScript работают вместе;

  • как вы можете располагать модули VBScript внутри комментариев на странице.

На следующем уроке вы узнаете, как работать в VBScript с переменными.

Урок 2. Работа с переменными

Переменная - это помеченная область в компьютерной памяти, которую вы можете использовать для сохранения данных во время выполнения сценария. Вы можете использовать переменные для :

  • сохранения введенной пользователем информации;

  • сохранения данных, возвращенных функциями;

  • сохранения результатов вычислений;

Объявление переменных

Есть два метода задания переменных в VBScript, явный и неявный. Обычно переменные задаются явно, с помощью оператора Dim:

Dim Name

Эта конструкция задает переменную Name. Вы также можете задать несколько переменных в одной строке, как это показано ниже, но лучше каждую переменную объявить отдельно.

Dim Name, Address, City, State

Переменные могут быть заданы неявно, просто появлением имени переменной внутри сценария. Это не рекомендуется, так как приводит к возможным ошибкам и делает сценарий более сложным для отладки.

Вы можете сделать так, чтобы интерпретатор требовал явного задания переменных с помощью конструкции Option Explicit в начале сценария. Любая переменная, не заданная явно, будет интерпретирована как ошибочная.

Правила для названия переменных

При выборе названия для переменно используйте следующие правила:

  • оно должно начинаться с буквы;

  • оно не должно содержать пробелов;

  • оно должно быть уникальным внутри своей сферы влияния. О сферах влияния будет сказано позже в этом уроке;

  • оно не должно содержать больше 255 символов;

Варианты и подтипы

В VBScript есть лишь один тип данных, названный вариантом. Варианты могут хранить данные различного типа. Типы данных, которые могут сохранятся в варианте, называются подтипами. В таблице ниже описаны подтипы, поддерживаемые VBScript.

 

Подтип

Описание

 

Boolean

True или False

Byte

Целое число от 0 до 255

Currency

Денежные значения

Date

Дата и время

Double

Вещественное число двойной точности

Empty

Значение, хранимое вариантом до передачи ему данных

Error

Номер ошибки

Integer

Длинное целое от -32768 до 32767

Long

Крайне длинное целое от -2147483648 до 2147483647

Null

Неинтерпритируемые данные

Object

Объекты

Single

Вещественное обычной точности

String

Строковая переменная

 

 Присваивание значений

Присвоить значение переменной вы можете с помощью следующей конструкции:

Имя_переменной = значение

Например: Name = "Larry Laffer" HoursWorked = 50 OverTime = True

Сферы влияния переменных

Сфера влияния переменных определяет, где переменная может быть использована в сценарии. Сфера влияния переменной определяется местом ее объявления. Если переменная объявлена внутри процедуры, она называется внутренней переменной процедуры и может быть использована только внутри процедуры. Если переменная объявлена вне процедур, она становится глобальной и может быть вызвана и использована в любом месте сценария.

Следующий пример показывает объявление переменных обоих видов:

<SCRIPT>     Dim counter     Sub cmdButton_onClick()         Dim Temp     End Sub </SCRIPT>

Переменная counter -- глобальная переменная. Она может использоваться в течение всей работы сценария. Переменная temp существует лишь внутри процедуры cmdButton_onClick.

Константы

VBScript поддерживает массивы. Объявляется массив с помощью операнда Dim, так же, как и переменные.

Dim States(50)

Эта конструкция создает массив, содержащий 51 элемент. Почему 51, спросите вы. Ответ состоит в том, что все массивы в VBScript начинаются с нулевого элемента, а число в скобках определяет номер последнего элемента массива.

Значения элементам массива присваиваются также, как любым другим переменным, но за именем массива в скобках должен стоять номер элемента:

States(5) = "California" States(6) = "New York"

Массив может быть многомерным -- VBScript поддерживает до 60 измерений. Ниже показано задание двухмерного массива для хранения названий 51 штата и, например их столиц:

Dim States(50,1)

Теперь для присваивания значений внутри массива вы должны воспользоваться номерами по обоим измерениям:

States (6, 0) = "New York" States (6, 1) = "Michigan"

VBScript также поддерживает динамические массивы - массивы, размер которых может изменяться по ходу сценария. Такие массивы задаются  без указания размера в скобках:

Dim Customers( )

Для изменения размера массива используется конструкция ReDim

ReDim Customers (100)

Размер массива может изменяться неограниченное количество раз. Для сохранения информации, которая в нем уже есть, используется ключевое слово Preserve.

ReDim Preserve Customers (100)

Второе упражнение по языку VBScript

В этом упражнении мы создадим страницу, на которой производится простое вычисление на основе цен на продукцию, ее количества и комиссионных. При этом вы узнаете больше об использовании переменных в VBScript. В этом упражнении вы создадите документ HTML, содержащий сценарий, который получит информацию от пользователя, осуществит на ее основе вычисления и выдаст на страницу результат. Полная версия этой части упражнения находится в файле p0002а.htm.

Создание документа

  • Откройте текстовый редактор и вставьте следующий код HTML:

    <HTML>     <HEAD>     <TITLE>Работа в VBScript: Упражнение 2</TITLE>     </HEAD>     <BODY>     <H1>Ваше второе упражнение по VBScript</H1>     <P>Переменные могут использоваться, чтобы сохранять и управлять значениями.         Просмотреть демонстрацию этого можно введя количество и цену единицы товара         в поля ниже и нажав кнопку "Вычислить стоимость". </P>     <FORM NAME="frmExercise2">         <TABLE>             <TR>                 <TD><B>Количество:</B></TD>                 <TD><INPUT TYPE="Text" NAME="txtQuantity" SIZE=5></TD>             </TR>             <TR>                 <TD><B>Цена устройства:</B></TD>                 <TD><INPUT TYPE="Text" NAME="txtUnitPrice" SIZE=5></TD>             </TR>         </TABLE>         <BR>         <INPUT TYPE="Button" NAME="cmdCalculate" VALUE="Вычислить стоимость">     </FORM>     </BODY>     </HTML>

  • Сохраните файл и загрузите его в Internet Explorer. Результат будет таким.

В этой части добавим сценарий, для того чтобы "нажатие" кнопки Вычислить стоимость приводило к ее вычислениям. Полная версия новой части упражнения находится в файле p0002b.htm.

Добавление VBScript

  • Вновь откройте созданный документ. Измените его, добавив выделенные строки.

Заметим что апострофы ( ' ) обозначают комментарий, а знак ( _ ) на конце строки обозначает, что следующая строка будет продолжена текущей.

    <HTML>     <HEAD>     <TITLE>Работа с VBScript: Упражнение 2</TITLE>     <SCRIPT LANGUAGE="VBScript">     <!--Эта инструкция добавляется для браузеров, не понимающих модули VBScript.         Option Explicit     Sub cmdCalculate_OnClick()         Dim AmountofTax         Dim CRLF         Dim Message         Dim Subtotal         Dim TABSPACE         Dim TAX_RATE         Dim TotalCost

    'Присваивание значений константам      TAX_RATE = 0.06      CRLF = Chr(13) & Chr(10)      TABSPACE = Chr(9)

    'Вычисления      Subtotal = document.frmExercise2.txtQuantity.value _       * Document.frmExercise2.txtUnitPrice.value      AmountofTax = Subtotal * TAX_RATE      TotalCost = Subtotal + AmountofTax

    'Отражение результатов.      Message = "Общее количество для вашего ввода:"      Message = Message & CRLF & CRLF      Message = Message & "Промежуточная сумма:" & TABSPACE & "$" & Subtotal & CRLF      Message = Message & "Налог:" & TABSPACE & "$" & AmountofTax & CRLF      Message = Message & "Итого:" & TABSPACE & "$" & TotalCost      MsgBox Message,,"Итог"     End Sub     -->     </SCRIPT>     </HEAD>     <BODY>     <H1>Ваше второе упражнение по VBScript</H1>     <P>Переменные могут использоваться, чтобы сохранять и управлять значениями.         Просмотреть демонстрацию этого можно введя количество и цену единицы товара         в поля ниже и нажав кнопку "Вычислить стоимость". </P>     <FORM NAME="frmExercise2">         <TABLE>             <TR>                 <TD><B>Количество:</B></TD>                 <TD><INPUT TYPE="Text" NAME="txtQuantity" SIZE=5></TD>             </TR>             <TR>                 <TD><B>Цена устройства:</B></TD>                 <TD><INPUT TYPE="Text" NAME="txtUnitPrice" SIZE=5></TD>             </TR>         </TABLE>         <BR>         <INPUT TYPE="Button" NAME="cmdCalculate" VALUE="Вычислить стоимость">     </FORM>     </BODY>     </HTML>

  • Сохраните файл и загрузите его в Internet Explorer. Введите 100 в поле Количество и 10 - в поле Цена устройства. Щелкните на кнопке Вычислить стоимость. Результат будет таким.

Как  это работает

Сразу видно, что этот сценарий намного более запутан, чем в Упражнении 1. Не бойтесь его размера. Как и в предыдущем уроке, мы пройдем его шаг за шагом.

После открывающего тега <SCRIPT> и комментария HTML вы увидете такую строку: Option Explicit Помните, что это значит? Эта конструкция обязывает вас объявлять заранее все переменные. Дальше мо создаем процедуру для обработки события OnClick на кнопке cmdCalculate. Sub cmdCalculate_OnClick Затем мы объявляем семь переменных, три из которых мы используем как константы. Последние можно отличить: они записаны заглавными буквами. В VBScript регистр не имеет значения (в отличие от JavaScript и XML). Мы используем смену регистра для упрощения чтения. Какие это переменные, внутренние или глобальные? Внутренние, так как они объявлены внутри процедуры. В VBScript все, что следует за апострофом до конца строки, является комментарием и игнорируется при интерпретации сценария. Комментарии могут занимать всю строку или ее часть. Последние обычно используются для объяснения, что происходит только на данной строке.

' Присваивание значений константам

В следующих строках константам передаются значения. Chr ( ) - это встроенная функция VBScript, возвращающая символ, имеющий заданный код ASCII. Коды13, 10 и 9 обозначают, соответственно, возврат каретки, переход на новую строку и табуляцию.

CRLF = Chr(13) & Chr(10) TABSPACE = Chr(9) Следующая строка показывает , как данные передаются из формы в сценарий и как затем обрабатываются. Два поля нашей формы названы txtQuantity и txtUnitPrice . Форму мы назвали frmExercise2 . Здесь мы обращаемся к нашему документу, затем к форме, далее к текстовому полю и, наконец, к его значению value. Value содержит то, что пользователь вводит в данное поле на странице. Знак * обозначает, что необходимо перемножить значение одного поля на значение другого.

ПРИМЕЧАНИЕ.    Обычно используемые операнды VBScript: + для сложения, - для вычитания, * для перемножения и / для деления.

Результат этого вычисления  будет сохранен в переменной Subtotal. Дальше мы выполняем некоторые дополнительные вычисления. И, наконец, результат этих вычислений показывается в диалоговом окне, созданным с помощью функции MsgBox. Знак & используется для связывания двух строковых переменных.

Как и на предыдущем уроке, не за цикливайтесь на деталях. Со временем вы все поймете.

Резюме

Вот и закончилось упражнение 2. Вы создали WEB-страницу, которая взаимодействует с пользователем, получая от него данные, выполняя вычисления и возвращая ему результат, то есть делает то, что и большинство приложений. Вы узнали:

  • типы переменных, поддерживаемых VBScript;

  • как задавать и использовать переменные в сценарии;

  • как компенсировать отсутствие констант в VBScript;

  • как вставлять комментарий в VBScript;

На следующем уроке мы рассмотрим объекты. Вы узнаете, что это такое и как они используются в VBScript.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]