Язык Lotus Script. Компоненты языка LotusScript. Построение операторов языка LotusScript, страница 9

Определение данных и доступ к ним

Использование языка LotusScript для работы с данными, содержащимися в документе, резко отличается от использования языка формул для доступа к этим данным.

Поля

В LotusScript поля называют элементами. Когда поле отображается в форме, для этого поля уже определено, какого типа данные оно может содержать (тип данных поля устанавливается разработчиком в окне свойств поля). В макроязыке, известном как среда разработки Notes, на поля всегда ссылаются по их именам, и ссылка на поле возвращает содержимое поля. Если поле содержит список, то возвращается этот список.

Но что касается языка LotusScript, то здесь работа с полями осуществляется иначе. Во-первых, для самого поля тип данных не устанавливается. Поле приобретает тип данных, когда в него помещаются данные или когда оно отображается в интерфейсе пользователя. Во-вторых, все поля трактуются как массивы- одномерные массивы с неизвестным числом элементов (верхняя граница массива неизвестна). Если необходимо сослаться на содержимое поля, ссылайтесь на элемент 0 массива (т.е. поля). Чтобы сослаться на все содержимое поля (независимо от того, представляет ли оно собой один элемент или множество элементов), можно по-прежнему ссылаться на поле по имени.

Для доступа к отдельному элементу поля (даже если в поле содержится один элемент) необходимо ссылаться на поле как на массив.

Пример:

doc.newField (0) = doc.oldField (0)

Если вы ссылаетесь на поле, которое содержит много элементов, как, например, поле множественных значений, то указывайте на отдельный элемент поля с помощью индекса.

Списки

Список является особым видом массива. В LotusScript список — это одномерный массив однотипных элементов. Между списком и массивом существует два отличия. Во-первых, доступ к отдельным элементам списка осуществляется не с помощью индекса, а посредством тега списка. Это строковая величина, представляющая собой имя отдельного элемента. Во-вторых, размер списка можно уменьшать или увеличивать без переопределения списка. Для доступа к элементу списка пользуйтесь тегом списка. Применение списков и тегов списка иллюстрируется в листинге 22.14.

В LotusScript элементы списка могут относиться к разным полям.

Листинг 22.14 - Список и теги списка в языке LotusScript

Dim theList List as String

theList( "Boss" ) = "Jane Doe"

theList( "Secretary" ) = "Fred Flintstone"

theList( "VP Sales" ) = "Mary McCarthy"

theList( "VP Engineering" ) = "Justin Lindstrom"

theList( "Notes Developer" ) = "Michael Hart"

Print theList ( "VP Engineering" ) & " is the Vice President of Engineering")

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

Если необходимо добавить в список еще один элемент, задайте новый элемент списка, присваивая ему уникальный идентификатор. После выполнения следующего оператора список будет содержать шесть элементов:

theList("Web Master") = "Joey Lieber"

Данные типа Variant

Тип Variant — это специальный тип данных. Переменные типа Variant могут содержать данные любых типов, определенных в языке LotusScript, за исключением типов, определяемых пользователем. Эти переменные могут также содержать данные таких типов, которые отсутствуют в LotusScript, например, булевы данные и данные даты/времени. Можно увидеть, что в списке типов данных языка LotusScript отсутствуют как булевы данные, так и данные даты/времени. Как указывалось ранее, булевы данные могут принимать два значения: либо значение true (-1), либо значение false (0).

Работа с датами