|
Else
thisform.command1.enabled=.t. &&Доступна кнопка "Начало" thisform.command4.enabled=.t. && Доступна кнопка "Назад"
Endif
if recno()=reccount()
&&Если номер текущей записи равен числу записей в файле
thisform.command2.enabled=.f. &&Heдоступна кнопка "Конец"
thisform command3.enabled=.f. &&He доступна кнопка "Вперёд"
Else
thisform.command2.enabled=.t. &&Доступна кнопка "Конец"
thisform.command3.enabled=.t. &&Доступна кнопка "Вперёд"
Endif
IF DELETED()
thisform.check1.Value=1
ELSE
thisform.check1.Value=0
Щёлкнуть 2 раза по кнопке Вперёд для вызова окна кода. Это окно имеет 2 раскрывающихся списка: Object и Procedure - для выбора объектов Command 1 и методов Click. Оно позволяет переключаться между всеми процедурами всех объектов одной формы.
За командными кнопками через событие Click Event закреплены процедуры:
а) за кнопкой Начало (Command4):
Go top
if substr(nomp,2,1)<>"1"
Skip
Endif
thisform.txtnomp.refresh()
thisform.txtfamp.refresh()
б) за кнопкой Конец (Command5):
Go bottom
if substr(nomp,2,l)<>""
Skip -1 &&либо go bottom
Endif
thisform.txtnomp.refresh()
thisform.txtfamp.refresh()
в) за кнопкой Вперёд (Command1):
if.not.eof() && if!EOF()
SKIP
IF SUBSTR(nomp,1,1)<>"П"
SKIP -1 && либо go bottom
ENDIF
ENDIF
_screen.ActiveForm.Refresh()
Thisform.bt_update
г) за кнопкой Назад (Command2):
if.not.bof()
Skip-1
IF SUBSTR(nomp,1,1)<>"П"
Skip
Endif
Endif
_screen.ActiveForm.Refresh()
thisform.bt_update
Кнопка "Добавить"
append blank
go bottom
thisform.bt_update &&Переход на метод bt_update
thisform.txtnomp.refresh()
thisform.txtfamp.refresh()
thisform.command8.click &&Вызов кода кнопки "Изменить"
Кнопка "Удалить" (Command7):
*простейший способ: запись удаляется *до выхода из формы
if deleted ()
recall &&восстанавливается текущая запись
else
delete &&логически удаляется текущая запись
pack
endif
_screen. ActiveForm. Refresh
Кнопка "Изменить" (Command8):
public lnam, lfam && Объявление глобальных переменных
thisform.txtNomp.ReadOnly=.F. &&Доступно для ввода значение поля Nomp
thisform.txtFamp.ReadOnly=.F. && Доступно для ввода значение поля Famp
thisform.txtNomp.setfocus && Получение фокуса полем Nomp
&&thisform.txtNomp.enabled=.Т. &&Доступна для ввода значения поля Nomp
&&thisform.txtFamp.enabled=.T. && Доступна для ввода значения поля Famp
thisform.command1.enabled=.F. &&He доступна "Начало"
thisform.command2.enabled=.F. && He доступна "Конец"
thisform.command3.enabled=.F. && He доступна "Вперёд"
thisform.command4.enabled=.F. && He доступна "Назад"
thisform.command5.enabled=.F. && He доступна "Выход"
thisform.command7.enabled=.F. && He доступна "Удалить"
thisform.command9.visible=.T. &&видимa кнопка "Применить"
thisform.command10.visible=.T. &&видима кнопка "Отменить"
thisform.command8.visible=.F. &&He видима кнопка "Добавить"
thisform.command6.visible=.F. &&He видима кнопка "Изменить"
&&глобальным переменным Inam и lfam
&& присваивается новое значение, введенное в соответствующее поле
lnam=thisform.txtnomp.value
lfam =thisform.txtfamp.value
Кнопка "Применить" (Command9):
*Сохранение новых вводимых значений
*Procedure Click
*Сохранение новых вводимых значений после кнопки добавить
thisform.command9.visible=.F. && не видима "Применить" thisform.commandl0.visible=.F. && не видима "Отменить" thisform.command6.visible=.T. && видима "Добавить" thisform.command8.visible=.T. && видима "Изменить"
thisform.txtNomp.ReadOnly=.T. && Не доступно для ввода значение поля Nomp
thisform.txtFamp.ReadOnly =.T. && Не доступно для ввода значение поля Famp
thisform.command7.enabled=.T. &&доступна "Удалить"
thisform.command5.enabled=.T. &&доступна "Выход"
thisform.bt_update && вызов метода bt_update
Кнопка "Отменить" (Command 10):
* Procedure Click
* Отмена сохранения новых вводимых значений
thisform.txtNomp.value=lnam &&присвоение новых значений полям ввода
thisform.txtFamp.value=lfam &&присвоение новых значений полям ввода
thisform.command9.visible=.F. &&не видима "Применить" thisform.commandl0.visible=.F. &&не видима "Отменить" thisform.command6.visible=.T. &&видима "Добавить" thisform.command8.visible=.T. &&видима "Изменить"
thisform.txtNomp.ReadOnly=.T. && Не доступно для ввода значение поля Nomp
thisform.txtFamp.ReadOnly =.T. && Не доступно для ввода значение поля Famp
thisform.command5.enabled =.T. &&доступна "Выход"
thisform.command7.enabled =.T. &&доступна "Удалить"
thisform.bt_update &&вызов метода bt_update
Кнопка "Выход"
Эта кнопка служит для выхода из режима редактирования
справочника. Ей соответствует процедура:
if file ("tmp.dbf") &&Функция возвращает логическое значение Т.,
&&если файл с указанным именем найден
delete file tmp.dbf &&Удаляется временный файл
endif
close databases &&3акрывает текущую базу данных и все её таблицы
&&Устанавливает текущей первую рабочую область
use D:\baza\poshk exclusive &&Открывает ТБД poshk в монопольном режиме
&&и помещает файл в РОП1
Locate for DELETED() &&Отыскивается первая запись, помеченная для удаления
IF FOUND() &&Функция определяет успешность поиска для команд
&&CONTINUE, FIND, LOCATE, SEEK.
&&Возвращает логическое значение.F., если нет искомой
&&записи (или в указанной РОПе нет открытой таблицы)
&&и значение.Т. - если найдена
pack &&Физически удаляется найденная запись
endif
sort to tmp on nomp &&Файл poshk после удаления первой помеченной
&&записи сортируется по номеру поставщика
&&Новому файлу присваивается имя tmp
&&(остальные помеченные записи остаются)
close databases
use D:\baza\poshk exclusive &&В файле poshk помечает для удаления
delete all &&все записи внутри файла
pack &&Физическое удаление всех помеченных записей
append from tmp &&Переписывает файл tmp с помеченными
&&записями в файл poshk
if file ("tmp.dbf") &&Временный файл,
delete file tmp.dbf &&если он создан, удаляется
endif
if MESSAGEBOX("Oтсортировать файл?",4+32+256,"Сортировать по коду НОМП")=6
&&4-Yes и No;32-?;
&&256 - 2я командная кнопка по умолчанию (No)
&& 6 - выбрана Yes
sort to tmp on nomp &&Снова сортируется poshk. Вновь отсортированный файл
&& с помеченными записями создаётся под именем tmp
endif
close databases
&&Повторение блока команд с комментариями
use D:\baza\poshk exclusive &&B файле poshk помечает для удаления
delete all &&все записи внутри файла
pack &&Физическое удаление всех помеченных записей
append from tmp &&Переписывает файл tmp с помеченными
&&записями в файл poshk endif
if MESSAGEBOX("Завершить редактирование?",4+32+256,"Завершить")=6
_screen.ActiveForm.Release()
else
_screen.ActiveForm. Refresh()
endif
Дата добавления: 2015-07-24; просмотров: 65 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Таблицы | | | Для работы понадобится ткань, вата и синтипон, нитки, иголки и картонка для крышки |