^D - удаление текущей записи
^P - вывод/печать всех записей
--------------------------------------------
^PgUp - переход в начало базы
^PgDn - переход в конец базы
--------------------------------------------
^Q - выход из окна редактирования
(внесенная информация сохраняется)
Esc - то же, но информация не сохраняется
ENDTEXT
WAIT ''
DEACTIVATE WINDOW HelpWindow
SET CURSOR ON
POP KEY
RETURN
FUNCTION Hlp
SET CURSOR OFF
@ 0,0 FILL TO 0,77 COLOR GR/GR
Hint=''
DO CASE
CASE VARREAD() ='Nazvan_f'
Hint='Название фильма'
CASE VARREAD() ='Tip_nosit'
Hint='Тип носитель'
CASE VARREAD() ='Prodol'
Hint='Продолжительность'
CASE VARREAD() ='Kachestvo'
Hint='Качество'
CASE VARREAD() ='Zena'
Hint='Цена'
CASE VARREAD() ='Kod_post'
Hint='Код поставщика'
CASE VARREAD() ='Janr'
Hint='Жанр'
CASE VARREAD() ='Gl_artist'
Hint='Главный артист'
CASE VARREAD() ='Kod_f'
Hint='Код фильма'
ENDCASE
@0,(78-LEN(Hint)) /2 SAY Hint
RETURN
PROCEDURE BrowseData
PARAMETER y
DO CASE
CASE BAR() =1. OR. y=1
TitleStr='БАЗА ДАННЫХ'
STR1='NOAPPEND NODELETE NOMODIFY'
CASE BAR() =2. OR. y=2
PUSH KEY
ON KEY LABEL Ctrl+N DO AddRec
ON KEY LABEL Ctrl+D DO DelRec
ON KEY LABEL Ctrl+P ACTIVATE POPUP PrintPopup
ON KEY LABEL F1 DO Help
TitleStr='F1 - Вызов окна помощи РЕДАКТИРОВАНИЕ '
STR1=''
ENDCASE
ACTIVATE WINDOW HintWindow
GO TOP
BROWSE TITLE TitleStr;
FIELDS A. nazv_f: H='Название фильма': W=Hlp(),;
A. tip_nosit: H='Тип носителя': W=Hlp(),;
B. nazv_nosit: H='Название носителя': R: W=Hlp(),;
A. prodol: H='Продолжительность': W=Hlp(),;
A. kachestvo: H='Качество': W=Hlp(),;
A. zena: H='Цена': W=Hlp(),;
A. kod_post: H='Код поставщика': W=Hlp(),;
C. nazv_post: H='Название поставщика': R: W=Hlp(),;
C. adres_post: H='Адрес поставщика': R: W=Hlp(),;
C. telef_post: H='Телефон поставщика': R: W=Hlp(),;
A. janr: H='Жанр': W=Hlp(),;
A. gl_artist: H='Главный артист': W=Hlp(),;
A. kod_f: H='Код фильма': W=Hlp();
WINDOW ViewWindow &STR1 COLOR GR+/N
DO CASE
CASE BAR() =1. OR. y=1
SET FILTER TO
CASE BAR() =1. OR. y=2
POP KEY
ENDCASE
DEACTIVATE WINDOW HintWindow
DEACTIVATE POPUP
RETURN
PROCEDURE SearchProc
SET CURSOR ON
y=BAR()
str=PROMPT()
DEFINE WINDOW SearchWindow FROM 7,20 TO 12,60;
TITLE 'Поиск '+ str
ACTIVATE WINDOW SearchWindow
@ 1,1 SAY 'Укажите ключ: '
DO CASE
CASE y=1
@ 1,15 GET a DEFAULT SPACE(20)
CASE y=2
@ 1,15 GET a DEFAULT SPACE(3)
CASE y=3
@ 1,15 GET a PICTURE '999' DEFAULT 0
ENDCASE
@3,11 GET choice FUNCTION '*th \! Поиск; \? Выход' DEFAULT 2 SIZE 1,7,4
READ CYCLE
RELEASE WINDOW SearchWindow
SET CURSOR OFF
IF choice=1
ACTIVATE WINDOW FindWindow
IF y=1. OR. y=2
a=Zag(ALLTRIM(a),. f)
ENDIF
IsFind=. F.
Find=. F.
SCAN
DO CASE
CASE y=1
Find=Zag(ALLTRIM(A. nazv_f),. f) =a
CASE y=2
Find=A. tip_nosit=a
CASE y=3
Find=A. kod_post=a
ENDCASE
IF Find
IsFind=. T.
? 'Название фильма: ',A. nazv_f
? 'Тип носителя: ',A. tip_nosit
? 'Название носителя: ',B. nazv_nosit
? 'Продолжительность: ',A. prodol
? 'Качество: ',A. kachestvo
? 'Цена: ',A. zena
? 'Код поставщика: ',A. kod_post
? 'Название поставщика: ',C. nazv_post
? 'Адрес поставщика: ',C. adres_post
? 'Телефон поставщика: ',C. telef_post
? 'Жанр: ',A. janr
? 'Главный артист: ',A. gl_artist
? 'Код фильма: ',A. kod_f
WAIT 'Продолжить поиск? (ДА - любая клавища, НЕТ - ESC) ' WINDOW
IF LASTKEY() =27
EXIT
ENDIF
ENDIF
ENDSCAN
IF! IsFind
WAIT 'ПОИСК НЕ УДАЧНЫЙ' WINDOW
ENDIF
DEACTIVATE WINDOW FindWindow
ENDIF
DEACTIVATE POPUP SearchPopup
RETURN
PROCEDURE FiltrProc
SET CURSOR ON
y=BAR()
str=PROMPT()
DEFINE WINDOW FiltrWindow FROM 7,20 TO 12,60;
TITLE 'Фильтрация '+ str
ACTIVATE WINDOW FiltrWindow
@ 1,1 SAY 'Укажите ключ: '
DO CASE
CASE y=1
@ 1,15 GET a DEFAULT SPACE(20)
CASE y=2
@ 1,15 GET a DEFAULT SPACE(3)
CASE y=3
@ 1,15 GET a PICTURE '999' DEFAULT 0
CASE y=4
@ 1,15 GET a DEFAULT SPACE(18)
ENDCASE
@3,11 GET choice FUNCTION '*th \! Фильтр; \? Выход' DEFAULT 2 SIZE 1,6,4
READ CYCLE
DEACTIVATE WINDOW FiltrWindow
SET CURSOR OFF
IF choice=1
DO CASE
CASE y=1
SET FILTER TO a. nazv_f=alltrim(a)
CASE y=2
SET FILTER TO a. tip_nosit=a
CASE y=3
SET FILTER TO a. kod_post=a
CASE y=4
SET FILTER TO a. kachestvo=alltrim(a)
ENDCASE
DO BrowseData WITH 1
ENDIF
RETURN
FUNCTION Zag
PARAMETER p,k
PUSH KEY clear
s='абвгдежзийклмнопрстуфхцчшщыьъэюя'
z='АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЫЬЪЭЮЯ'
IF k
REPLACE &p WITH CHRTRAN(&p,s,z)
ELSE
POP KEY
RETURN CHRTRAN(p,s,z)
ENDIF
POP KEY
RETURN
PROCEDURE EndProc
PARAMETER y
DO CASE
CASE BAR() =1. OR. y=1
ON KEY
SET HELP ON
SET RELATION TO
SET FILTER TO
DEACTIVATE WINDOW ALL
DEACTIVATE MENU
DEACTIVATE POPUP
CLEAR ALL
CANCEL
CASE BAR() =2. OR. y=2
QUIT
ENDCASE
POP KEY
CLOSE DATABASES
RETURN
1. Четвериков В.Н, Ревунков Г.И., Самохволов Э.Н. Базы и банки данных.