*Закрытие всех работающих программ и приложений
CLOSE ALL
*Выход по нажатию клавиши Escape
SET ESCAPE ON
*Установка типа даты
SET DATE GERMAN
*Установка текущего каталога
SET DEFAULT TO "c:\FOXPRO\VFP98\PODPISKA"
*Очистка экрана
CLEAR
*Создание горизонтального меню
DEFINE MENU Nat
DEFINE PAD ФОРМЫOF NAT PROMPT 'ФОРМЫ'
DEFINE PAD ЗАПРОСЫOF NAT PROMPT 'ЗАПРОСЫ'
DEFINE PAD ОТЧЁТЫOF NAT PROMPT 'ОТЧЁТЫ'
DEFINE PAD ВЫХОД OF NAT PROMPT 'ВЫХОД'
ON SELECTION PAD ФОРМЫOF NAT DO PRO2
ON SELECTION PAD ЗАПРОСЫOF NAT DO PRO3
ON SELECTION PAD ОТЧЁТЫOF NAT DO PRO4
ON SELECTION PAD ВЫХОД OF NAT DO PRO1
ACTIVATE MENU NAT
*Процедура выхода из программы
PROCEDURE PRO1
CLEAR
if messagebox('ВЫХОТИТЕ ВЫЙТИ ИЗ ПРОГРАММЫ?',4+32+256,'выход')=6
deactivate menus
_screen.release()
else
_screen.refresh()
RETURN
CANCEL
*Создание вертикального меню «Формы»
PROCEDURE PRO2
DEFINE POPUP NATA FROM 1,0
DEFINE BAR 1 OF NATA PROMPT 'КАТАЛОГ ГАЗЕТ И ЖУРНАЛОВ'
DEFINE BAR 2 OF NATA PROMPT 'БАЗА ДАННЫХ АБОНЕНТОВ'
DEFINE BAR 3 OF NATA PROMPT 'ПОДПИСЧИКИ НА ИЗДАНИЯ'
ON SELECTION BAR 1 OF NATA DO PRO5
ON SELECTION BAR 2 OF NATA DO PRO6
ON SELECTION BAR 3 OF NATA DO PRO7
ACTIVATE POPUP NATA
*Создание вертикального меню «Запросы»
PROCEDURE PRO3
DEFINE POPUP NATA FROM 1,11
DEFINE BAR 1 OF NATA PROMPT 'ЗАПРОС ПО ГОРОДУ'
DEFINE BAR 2 OF NATA PROMPT 'ЗАПРОС ПО УЛИЦЕ'
DEFINE BAR 3 OF NATA PROMPT 'ЗАПРОС ПО КОДУ ИЗДАНИЯ'
DEFINE BAR 4 OF NATA PROMPT 'ЗАПРОС ПО НАИМЕНОВАНИЮ ИЗДАНИЯ'
DEFINE BAR 5 OF NATA PROMPT 'ЗАПРОС ПО ВИДУ ИЗДАНИЯ'
DEFINE BAR 6 OF NATA PROMPT 'ЗАПРОС ПО СРОКАМ ПОДПИСКИ'
ON SELECTION BAR 1 OF NATA DO PRO10
ON SELECTION BAR 2 OF NATA DO PRO11
ON SELECTION BAR 3 OF NATA DO PRO12
ON SELECTION BAR 4 OF NATA DO PRO13
ON SELECTION BAR 5 OF NATA DO PRO14
ON SELECTION BAR 6 OF NATA DO PRO16
ACTIVATE POPUP NATA
*Создание вертикального меню «Отчёты»
PROCEDURE PRO4
DEFINE POPUP NATA FROM 1,23
DEFINE BAR 1 OF NATA PROMPT 'ОБЗОР КАТАЛОГА ГАЗЕТ И ЖУРНАЛОВ'
DEFINE BAR 2 OF NATA PROMPT 'АБОНЕНТЫ(ГРУППИРОВКА ПО ГОРОДУ)'
DEFINE BAR 3 OF NATA PROMPT 'ОБЗОР ПОДПИСЧИКОВ НА ИЗДАНИЯ'
ON SELECTION BAR 1 OF NATA DO PRO17
ON SELECTION BAR 2 OF NATA DO PRO18
ON SELECTION BAR 3 OF NATA DO PRO19
ACTIVATE POPUP NATA
Вывод на экран формы «Каталог газет и журналов»
PROCEDURE PRO5
DO FORM "C:\FOXPRO\VFP98\PODPISKA\KAT.SCX"
CLOSE ALL
*Вывод на экран формы «Абоненты»
PROCEDURE PRO6
DO FORM "C:\FOXPRO\VFP98\PODPISKA\АБОНЕНТЫ.SCX"
CLOSE ALL
*Вывод на экран формы «Подписчики на издания2
PROCEDURE PRO7
DO FORM "C:\FOXPRO\VFP98\PODPISKA\PODPISCHIKI.SCX"
CLOSE ALL
*Запрос по городу
PROCEDURE PRO10
CLEAR
store space(20) to R
@10,10 SAY "ВВЕДИТЕ НАЗВАНИЕ ГОРОДА" GET R
READ
SELECT KAT.КОДИЗДАНИЯ,НАИМЕНОВАН,ПЕРИОДИЧН,АБОНЕНТЫ.ФАМИЛИЯ,ИМЯ,ОТЧЕСТВО,НАС_ПУНКТ,УЛИЦА,ДОМ,КВАРТИРА,СРОКНАЧАЛА,СРОКОКОНЧ from KAT,АБОНЕНТЫwhere АБОНЕНТЫ.НАС_ПУНКТ=R.AND.KAT.КОДИЗДАНИЯ=АБОНЕНТЫ.КОДИЗДАНИЯ ORDER BY KAT.КОДИЗДАНИЯ
*Запрос по улице
PROCEDURE PRO11
CLEAR
store space(20) to Y
store space(20)to R
@10,10 SAY "ВВЕДИТЕ НАЗВАНИЕ НАСЕЛЁННОГО ПУНКТА" GET Y
READ
CLEAR
@10,10 SAY 'ВЕДИТЕ НАЗВАНИЕ УЛИЦИ' GET R
READ
SELECT KAT.КОДИЗДАНИЯ,НАИМЕНОВАН,ПЕРИОДИЧН,АБОНЕНТЫ.ФАМИЛИЯ,ИМЯ,ОТЧЕСТВО,НАС_ПУНКТ,УЛИЦА,ДОМ,КВАРТИРА,СРОКНАЧАЛА,СРОКОКОНЧ from KAT,АБОНЕНТЫwhere АБОНЕНТЫ.НАС_ПУНКТ=Y.and.АБОНЕНТЫ.УЛИЦА=R.AND.KAT.КОДИЗДАНИЯ=АБОНЕНТЫ.КОДИЗДАНИЯ ORDER BY KAT.КОДИЗДАНИЯ
clear
*Запрос по коду издания
PROCEDURE PRO12
CLEAR
R=0
@10,10 SAY 'ВВЕДИТЕ КОД ИЗДАНИЯ' GET R
READ
SELECT KAT.КОДИЗДАНИЯ as 'Код_издания',НАИМЕНОВАН as 'Наименование',ВИД,АБОНЕНТЫ.ФАМИЛИЯ,НАС_ПУНКТ,УЛИЦА,ДОМ,КВАРТИРА,KAT.ПЕРИОДИЧН*KAT.ЦЕНА1ЭКЗ as 'Цена_за_мес',KAT.ПЕРИОДИЧН*KAT.ЦЕНА1ЭКЗ*(АБОНЕНТЫ.СРОКОКОНЧ-АБОНЕНТЫ.СРОКНАЧАЛА) as 'Итого_за_подписку' FROM KAT,АБОНЕНТЫWHERE KAT.КОДИЗДАНИЯ=R.AND.KAT.КОДИЗДАНИЯ=АБОНЕНТЫ.КОДИЗДАНИЯ ORDER BY KAT.КОДИЗДАНИЯ
CLEAR
*Запрос по наименованию издания
PROCEDURE PRO13
CLEAR
STORE SPACE(30) TO R
@10,10 SAY 'ВВЕДИТЕ НАИМЕНОВАНИЕ ИЗДАНИЯ' GET R
READ
SELECT KAT.КОДИЗДАНИЯ,НАИМЕНОВАН,ВИД,АБОНЕНТЫ.ФАМИЛИЯ,НАС_ПУНКТ,УЛИЦА,ДОМ,КВАРТИРА,KAT.ПЕРИОДИЧН*KAT.ЦЕНА1ЭКЗ AS 'Цена_за_мес',KAT.ПЕРИОДИЧН*KAT.ЦЕНА1ЭКЗ*(АБОНЕНТЫ.СРОКОКОНЧ-АБОНЕНТЫ.СРОКНАЧАЛА)as 'Итого_за_подписку' FROM KAT,АБОНЕНТЫWHERE KAT.НАИМЕНОВАН=R.AND.KAT.КОДИЗДАНИЯ=АБОНЕНТЫ.КОДИЗДАНИЯ ORDER BY KAT.КОДИЗДАНИЯ
CLEAR
*Запрос по виду издания
PROCEDURE PRO14
CLEAR
store space(20) to R
@10,10 SAY "ВВЕДИТЕ ВИД ИЗДАНИЯ" GET R
READ
SELECT KAT.КОДИЗДАНИЯ,НАИМЕНОВАН,ПЕРИОДИЧН,ЦЕНА1ЭКЗ,KAT.ПЕРИОДИЧН*KAT.ЦЕНА1ЭКЗ as 'Цена_за_мес' FROM KAT WHERE KAT.ВИД=R
CLEAR
*Запрос по срокам подписки
PROCEDURE PRO16
CLEAR
NDAT=' '
KDAT=' '
@10,10 SAY "ВВЕДИТЕ ДАТУ НАЧАЛА ПОДПИСКИ АБОНЕНТА" GET NDAT
READ
CLEAR
@10,10 SAY "ВВЕДИТЕ ДАТУ ОКОНЧАНИЯ ПОДПИСКИ АБОНЕНТА" GET KDAT
READ
SELECT АБОНЕНТЫ.КОД_АБОНЕН,ФАМИЛИЯ,ИМЯ,ОТЧЕСТВО,СРОКНАЧАЛА,СРОКОКОНЧ,KAT.КОДИЗДАНИЯ,НАИМЕНОВАН FROM KAT, АБОНЕНТЫWHERE СРОКНАЧАЛА>CTOD(NDAT).AND.СРОКОКОНЧ<CTOD(KDAT).AND.KAT.КОДИЗДАНИЯ=АБОНЕНТЫ.КОДИЗДАНИЯ ORDER BY АБОНЕНТЫ.КОД_АБОНЕН
CLEAR
*Предварительный просмотр отчёта «Обзор каталога газет и журналов»
PROCEDURE PRO17
CLEAR
CLOSE ALL
REPORT FORM "C:\FOXPRO\VFP98\PODPISKA\K.frx" PREVIEW
RETURN
*Предварительный просмотр отчёта «Абоненты(группировка по городу)»
PROCEDURE PRO18
CLEAR
CLOSE ALL
REPORT FORM "C:\FOXPRO\VFP98\PODPISKA\АБОНЕНТЫ.frx" PREVIEW
RETURN
*Предварительный просмотр отчёта «Обзор подписчиков на издания»»
PROCEDURE PRO19
CLEAR
CLOSE ALL
REPORT FORM "C:\FOXPRO\VFP98\PODPISKA\KAT.frx" PREVIEW
RETURN