- •1. Предпроектное обследование предметной области
- •1.3. Выходная информация
- •1.4. Входная информация
- •1.5. Характеристика комплекса задач
- •2. Проектирование информационного обеспечения
- •2.1 Идентификация и структурирование информационного пространства
- •2.2.1. Выделение сущностей
- •2.2.2. Определение структурных связей
- •2.2.3. Схема базы данных
- •2.3. Состав информационного обеспечения
- •2.4. Описание внутримашинной базы
- •3. Проектирование программного обеспечения
- •3.1. Описание программного обеспечения
- •3.2. Описание интерфейса программного обеспечения
- •Функция 8 «Формировать отчет по клиентам за указанный интервал времени»
- •3.3. Алгоритмы реализации запросов и поиска информации
- •3.6 Руководство пользователя
- •Список использованных источников
Список использованных источников
Разработка информационной системы с базой данных: Методические указания/ Л.П.Костюкова, А.Г.Карамзина – УГАТУ, 2006
Информационное обеспечение систем управлений: Учебное пособие / Л.П.Костюкова. – УГАТУ, 2007
Базы данных :Учебное пособие.- М.:ФОРУМ :ИНФРА-М,2005.-352с.
Приложение. Текст программы.
ГЛАВНАЯ ФОРМА
PUBLICoform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\form_main.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 462
Width = 633
ShowWindow = 0
DoCreate = .T.
AutoCenter = .T.
Caption = "Бюро трудоустройств"
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command5.Click
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
ENDPROC
PROCEDURE command7.Click
set talk off
do form Form5
ThisForm.Refresh
ENDPROC
PROCEDURE command9.Click
set talk off
do form otchet
ThisForm.Refresh
ENDPROC
PROCEDURE command8.Click
set talk off
do form otchet2
ThisForm.Refresh
ENDPROC
PROCEDURE command10.Click
set talk off
do form Form4
ThisForm.Refresh
ENDPROC
PROCEDURE command4.Click
set talk off
do form Form1
ThisForm.Refresh
ENDPROC
PROCEDURE command1.Click
set talk off
do form Form3
ThisForm.Refresh
ENDPROC
PROCEDURE command3.Click
set talk off
do form Form5
ThisForm.Refresh
ENDPROC
PROCEDURE command2.Click
set talk off
do form Form2
ThisForm.Refresh
ENDPROC
PROCEDURE command6.Click
set talk off
do form predpriatie
ThisForm.Refresh
ENDPROC
PROCEDURE command11.Click
set talk off
do form client
ThisForm.Refresh
ENDPROC
PROCEDURE command12.Click
set talk off
do form rabota_klient
ThisForm.Refresh
ENDPROC
PROCEDURE command13.Click
set talk off
do form rabota_predp
ThisForm.Refresh
ENDPROC
ENDDEFINE
ФОРМЫ СПРАВОЧНИКОВ
DEFINE CLASS form1 AS form
Height = 462
Width = 633
ShowWindow = 0
DoCreate = .T.
AutoCenter = .T.
Caption = "Бюро трудоустройств"
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command5.Click
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
ENDPROC
PROCEDURE command7.Click
set talk off
do form Form5
ThisForm.Refresh
ENDPROC
PROCEDURE command9.Click
set talk off
do form otchet
ThisForm.Refresh
ENDPROC
PROCEDURE command8.Click
set talk off
do form otchet2
ThisForm.Refresh
ENDPROC
PROCEDURE command10.Click
set talk off
do form Form4
ThisForm.Refresh
ENDPROC
PROCEDURE command4.Click
set talk off
do form Form1
ThisForm.Refresh
ENDPROC
PROCEDURE command1.Click
set talk off
do form Form3
ThisForm.Refresh
ENDPROC
PROCEDURE command3.Click
set talk off
do form Form5
ThisForm.Refresh
ENDPROC
PROCEDURE command2.Click
set talk off
do form Form2
ThisForm.Refresh
ENDPROC
PROCEDURE command6.Click
set talk off
do form predpriatie
ThisForm.Refresh
ENDPROC
PROCEDURE command11.Click
set talk off
do form client
ThisForm.Refresh
ENDPROC
PROCEDURE command12.Click
set talk off
do form rabota_klient
ThisForm.Refresh
ENDPROC
PROCEDURE command13.Click
set talk off
do form rabota_predp
ThisForm.Refresh
ENDPROC
ENDDEFINE
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\form2.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 339
Width = 521
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Словарь по рабочим профессиям"
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command1.Click
settalkoff
* проверяем указан ли наименование профессии
IF EMPTY(thisform.txtНаименован.value)
MESSAGEBOX("Не указано наименование профессии",16,"Внимание!")
RETURN
ENDIF
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
close tables
return
ENDPROC
PROCEDURE command2.Click
settalkoff
* проверяем указан ли наименование профессии
IF EMPTY(thisform.txtНаименован.value)
MESSAGEBOX("Не указано наименование профессии",16,"Внимание!")
RETURN
ENDIF
select Рабочие_
GO TOP
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command4.Click
set talk off
* проверяем указан ли наименование профессии
IF EMPTY(thisform.txtНаименован.value)
MESSAGEBOX("Не указано наименование профессии",16,"Внимание!")
RETURN
ENDIF
select Рабочие_
SKIP 1
IF EOF()
GO BOTTOM
ENDIF
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command5.Click
set talk off
* проверяем указан ли наименование профессии
IF EMPTY(thisform.txtНаименован.value)
MESSAGEBOX("Не указано наименование профессии",16,"Внимание!")
RETURN
ENDIF
select Рабочие_
SKIP -1
IF BOF()
GO TOP
ENDIF
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command3.Click
set talk off
* проверяем указан ли наименование профессии
IF EMPTY(thisform.txtНаименован.value)
MESSAGEBOX("Не указано наименование профессии",16,"Внимание!")
RETURN
ENDIF
select Рабочие_
GO BOTTOM
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command6.Click
SET TALK OFF
SELECT РАБОЧИЕ_
CALCULATE MAX(КОД_профес)TO P
APPend BLANK
REPLACE КОД_профес WITH P+1
Thisform.TExt1.value=recno()
ThisForm.Refresh
ENDPROC
PROCEDURE command7.Click
if messagebox('Уверены что хотите удалить запись?',36)=6
select рабочие_
delete
pack
if !eof()
skip 1
endif
if eof() and !bof()
skip-1
endif
GO TOP
thisform.text1.value=recno()
thisform.refresh
endif
ENDPROC
ENDDEFINE
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\form3.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 318
Width = 633
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Справочник рабочие профессии клиента"
WindowState = 0
ColorSource = 4
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command1.Click
set talk off
* проверяем указан ли личный номер
IF EMPTY(thisform.txtЛичный_ном.value)
MESSAGEBOX("Не указан личный номер ",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии ",16,"Внимание!")
RETURN
ENDIF
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
PROCEDURE command3.Click
set talk off
* проверяем указан ли личный номер
IF EMPTY(thisform.txtЛичный_ном.value)
MESSAGEBOX("Не указан личный номер ",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии ",16,"Внимание!")
RETURN
ENDIF
select РАБ_ПРОФ
GO TOP
THISFORM.txtН.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command4.Click
set talk off
* проверяем указан ли личный номер
IF EMPTY(thisform.txtЛичный_ном.value)
MESSAGEBOX("Не указан личный номер ",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии ",16,"Внимание!")
RETURN
ENDIF
select РАБ_ПРОФ
SKIP 1
IF EOF()
GO BOTTOM
ENDIF
THISFORM.txtН.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command5.Click
set talk off
* проверяем указан ли личный номер
IF EMPTY(thisform.txtЛичный_ном.value)
MESSAGEBOX("Не указан личный номер ",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии ",16,"Внимание!")
RETURN
ENDIF
select РАБ_ПРОФ
SKIP -1
IF BOF()
GO TOP
ENDIF
THISFORM.TXTН.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command6.Click
set talk off
* проверяем указан ли личный номер
IF EMPTY(thisform.txtЛичный_ном.value)
MESSAGEBOX("Не указан личный номер ",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии ",16,"Внимание!")
RETURN
ENDIF
select РАБ_ПРОФ
GO BOTTOM
THISFORM.TxtН.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command7.Click
Thisform.combo1.readonly=.f.
Thisform.combo2.readonly=.f.
SET TALK OFF
SELECT раб_проф
APPend BLANK
*replace личный_ном with val(Thisform.combo1.value)
Thisform.TxtН.value=recno()
ThisForm.Refresh
ENDPROC
PROCEDURE command8.Click
if messagebox('Уверены что хотите удалить запись?',36)=6
select раб_проф
delete
pack
if !eof()
skip 1
endif
if eof() and !bof()
skip-1
endif
GO TOP
thisform.txtН.value=recno()
thisform.refresh
endif
ENDPROC
PROCEDURE combo2.Click
ENDPROC
PROCEDURE command9.Click
public r
SELECT раб_проф
r=recno()
replace личный_ном with val(Thisform.combo1.value)
locate for (личный_ном=val(Thisform.combo1.value)).and.(код_профес=val(Thisform.combo2.value))
*browse
if found()
MESSAGEBOX("повторение профессии ",16,"Внимание!")
else
go record r
replace код_профес with val(Thisform.combo2.value)
ENDIF
go record r
ThisForm.Refresh
return
ENDPROC
ENDDEFINE
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\form4.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 447
Width = 582
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Клиент"
WindowType = 0
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command1.Click
set talk off
* проверяем указан ли ФИО
IF EMPTY(thisform.txtФио.value)
MESSAGEBOX("Не указано ФИО клиента",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtАдрес.value)
MESSAGEBOX("Не указан адрес",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.edtОбразовани.value)
MESSAGEBOX("Не указано образование",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли семейное положение
IF EMPTY(thisform.txtСемейное_п.value)
MESSAGEBOX("Не указано семейное положение",16,"Внимание!")
RETURN
ENDIF
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
PROCEDURE command2.Click
set talk off
* проверяем указан ли ФИО
IF EMPTY(thisform.txtФио.value)
MESSAGEBOX("Не указано ФИО клиента",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtАдрес.value)
MESSAGEBOX("Не указан адрес",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.edtОбразовани.value)
MESSAGEBOX("Не указано образование",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли семейное положение
IF EMPTY(thisform.txtСемейное_п.value)
MESSAGEBOX("Не указано семейное положение",16,"Внимание!")
RETURN
ENDIF
select Клиент
GO TOP
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command4.Click
set talk off
* проверяем указан ли ФИО
IF EMPTY(thisform.txtФио.value)
MESSAGEBOX("Не указано ФИО клиента",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtАдрес.value)
MESSAGEBOX("Не указан адрес",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.edtОбразовани.value)
MESSAGEBOX("Не указано образование",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли семейное положение
IF EMPTY(thisform.txtСемейное_п.value)
MESSAGEBOX("Не указано семейное положение",16,"Внимание!")
RETURN
ENDIF
select Клиент
SKIP 1
IF EOF()
GO BOTTOM
ENDIF
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command5.Click
set talk off
* проверяем указан ли ФИО
IF EMPTY(thisform.txtФио.value)
MESSAGEBOX("Не указано ФИО клиента",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtАдрес.value)
MESSAGEBOX("Не указан адрес",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.edtОбразовани.value)
MESSAGEBOX("Не указано образование",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли семейное положение
IF EMPTY(thisform.txtСемейное_п.value)
MESSAGEBOX("Не указано семейное положение",16,"Внимание!")
RETURN
ENDIF
select Клиент
SKIP -1
IF BOF()
GO TOP
ENDIF
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command3.Click
set talk off
* проверяем указан ли ФИО
IF EMPTY(thisform.txtФио.value)
MESSAGEBOX("Не указано ФИО клиента",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtАдрес.value)
MESSAGEBOX("Не указан адрес",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.edtОбразовани.value)
MESSAGEBOX("Не указано образование",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли семейное положение
IF EMPTY(thisform.txtСемейное_п.value)
MESSAGEBOX("Не указано семейное положение",16,"Внимание!")
RETURN
ENDIF
select Клиент
GO BOTTOM
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command6.Click
SET TALK OFF
SELECT КЛИЕНТ
CALCULATE MAX(ЛИЧНЫЙ_НОМ)TO P
APPend BLANK
REPLACE Личный_ном WITH P+1
REPLACE Адрес WITH ""
REPLACE Образовани WITH ""
REPLACE ФИО WITH ""
Thisform.TExt1.value=recno()
ThisForm.Refresh
ENDPROC
PROCEDURE command7.Click
if messagebox('Уверены что хотите удалить запись?',36)=6
select клиент
delete
pack
if !eof()
skip 1
endif
if eof() and !bof()
skip-1
endif
GO TOP
thisform.text1.value=recno()
thisform.refresh
endif
ENDPROC
ENDDEFINE
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\form5.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 421
Width = 633
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Словарь рабочие места"
WindowType = 1
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command1.Click
set talk off
* проверяем указан ли код предприятия
IFEMPTY(thisform.txtКод_предпр.value)
MESSAGEBOX("Не указан код предприятия",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.txtКоличество.value)
MESSAGEBOX("Не указано кол-во рабочих мест",16,"Внимание!")
RETURN
ENDIF
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
PROCEDURE command2.Click
settalkoff
* проверяем указан ли код предприятия
IF EMPTY(thisform.txtКод_предпр.value)
MESSAGEBOX("Не указан код предприятия",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.txtКоличество.value)
MESSAGEBOX("Не указано кол-во рабочих мест",16,"Внимание!")
RETURN
ENDIF
thisform.txtКод_предпр.readonly=.F.
thisform.txtКод_профес.readonly=.F.
thisform.combo1.enabled=.F.
thisform.combo3.enabled=.F.
select Раб_мест
GO TOP
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command4.Click
set talk off
* проверяем указан ли код предприятия
IF EMPTY(thisform.txtКод_предпр.value)
MESSAGEBOX("Не указан код предприятия",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.txtКоличество.value)
MESSAGEBOX("Не указано кол-во рабочих мест",16,"Внимание!")
RETURN
ENDIF
thisform.txtКод_предпр.readonly=.F.
thisform.txtКод_профес.readonly=.F.
thisform.combo1.enabled=.F.
thisform.combo3.enabled=.F.
select Раб_мест
SKIP 1
IF EOF()
GO BOTTOM
ENDIF
THISFORM.text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command5.Click
settalkoff
* проверяем указан ли код предприятия
IF EMPTY(thisform.txtКод_предпр.value)
MESSAGEBOX("Не указан код предприятия",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.txtКоличество.value)
MESSAGEBOX("Не указано кол-во рабочих мест",16,"Внимание!")
RETURN
ENDIF
thisform.txtКод_предпр.readonly=.F.
thisform.txtКод_профес.readonly=.F.
thisform.combo1.enabled=.F.
thisform.combo3.enabled=.F.
select Раб_мест
SKIP -1
IF BOF()
GO TOP
ENDIF
THISFORM.Text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command3.Click
settalkoff
* проверяем указан ли код предприятия
IF EMPTY(thisform.txtКод_предпр.value)
MESSAGEBOX("Не указан код предприятия",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли код профессии
IF EMPTY(thisform.txtКод_профес.value)
MESSAGEBOX("Не указан код профессии",16,"Внимание!")
RETURN
ENDIF
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.txtКоличество.value)
MESSAGEBOX("Не указано кол-во рабочих мест",16,"Внимание!")
RETURN
ENDIF
thisform.txtКод_предпр.readonly=.F.
thisform.txtКод_профес.readonly=.F.
thisform.combo1.enabled=.F.
thisform.combo3.enabled=.F.
select Раб_мест
GO BOTTOM
THISFORM.Text1.VALUE=RECNO()
THISFORM.Refresh
ENDPROC
PROCEDURE command6.Click
SET TALK OFF
SELECT РАБ_мест
CALCULATE MAX(номер)TO P
APPend BLANK
REPLACE номер WITH P+1
REPLACE код_предпр WITH 0
REPLACE код_профес WITH 0
REPLACE количество WITH 0
Thisform.TExt1.value=recno()
thisform.txtКод_предпр.readonly=.T.
thisform.txtКод_профес.readonly=.T.
thisform.combo1.enabled=.T.
thisform.combo3.enabled=.T.
ThisForm.Refresh
ENDPROC
PROCEDURE command7.Click
thisform.txtКод_предпр.readonly=.F.
thisform.txtКод_профес.readonly=.F.
if messagebox('Уверены что хотите удалить запись?',36)=6
select раб_мест
delete
pack
if !eof()
skip 1
endif
if eof() and !bof()
skip-1
endif
GO TOP
thisform.text1.value=recno()
thisform.refresh
endif
ENDPROC
PROCEDURE txtкод_предпр.KeyPress
LPARAMETERS nKeyCode, nShiftAltCtrl
ENDPROC
PROCEDURE combo3.Click
set talk off
* проверяем указано ли предприятие
IF EMPTY(thisform.combo1.displayvalue)
MESSAGEBOX("Не указано предприятие ",16,"Внимание!")
RETURN
ENDIF
ENDPROC
PROCEDURE combo1.Click
ENDPROC
PROCEDURE command9.Click
set talk off
* проверяем указан ли кол-во рабочих мест
IF EMPTY(thisform.txtКоличество.value)
MESSAGEBOX("Не указано кол-во рабочих мест",16,"Внимание!")
RETURN
ENDIF
public r
SELECT раб_мест
r=recno()
replace раб_мест.код_предпр with Val(thisform.combo1.value)
locate for (код_предпр=val(Thisform.combo1.value)).and.(код_профес=val(Thisform.combo3.value))
*browse
if found()
MESSAGEBOX("У предприятия уже есть вакансии по профессии ",16,"Внимание!")
else
go record r
replace раб_мест.код_профес with Val(thisform.combo3.value)
ENDIF
go record r
ThisForm.Refresh
return
ENDPROC
ENDDEFINE
Упорядоченные списки и поиск предприятий
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\predpriatie.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 447
Width = 633
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Сортировка таб.предприпятий"
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command1.Click
select предприя
go top
set order to наз
ThisForm.Refresh
ENDPROC
PROCEDURE command2.Click
select предприя
go top
set order to Код_предпр
ThisForm.Refresh
ENDPROC
PROCEDURE command3.Click
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
PROCEDURE command1.Click
go top
Set Filter to предприя.код_предпр=Val(ThisForm.Container1.Text1.Value)
ThisForm.Refresh
ThisForm.Container1.Text1.Value=''
ENDPROC
PROCEDURE command2.Click
select предприя
go top
Set Filter to
ThisForm.Refresh
ENDPROC
PROCEDURE command1.Click
go top
Set Filter to предприя.название_п=ThisForm.Container2.Text1.Value
ThisForm.Refresh
ThisForm.Container2.Text1.Value=''
ENDPROC
PROCEDURE command2.Click
select предприя
go top
Set Filter to
ThisForm.Refresh
ENDPROC
ENDDEFINE
Упорядоченные списки и поиск клиентов
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\client.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 462
Width = 720
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Поиск и сортировка клиентов"
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command1.Click
select клиент
go top
set order to ФИО
ThisForm.Refresh
ENDPROC
PROCEDURE command2.Click
select клиент
go top
set order to Личный_ном
ThisForm.Refresh
ENDPROC
PROCEDURE command3.Click
settalkoff
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
PROCEDURE command1.Click
select клиент
go top
Set Filter to клиент.личный_ном=Val(ThisForm.Container1.Text1.Value)
ThisForm.Refresh
select клиент
go top
Set Filter to клиент.личный_ном=Val(ThisForm.Container1.Text1.Value)
ThisForm.Refresh
ThisForm.Container1.Text1.Value=''
ENDPROC
PROCEDURE command2.Click
select клиент
go top
Set Filter to
ThisForm.Refresh
ENDPROC
PROCEDURE command1.Click
select клиент
go top
Set Filter to клиент.ФИО=(ThisForm.Container2.Text1.Value)
ThisForm.Refresh
select клиент
go top
Set Filter to клиент.ФИО=(ThisForm.Container2.Text1.Value)
ThisForm.Container2.Text1.Value=''
ThisForm.Refresh
ENDPROC
PROCEDURE command2.Click
select клиент
go top
Set Filter to
ThisForm.Refresh
ENDPROC
ENDDEFINE
Работа с клиентом
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\rabota_klient.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 500
Width = 633
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Работа с клиентом"
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE Load
select клиент
go top
Set Filter to клиент.примечание='поиск'
ThisForm.Refresh
ENDPROC
PROCEDURE command1.Click
set talk off
do form Form4
ThisForm.Refresh
ENDPROC
PROCEDURE combo2.Click
set talk off
* проверяем указан ли профессия клиент
IF EMPTY(thisform.combo1.displayvalue)
MESSAGEBOX("Не указана профессия ",16,"Внимание!")
RETURN
ENDIF
select предприя
go top
set filter to код_предпр=VAL(thisform.combo2.displayvalue)
thisform.refresh
ENDPROC
PROCEDURE command2.Click
select клиент
set filter to
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
ENDPROC
PROCEDURE combo3.Click
public n
set talk off
n=val(thisform.combo3.displayvalue)
select раб_проф
go top
Set Filter to раб_проф.личный_ном=n
ThisForm.Refresh
ENDPROC
PROCEDURE command3.Click
public n_k,n_p,n_pr,ind
set talk off
* проверяем выбран ли предприятие
IF EMPTY(thisform.combo2.value)
MESSAGEBOX("Не выбрано предприятие",16,"Внимание!")
RETURN
ENDIF
n_k=0
n_p=0
n_pr=0
ind=0
*подсчет
n_k=val(thisform.combo3.value)
n_p=val(thisform.combo1.value)
n_pr=val(thisform.combo2.value)
select клиент
go top
set filter to клиент.личный_ном=int(n_k)
replace клиент.дата_уст with date()
replace клиент.примечание with "принят на работу"
set filter to
ThisForm.Refresh
select раб_мест
go top
set filter to раб_мест.код_профес=n_p .and. раб_мест.код_предпр=n_pr
p=раб_мест.количество-1
replace раб_мест.количество with p
ind=номер
if p=0
delete
pack
endif
set filter to
* добавляем запись в таблицу Рабочие места для клиента
select р_мест_кл
INSERT INTO р_мест_кл(номер,код_предпр,код_профес,личный_ном);
VALUES(ind,n_p,n_pr,n_k)
*Обновляем данные
ThisForm.Refresh
thisform.combo3.displayvalue=''
thisform.combo1.displayvalue=''
thisform.combo2.displayvalue=''
thisForm.refresh
select клиент
go top
Set Filter to клиент.примечание='поиск'
ThisForm.Refresh
ENDPROC
PROCEDURE grdр_мест_кл.ActivateCell
LPARAMETERS nRow, nCol
ENDPROC
PROCEDURE combo1.Click
set talk off
* проверяем указан ли клиент
IF EMPTY(thisform.combo3.displayvalue)
MESSAGEBOX("Не указан клиент",16,"Внимание!")
RETURN
ENDIF
public t
t=val(thisform.combo1.displayvalue)
select рабочие_
go top
Set Filter to рабочие_.код_профес=t
ThisForm.Refresh
select раб_мест
go top
Set Filter to раб_мест.код_профес=t
ThisForm.Refresh
ENDPROC
ENDDEFINE
Работа с предприятием
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\rabota_predp.scx)
*-- ParentClass: form
*-- BaseClass: form
DEFINE CLASS form1 AS form
Height = 445
Width = 625
DoCreate = .T.
ShowTips = .T.
AutoCenter = .T.
Caption = "Работа с предприятием"
WindowState = 0
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE Load
set talk off
select раб_мест
set filter to
ThisForm.Refresh
select клиент_раб_проф
go top
Set Filter to
ThisForm.Refresh
ENDPROC
PROCEDURE command1.Click
set talk off
do form Form1
ThisForm.Refresh
ENDPROC
PROCEDURE command2.Click
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
ENDPROC
PROCEDURE combo2.Click
public k_p,n_z
set talk off
k_p=0
n_z=0
k_p=val(thisform.combo2.displayvalue)
* проверяем указано ли предприятие
IF EMPTY(thisform.combo3.displayvalue)
MESSAGEBOX("Не указано предприятие ",16,"Внимание!")
RETURN
ENDIF
select раб_мест
set filter to код_предпр=k_pr .AND. код_профес=k_p
n_z=раб_мест.номер
ThisForm.Refresh
select клиент_раб_проф
go top
set filter to клиент_раб_проф.код_профес=k_p.and.клиент_раб_проф.примечание="поиск"
ThisForm.Refresh
select клиент
go top
set filter to клиент.примечание="поиск"
ThisForm.Refresh
ENDPROC
PROCEDURE grdр_мест_кл.ActivateCell
LPARAMETERS nRow, nCol
ENDPROC
PROCEDURE command3.Click
set talk off
* проверяем выбран ли клиент
IF EMPTY(thisform.combo1.value)
MESSAGEBOX("Не выбран клиент",16,"Внимание!")
RETURN
ENDIF
select клиент_раб_проф
go top
set filter to клиент_раб_проф.личный_ном=int(k_l)
replace клиент_раб_проф.дата_уст with date()
replace клиент_раб_проф.примечание with "принят на работу"
set filter to
ThisForm.Refresh
select клиент
go top
set filter to клиент.личный_ном=int(k_l)
replace клиент.дата_уст with date()
replace клиент.примечание with "принят на работу"
set filter to
ThisForm.Refresh
select раб_мест
go top
set filter to раб_мест.код_профес=val(thisform.combo2.value).and.раб_мест.код_предпр=val(thisform.combo3.value)
p=раб_мест.количество-1
replace раб_мест.количество with p
if p=0
delete
pack
endif
set filter to
*browse
* добавляем запись в таблицу Рабочие места для клиента
select р_мест_кл
INSERT INTO р_мест_кл(номер,код_предпр,код_профес,личный_ном);
VALUES(n_z,k_pr,k_p,k_L)
*Обновляем данные
ThisForm.Refresh
thisform.combo3.displayvalue=''
thisform.combo1.displayvalue=''
thisform.combo2.displayvalue=''
thisForm.refresh
*select клиент_раб_проф
*go top
*Set Filter to клиент_раб_проф.примечание='поиск'
*ThisForm.Refresh
ENDPROC
PROCEDURE combo1.Click
public k_l
set talk off
k_l=0
k_l=val(thisform.combo1.displayvalue)
* проверяем указано ли предприятие
IF EMPTY(thisform.combo2.displayvalue)
MESSAGEBOX("Не указан код профессии ",16,"Внимание!")
RETURN
ENDIF
select клиент
set filter to личный_ном=k_L
ThisForm.Refresh
ENDPROC
PROCEDURE combo3.Click
public k_pr
set talk off
k_pr=0
k_pr=val(thisform.combo3.displayvalue)
select раб_мест
set filter to код_предпр=k_pr
ThisForm.Refresh
ENDPROC
PROCEDURE command4.Click
select раб_мест
go top
set filter to раб_мест.код_профес=val(thisform.combo2.value).and.раб_мест.код_предпр=val(thisform.combo3.value)
ENDPROC
ENDDEFINE
Отчет по клиентам
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
**************************************************
*-- Form: form1 (f:\курс+10\otchet.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
Height = 268
Width = 401
DoCreate = .T.
AutoCenter = .T.
Caption = "Отчет по клиентам "
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command9.Click
public d11, d22
set talk off
* проверяем указана ли нач дата
IF EMPTY(thisform.text1.value)
MESSAGEBOX("Не указана начало интервала",16,"Внимание!")
RETURN
ENDIF
* проверяем выбрана ли конечн дата
IF EMPTY(thisform.text2.value)
MESSAGEBOX("Не указан конец интервала",16,"Внимание!")
RETURN
ENDIF
d11=ctod(ThisForm.Text1.Value)
d22=ctod(ThisForm.Text2.Value)
*Set Filter to клиент.дата_регистрации>=d11 .AND. клиент.дата_регистрации<=d22
*go top
report form otchet_client preview
ThisForm.Text1.Value=''
ThisForm.Text2.Value=''
ENDPROC
PROCEDURE command1.Click
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
ENDDEFINE
PUBLIC oform1
oform1=NEWOBJECT("form1")
oform1.Show
RETURN
Отчет по предприятиям
**************************************************
*-- Form:form1 (f:\курс+10\otchet2.scx)
*-- ParentClass: form
*-- BaseClass: form
*
DEFINE CLASS form1 AS form
DoCreate = .T.
AutoCenter = .T.
Caption = "Отчет по предприятиям"
BackColor = RGB(0,185,92)
Name = "Form1"
PROCEDURE command9.Click
public d1, d2
* проверяем указана ли нач дата
IF EMPTY(thisform.text1.value)
MESSAGEBOX("Не указана начало интервала",16,"Внимание!")
RETURN
ENDIF
* проверяем выбрана ли конечн дата
IF EMPTY(thisform.text2.value)
MESSAGEBOX("Не указан конец интервала",16,"Внимание!")
RETURN
ENDIF
Select предприя
d1=ctod(ThisForm.Text1.Value)
d2=ctod(ThisForm.Text2.Value)
Set Filter to предприя.дата_рег>=d1 .AND. предприя.дата_рег<=d2
go top
report form otchet_pred preview
ThisForm.Text1.Value=''
ThisForm.Text2.Value=''
set filter to
ENDPROC
PROCEDURE command1.Click
set talk off
If messagebox("Вы хотите выйти из формы?",4+32+256,"Выход")=6
_screen.ActiveForm.Release()
Else
_screen.ActiveForm.Refresh()
endif
return
ENDPROC
ENDDEFINE