Замещает данные в текущей записи текущей выбранной таблицы содержимым массива, группы переменных памяти или объекта.
Синтаксис:
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