Команда GATHER

Замещает данные в текущей записи текущей выбранной таблицы содержимым массива, группы переменных памяти или объекта.

Синтаксис:

GATHER FROM ArrayName | MEMVAR | NAME ObjectName
	[FIELDS FieldList | FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton]
	[MEMO]

Параметры:
FROM ArrayName
Задает массив, элементы которого замещают данные в текущей записи. Содержимое элементов массива, начиная с самого первого, замещает содержимое соответствующих полей записи. Первое поле записи замещается содержимым первого элемента массива, второе поле ѕ содержимым второго элемента массива и т.д.
Если в массиве меньше элементов, чем полей в таблице, лишние поля игнорируются. Если в массиве больше элементов, чем полей в таблице, игнорируются лишние элементы массива.
MEMVAR
Задает переменные памяти или массив, откуда данные копируются в текущую запись. Данные передаются из переменной памяти в поле с тем же именем. Если для некоторого поля не существует переменной памяти с тем же именем, содержимое этого поля не замещается.
Совет. Чтобы создать переменные памяти с теми же именами, что и у полей, можно воспользоваться командой SCATTER с предложением MEMVAR или BLANK.
NAME ObjectName
Задает имя объекта, свойства которого носят те же имена, что и поля в таблице. Содержимое каждого поля замещается значением свойства, имеющего одинаковое с полем имя. Если для некоторого поля не существует свойства с тем же именем, содержимое этого поля не замещается.
FIELDS FieldList
Задает поля, содержимое которых замещается содержимым элементов массива или переменных памяти. Замещению подлежит содержимое только тех полей, которые включены в список FieldList.
FIELDS LIKE Skeleton | FIELDS EXCEPT Skeleton
Вы можете выборочно замещать поля содержимым элементов массива или переменных памяти, используя предложения LIKE и/или EXCEPT. Если задать LIKE Skeleton, Visual FoxPro замещает поля, соответствующие шаблону Skeleton. Если задать EXCEPT Skeleton, Visual FoxPro замещает все поля, кроме тех, что соответствуют шаблону Skeleton.
В составе Skeleton допускаются символы подстановки (* и ?). Например, чтобы заменить все поля, имена которых начинаются на букву A или P, используйте команду:
GATHER FROM gamyarray FIELDS LIKE A*,P*
MEMO
Указывает, что содержимое memo-полей также замещается содержимым элементов массива или переменных памяти. Если ключевое слово MEMO опущено, команда GATHER в ходе работы будет пропускать memo-поля. Поля типа General и поля рисунков всегда игнорируются командой GATHER, даже если вы укажете ключевое слово MEMO.

Пример:

* Следующий пример иллюстрирует применение команд SCATTER и
* GATHER. SCATTER копирует содержимое текущей записи в переменные
* памяти, которые затем отображаются в окне, где их можно
* редактировать. Когда вы выйдете из последнего поля, данные будут
* скопированы в текущую запись командой GATHER.

SET TALK OFF
CLOSE DATABASES
OPEN DATABASE (HOME( ) + 'samples\data\testdata')
USE customer	&& Opens Customer table
SCATTER MEMVAR

DEFINE WINDOW menter FROM 5,10 to 15,70 PANEL
ACTIVATE WINDOW menter
@ 1,3   SAY 'Customer: ' GET m.company
@ 3,3   SAY 'Address: ' GET m.address
@ 7,13 SAY 'Press <Esc> to discard changes'
READ
IF LASTKEY( ) != 27
	GATHER MEMVAR
ENDIF
DEACTIVATE WINDOW menter
USE

Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 26.01.2003