Альтернативный вариант ввода и записи данных в VFP
« Назад Замечание. Ввод и отображение данных можно выполнить, используя взамен свойства Value свойство ControlSource полей ввода формы. Например, добавив в форму новое свойство-массив aAuthor(4) и в качестве источников данных для полей AuthorId, Author, InputDate и Information указать соответственно элементы aAuthor(1), …, aAuthor(4) массива (рис. 2.22). Рис. 2.22. Источник данных – элемент массива При этом несколько изменятся код рассмотренных выше обработчиков и метода: && Обработчик события Init формы AuthorEdit && … if not Used('Authors') then … This.aAuthor = "" return endif… with This if oPr = 'new' then && Новая запись … scatter memo to .aAuthor blank calculate Max(AuthorId) to .aAuthor(1) go recOld .aAuthor(1) = .aAuthor(1) + 1 .aAuthor(3) = Date( ) && Текущая дата else && Редактирование записи Caption = 'Редактирование записи' scatter memo to .aAuthor endif endWith && Метод CheckFields формы AuthorEdit && for ind = 1 to 3 if Empty(ThisForm.aAuthor(ind)) then MessageBox('Заданы не все данные!') return .F. endif next && Обработчик события Click кнопки && local selectedDate do (appPath + 'Prgs\OleCalendar') with ThisForm.aAuthor(3), selectedDate if not Empty(selectedDate) then ThisForm.aAuthor(3) = selectedDate ThisForm.InputDate.Refresh endif В обработчике события Click кнопки "Сохранить" вместо команды INSERT – SQL появятся две команды: append blank gather from .aAuthor memo а вместо команды REPLACE – команда gather from .aAuthor memo |