Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Учебное пособие по курсу ИС_итог 04.12.docx
Скачиваний:
47
Добавлен:
11.02.2016
Размер:
5.09 Mб
Скачать

5. LotusScript. Типы и прочие сущности.

Названия переменных, объектов, методов и вызовы синтаксических конструкций не чувствительны к регистру написания букв. Переменные можно декларировать, присваивая им тип, а можно использовать без предварительной декларации, тогда такая переменная будет иметь тип «Вариант», и содержать тот тип, который вы в нее положите. Но отсутствие декларации может вызвать огромное количество непонятных или скрытых ошибок в коде.

5.1. Простые типы.

Есть различные простые типы - строка, числовые типы с различным количеством байт для хранения. Таблица простых типов выглядит так:

Тип

Значения

Размер

Integer

-32,768 до 32,767

2 bytes

Long

-2,147,483,648 до 2,147,483,647

4 bytes

Single

-3.402823E+38до 3.402823E+38

4 bytes

Double

-1.7976931348623158+308 до 1.7976931348623158+308

8 bytes

Currency

-922,337,203,685,477.5807 ДО 922,337,203,685,477.5807

8 bytes

String

Ограничена доступной памятью (но помните при вставке значения в поле документа ограничения на поля текстового типа в 32К)

2 bytes/символ

Для декларации переменной какого-либо типа используется конструкция DIM имя переменной as имя типа, например Dim UserName_ as string присвоение значения делается так - UserName_="Bebebe zuzuzu"

5.2. Сложные типы.

Существуют более сложные конструкции:

Конструкция

Описание

Размер

Array

Массив элементов одного типа. Может быть многомерным до 8 измерений. Каждый из индексов может варьироваться от -32,768 до 32,767.

Декларируется так: Dim имя переменной с массивом (нижняя граница индекса to верхняя граница индекса) as тип данных

Например: Dim my_array(0 to 14) as string

Надо отметить, что массив может быть не только из простых типов, но из сложных, например массив объектов. Массив может быть динамическим, тогда он определяется изначально имеющим некоторое количество элементов и потом может быть переопределен. Например: Redim brdr (0 to 0) as string - это сначала задается динамический массив, потом он переопределяется:

Redim brdr (0 to 8) as string - при переопределении сохраняется тип. Если в массив перед его переопределением уже введены значения элементов, например: Brdr(0)="XXX" Brdr(1)="ZZY" Тогда, переопределяя размерность, необходимо, чтобы заполненные значения не потерялись. Для этого необходимо написать следующее выражение - redim preserve brdr(0 to 10) as string

Доступная память

List

Одномерный массив элементов одного типа, которые вызываются не по индексу, а по уникальным именам. Декларация выглядит так: Dim aaa List As String

Создание нового элемента или присвоение значения существующему: a("jan")="Январь"

Чтобы обратиться к элементу и получить его значение: aaa("jan")

Чтобы проверить наличие элемента в списке можно пользоваться функцией IsElement, If IsElement(aaa("jan")) then

……

End if

Чтобы по элементу получить его название в списке пользуйтесь функцией listTag. Эта функция работает только в цикле forall, который позволяет пробегать по всем элементам списка или массива: Forall a in aaa LastName=ListTag(a) End forall

Для очищения списка или удаления конкретного элемента используется функция Erase aaa(), Erase aaa ("jan")

Вся доступная память

Variant

Этим типом при освоении лучше пользоваться по минимуму. В него можно вставить все, что угодно. Кроме того, если вы начинаете использовать переменную, НЕ ДЕКЛАРИРУЯ ее перед этим, то она по умолчанию имеет именно этот тип. То есть можно сделать так: Dim aaa (0 to 10) as string Aaa(0)=" XXX " Aaa(1)=" ZZY" Tmp=aaa

После чего появится переменная tmp типа Variant, которая будет содержать массив

16 bytes

User-defined data type

Определяемый пользователем тип - может содержать набор элементов разных системных типов. Это аналог record в Pascal или struct в C.

Декларация выглядит так: Type phoneRec name As String areaCode As Integer phone As String * 8 End Type

Перед типом можно указать его вид [ Public | Private ]

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

64K bytes

User-defined class

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

Object reference

Ссылка на объект, который может быть, например, OLE Объектом или объектом Lotus или объектом, написанным пользователем.

Такие ссылки декларируются, как и другие типы, просто вместо имени типа ставится имя объекта - например: Dim doc as NotesDocument

При установке значения ВСЕГДА используется ключевое слово SET: Set doc=new NotesDocument(db)

4 bytes