Использование языка 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 могут содержать данные любых типов, определенных в языке LotusScript, за исключением типов, определяемых пользователем. Эти переменные могут также содержать данные таких типов, которые отсутствуют в LotusScript, например, булевы данные и данные даты/времени. Можно увидеть, что в списке типов данных языка LotusScript отсутствуют как булевы данные, так и данные даты/времени. Как указывалось ранее, булевы данные могут принимать два значения: либо значение true (-1), либо значение false (0).
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.