Разработка базы данных Кадры

Усский гуманитарно-технический колледж

“Тантал”

Факультет технической кибернетики

“Утверждаю”

Зав. кафедрой

факультета технической

кибернетики

__________________________

“_____”_____________2001 г.

Дипломная работа Студента Жучкова М. Ю. рег. номер ___________ Тема: Разработка базы данных “Кадры”

Руководитель: ____________/ /

Рецензент: _______________/ /

2001 г.

г. Москва

Оглавление:

1. Введение 3-4

2. Основная часть.

Разработка базы данных “Кадры”

2.1 Описание предметной области 5-8

2.2 Построение инфологической и даталогической модели 9-28

2.3 Проектирование базы данных 29-37

2.4 Разработка приложения 38-43

3. Охрана труда 44-46

4. Заключение 47

5. Библиографический список 48

6. Приложение 49-87

7. Графический материал 88-93

1. ВВЕДЕНИЕ

Открытое акционерное общество “Судостроительный завод “Лотос” предназначен для строительства морских буровых стационарных платформ разведки и добычи нефти и строительства судов различного назначения. Предприятие располагает большими техническими возможностями (до 30000 тонн металла в год) и квалифицированными кадрами, аттестовано на класс Речного Регистра, Морского Регистра Судоходства, а также Германского Ллойда.

ОАО “ССЗ “ЛОТОС” предлагает к изготовлению:

технические средства для освоения газовых и нефтяных месторождений на шельфе мирового океана и внутренних морей;

сухогрузные и нефтеналивные суда различного района плавания – морского, речного и смешанного “река – море” (спусковой вес около 15000 т);

вспомогательные суда различного назначения;

суда технического флота.

В данной дипломной работе осуществлена разработка базы данных для отдела кадров.

Автоматизация подсистемы управления кадрами является одной из важнейших частей автоматизации производственно-хозяйственной деятельности предприятия.

Несмотря на определенную унификацию баз данных для управления кадрами судостроительного предприятия такая база имеет определенные специфические отличия, например, разработаны такие поля, которые необходимы для расчета трудоемкости постройки судов и т. д.

Определенная задача состояла в разработке полноты базы, т. е. осуществлена такая архитектура, которая могла бы осуществить как работу поисковых систем для отдела кадров и других отделов предприятия, так и формирование выходной информации, необходимой для функционирования задач подсистемы управления кадрами и сведений для руководства предприятия.

2. ОСНОВНАЯ ЧАСТЬ

Разработка базы данных “Кадры”

2.1 Описание предметной области

Предметной областью называется часть реального мира, представляющая интерес для данного исследования (использования) [1].

Вкратце рассмотрим схему работы отдела кадров. Инспектор отдела кадров заполняет личное дело сотрудника данными. В список анкетных данных входят:

– фамилия;

– имя;

– отчество;

– табельный номер;

– страховой номер;

– пол;

– дата рождения;

– место рождения;

– национальность;

– социальное происхождение;

– гражданство;

– образование;

– название учебного заведения;

– форма обучения;

– год окончания учебного заведения;

– диплом (серия, номер);

– квалификация по диплому;

– специальность по диплому;

– образование (дополнительное);

– вид найма;

– вид работы;

– ученая степень;

– ученое звание;

– узкая специальность;

– владение иностранными языками;

– наличие судимости;

– семейное положение;

– состав семьи;

– состоит ли в профсоюзе;

– имеет ли группу инвалидности;

– является ли пенсионером;

– является ли участником войны;

– домашний почтовый индекс;

– район проживания;

– область;

– домашний адрес;

– домашний телефон;

– паспортные данные (серия, номер, кем выдан, прописка);

– воинская обязанность;

– воинское звание;

– номер военно-учетной специальности;

– военный билет (серия, номер);

– годность к военной службе;

– отношение к бронированию;

– наличие моб. предписания;

– группа учета;

– категория учета;

– к какому райвоенкомату причислен;

– дата начала срочной службы

– дата окончания срочной службы;

– дата последнего прохождения мед. комиссии;

– данные трудовой книжки;

– данные о назначениях и перемещениях;

– квалификационный разряд;

– учреждение;

– подразделение;

– текущая должность;

– дата приема на работу;

– дата окончания испытательного срока;

– информация о командировках;

– информация об отпусках;

– дата увольнения;

– ИНН;

– серия свидетельства налогоплательщика;

– номер свидетельства налогоплательщика;

– дата выдачи свидетельства налогоплательщика.

Периодически инспектор отдела кадров подшивает в дело новые сведения и приказы, касающиеся этого сотрудника. Время от времени сотруднику требуется выдать справки фиксированного содержания на основании данных личного дела (краткая информация о сотруднике и др.).

В разрабатываемом приложение должна иметься возможность добавления нового и удаление старого сотрудника в базе данных, редактирование его анкетных данных. Также должны быть предусмотрены функции поиска данных по фамилии сотрудника, функции формирования и печати справки содержащую краткую информация о сотруднике, печати всех данных о нем, переиндексации и инициализации баз данных.

2.2 Построение инфологической и даталогической модели

Описание предметной области, выполненное без ориентации на используемые в дальнейшем программные и технические средства, называется инфологической моделью [1].

Для того, чтобы база данных адекватно отражала предметную область, проектировщик базы данных должен хорошо представлять себе все нюансы, присущие данной предметной области (ПО), и уметь отобразить их в базе данных. Поэтому прежде чем начинать проектирование базы данных, необходимо как следует разобраться, как функционирует предметная область, для отображения которой создается БД. Предметная область должна быть предварительно описана. Для этого в принципе может использоваться и естественный язык, но его применение имеет много недостатков, основным из которых являются громоздкость описания и неоднозначность его трактовки. Поэтому обычно для этих целей используют искусственные формализованные языковые средства. В связи с этим под инфологической моделью (ИЛМ) понимают описание предметной области, выполненное с использованием специальных языковых средств, не зависящих от используемых в дальнейшем программных средств [1].

Для описания инфологической модели были использованы графические средства.

Описание связи “объект-свойство” изображено на рис. 2.2.1 графического материала.

База данных “Кадры” разрабатывается для хранения текстовой информации (хотя для удобства ввода некоторые поля таблиц – числовые), поэтому в приложении не будут применены вычисления введенных оператором данных.

Даталогическая модель является моделью логического уровня и представляет собой отображение логических связей между элементами данных безотносительно к их содержанию и среде хранения. Эта модель строится в терминах информационных единиц, допустимых в той конкретной СУБД, в среде которой мы проектируем базу данных [1].

Отделу кадров ОАО “ССЗ “Лотос” необходимо решать следующие задачи:

Регистрация новых сотрудников.

Уточнение данных по существующим сотрудникам.

Удаление сотрудников.

Опишем задачи, заполнив рабочий бланк №1.

В рабочий бланк задачи нужно занести имя каждого элемента данных, его использование и краткое описание этого элемента. При заполнении столбца “Использование” рабочего бланка применяются пять обозначений – I, O,U, D, и C. Это первые буквы слов Input(Ввод), Output(Вывод), Update(Изменения), Delete(Удаление), Calculate(Вычисления). В столбец “Объект” записывается имя объекта.

В качестве имен элементов/объектов подберем краткий английский перевод описания этих элементов/объектов.

РАБОЧИЙ БЛАНК №1 ОПИСАНИЯ ЗАДАЧ

Наименование задачи:

Анкетные данные сотрудников

Краткое описание:

Регистрация новых сотрудников.

Уточнение данных по существующим сотрудникам.

Удаление.

Список связанных задач:

Ввод, изменения, анкетных данных.

Имя элемента данных

Использование

Описание

Объект

Organic numberI, UТабельный номер сотрудникаStuff
Insurance numberI, UСтраховой номерStuff
SurnameI, UФамилияStuff
NameI, UИмяStuff
Patronymic nameI, UОтчествоStuff
SexI, UПолStuff
Date of birthI, UДата рожденияStuff
BirthplaceI, UМесто рожденияStuff
NationalityI, UНациональностьStuff
Social originI, UСоциальное происхождениеStuff
CitizenshipI, UГражданствоStuff
EducationI, UОбразованиеStuff
Education institutionI, UНазвание учебного заведенияStuff
Form of trainingI, UФорма обученияStuff
Year of the endingI, UГод окончанияStuff
DiplomaI, UДиплом (серия)Stuff
QualificationI, UКвалификация по дипломуStuff
SpecialityI, UСпециальность по дипломуStuff

Amount education additional

OКоличество записей в разделе “Дополнительное образование”Stuff
Kind of hiringI, UВид наймаStuff
Kind of workI, UВид работыStuff
Scientific degreeI, UУченая степеньStuff
Scientific rankI, UУченое званиеStuff
Narrow speciality

I, U

Узкая специальностьStuff
Amount foreign languagesOКоличество записей в разделе “Владение иностранными языками”Stuff
Amount convictionOКоличество записей в разделе “Наличие судимости”Stuff
Marital statusI, UСемейное положениеStuff

Amount family

OКоличество записей в разделе “Состав семьи”Stuff
Trade unionI, UПрофсоюзStuff
Group of inabilityI, UГруппа инвалидностиStuff
PensionerI, UПенсионер?Stuff
Participant of a warI, UУчастник войныStuff
Postal indexI, UДомашний индексStuff
RegionI, UРайонStuff
AreaI, UОбластьStuff
Home addressI, UДомашний адресStuff
Telephone numberI, UДомашний телефонStuff
PassportI, UСерия, номерStuff
ConscriptionI, UВоинская обязанностьStuff
Military rankI, UВоинское званиеStuff
NumberI, UНомер ВУСStuff
Military ticketI, UНомер военного билетаStuff
Validity to military serviceI, UГодность к военной службеStuff
Attitude to bookingI, UОтношение к бронированиюStuff
Mobile instructionsI, UНаличие моб, предписанияStuff
Group of thee accountI, UГруппа учетаStuff
Category of the accountI, UКатегория учетаStuff
CommissionersI, UРайвоенкоматStuff
Date started serviceI, UДата начала срочной службыStuff
Date close serviceI, UДата окончания срочной службыStuff
Date of lastI, UДата последнего прохождения мед. комиссииStuff
Amount work record cardsOКоличество записей в разделе “Трудовая книжка”Stuff
Amount purpose and movingOКоличество записей в разделе “Назначения и перемещения”Stuff
Amount qualifying categoryOКоличество записей в разделе “Квалификационный разряд”Stuff
Company nameI, UНазвание учрежденияStuff
SubdivisionI, UПодразделениеStuff
Current postI, UТекущая должностьStuff
Date of employmentI, UДата приема на работуStuff
Date closed of a trial periodI, UДата окончания испытательного срокаStuff
Amount business tripOКоличество записей в разделе “Командировки”Stuff
Amount holidayOКоличество записей в разделе “Отпуска”Stuff
Date of dismissalI, UДата увольненияStuff
Reason of dismissalI, UПричина увольненияStuff
Individual numberI, UИндивидуальный номер налогоплательщикаStuff
Tax bearer seriesI, UСерия свидетельства налогоплательщикаStuff
Tax bearer numberI, UНомер свидетельства налогоплательщикаStuff
Tax bearer distribution dateI, UДата выдачи свидетельства налогоплательщикаStuff
Date begin in educationI, UДата поступления в у/зEducation additional
Date of end educationI, UДата окончания у/зEducation additional

Additional education

I, UОбразованиеEducation additional
Name educationI, UНазвание у/зEducation additional
Diploma educationI, UДипломEducation additional
Form of training additionalI, UФорма обученияEducation additional
Qualification additional

I, U

КвалификацияEducation additional
Speciality additionalI, UСпециальностьEducation additional
Other languageI, UЯзыкLanguage
Level of possessionI, UУровень владенияLanguage
Date of verdictI, UДата вынесения приговораConviction
Article

I, U

СтатьяConviction
PeriodI, UСрокConviction
Degree of relationshipI, UСтепень родстваFamily
NamesI, UФамилия, инициалы родственникаFamily
Date of birth relativeI, UДата рожденияFamily
ExpenseI, UНа иждивенииFamily
By whom is given

I, U

Кем выданPassport registration
Date of distributionI, UДата выдачиPassport registration
IndexI, UИндексPassport
Area registrationI, UОбластьPassport registration
Region registrationI, UРайонPassport registration
CityI, UГород

Passport registration

PointI, UНаселенный пунктPassport registration
StreetI, UУлицаPassport registration
HouseI, UДомPassport registration
CorpsI, UКорпусPassport registration
FlatI, UКвартираPassport registration
Date of statementI, UДата постановкиWork record card
Date of dismissalI, UДата увольненияWork record card
Name of companyI, UНазвание учрежденияWork record card
A postI, UДолжностьWork record card
Reason cardI, UПричинаWork record card
Basis cardI, UОснованиеWork-record card
Date movingI, UДатаPurpose and moving
Reason movingI, UОснованиеPurpose and moving
DepartmentI, UОтделPurpose and moving
PostI, UДолжностьPurpose and moving
Method of operatingI, UРежим работыPurpose and moving

Date qualification

I, UДатаQualification
Reason qualificationI, UОснованиеQualification
QualificationI, UКвалификацияQualification
Date started tripI, UДата началаBusiness trip
Date closed tripI, UДата окончанияBusiness trip
DestinationI, UМесто назначенияBusiness trip
Kind of holidayI, UВид отпускаHoliday
Basis holidayI, UОснованиеHoliday
In time withI, UЗа время сHoliday
In time onI, UЗа время поHoliday
Date started holidayI, UДата началаHoliday
AmountI, UКоличество днейHoliday
Date closed holidayI, UДата окончанияHoliday

Теперь можно приступить к более тщательному анализу данных и объединению отдельных элементов данных в объекты. Эти объекты станут впоследствии основой для создания таблиц в проектируемой базе данных.

Далее следует заполнить еще один комплект рабочих бланков, который поможет объединить элементы данных в объекты. В верхней части бланка для каждого объекта надо перечислить все объекты связанные с данным. В графе бланка “Связь” указывается тип связи (“один-ко-многим” или “один-к-одному”).

Для каждого элемента данных, в рабочем бланке объекта, обязательно должны быть указаны тип данных (текстовый, числовой, денежный, Мемо и т. д.) и длина поля, необходимая для их хранения. Должно быть дано краткое описание этого элемента, которое впоследствии будет использоваться при определении таблицы.

Также, в бланке должно быть записано условие на значение, которое будет применяться к соответствующему полю данных. В дальнейшем, можно будет задать эти условия в программных файлах FoxPro, чтобы использовать их для проверки данных.

Опишем используемые объекты, заполнив рабочий бланк №2.

РАБОЧИЙ БЛАНК №2 (ОБЪЕКТЫ)

Имя объекта:

KADRES

Краткое описание:

Основные анкетные данные сотрудников

Связанные объекты:

Имя:

Education additional

Language

Conviction

Family

Passport registration

Work record card

Purpose and moving

Qualifications

Business trip

Holiday

Связь:

Многие

Многие

Многие

Многие

Многие

Многие

Многие

Многие

Многие

Многие

Имя элемента данных

Тип данных

Описание

Условие на значение

Organic numberЧисловой (6)Табельный номер сотрудникаТребуется
Не должны повторяться
Insurance numberТекстовый (14)Страховой номерNNN-NNN-NNN
SurnameТекстовый (15)ФамилияТребуется
NameТекстовый (15)ИмяТребуется
Patronymic nameТекстовый (15)ОтчествоТребуется
SexТекстовый (15)ПолТребуется
М или Ж
Date of birthДатаДата рожденияТребуется
BirthplaceТекстовый (47)Место рожденияТребуется
NationalityТекстовый (15)НациональностьТребуется

Social origin

Текстовый (47)Социальное происхождениеТребуется
CitizenshipТекстовый (30)ГражданствоТребуется
EducationТекстовый (47)ОбразованиеТребуется
Education institutionТекстовый (47)Название учебного заведенияТребуется
Form of trainingТекстовый (20)Форма обученияТребуется
Year of the endingДата (8)Год окончанияТребуется
DiplomaТекстовый (25)Диплом (серия)Требуется
Серия:ХХХХ номер:NNNNNNNN
QualificationТекстовый (47)Квалификация по дипломуТребуется
SpecialityТекстовый (47)Специальность по дипломуТребуется
Amount education additionalЧисловой (2)Количество записей в разделе “Дополнительное образование”
Kind of hiringТекстовый (30)Вид наймаТребуется
Kind of workТекстовый (30)Вид работыТребуется
Scientific degreeТекстовый (30)Ученая степень
Scientific rankТекстовый (30)Ученое звание
Narrow specialityТекстовый (47)Узкая специальность
Amount foreign languagesЧисловой (2)Количество записей в разделе “Владение иностранными языками”
Amount convictionЧисловой (2)Количество записей в разделе “Наличие судимости”
Marital statusТекстовый (20)Семейное положениеТребуется
Amount familyЧисловой (2)Количество записей в разделе “Состав семьи”
Trade unionТекстовый (40)ПрофсоюзТребуется

Group of inability

Числовой (1)Группа инвалидности
PensionerТекстовый (1)Пенсионер?Требуется
Д или Н
Participant of a warТекстовый (1)Участник войныТребуется
Д или Н
Postal indexЧисловой (6)Домашний индексТребуется
RegionТекстовый (20)РайонТребуется
AreaТекстовый (40)ОбластьТребуется
Home addressТекстовый (40)Домашний адресТребуется
Telephone numberТекстовый (18)Домашний телефон###-##-## код: ###
PassportТекстовый (29)Серия, номерТребуется
Серия: XXXXXXX-XX номер: ######

Conscription

Текстовый (20)Воинская обязанность
Military rankТекстовый (20)Воинское звание
NumberЧисловой (12)Номер ВУС
Military ticketТекстовый (23)Номер военного билета

Серия: XXX

Номер: #######

Validity to military serviceТекстовый (47)Годность к военной службе
Attitude to bookingТекстовый (47)Отношение к бронированию
Mobile instructionsТекстовый (1)Наличие моб, предписанияД или Н
Group of thee accountТекстовый(47)Группа учета
Category of the accountТекстовый (20)Категория учета
CommissionersТекстовый (47)Райвоенкомат
Date started serviceДатаДата начала срочной службы
Date close serviceДатаДата окончания срочной службы
Date of lastДатаДата последнего прохождения мед. Комиссии
Amount work record cardsЧисловой (2)Количество записей в разделе “Трудовая книжка”
Amount purpose and movingЧисловой (2)Количество записей в разделе “Назначения и перемещения”
Amount qualifying categoryЧисловой (2)Количество записей в разделе “Квалификационный разряд”

Company name

Текстовый (47)Название учрежденияТребуется
SubdivisionТекстовый (30)ПодразделениеТребуется
Current postТекстовый (30)Текущая должностьТребуется
Date of employmentДатаДата приема на работуТребуется
Date closed of a trial periodДатаДата окончания испытательного срокаТребуется
Amount business tripЧисловой (2)Количество записей в разделе “Командировки”
Amount holidayЧисловой (2)Количество записей в разделе “Отпуска”
Date of dismissalДатаДата увольненияТребуется

Reason of dismissal

Текстовый (47)Причина увольненияТребуется
Individual numberТекстовый (12)Индивидуальный номер налогоплательщикаТребуется
Tax bearer seriesТекстовый (14)Серия свидетельства налогоплательщикаТребуется
Tax bearer numberТекстовый (14)Номер свидетельства налогоплательщикаТребуется
Tax bearer distribution dateДатаДата выдачи свидетельства налогоплательщикаТребуется

Имя объекта:

Education additional

Краткое описание:

Сведения о дополнительном образовании

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Date begin in educationДатаДата поступления в у/зТребуется
Date of end educationДатаДата окончания у/зТребуется
Additional educationТекстовый (30)ОбразованиеТребуется
Name educationТекстовый (15)Название у/зТребуется
Diploma educationТекстовый (15)ДипломТребуется
Form of training additionalТекстовый (15)Форма обученияТребуется
Qualification additionalТекстовый (15)КвалификацияТребуется

Speciality additional

Текстовый (15)СпециальностьТребуется

Имя объекта:

Language

Краткое описание:

Знание дополнительных иностранных языков

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Other languageТекстовый (20)ЯзыкТребуется
Level of possessionТекстовый (30)Уровень владенияТребуется

Имя объекта:

Conviction

Краткое описание:

Наличие судимости у сотрудника

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Date of verdictДатаДата вынесения приговораТребуется
ArticleТекстовый (20)СтатьяТребуется
PeriodТекстовый (20)СрокТребуется

Имя объекта:

Family

Краткое описание:

Сведения о составе семьи

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Degree of relationshipТекстовый (20)Степень родстваТребуется
NamesТекстовый (20)Фамилия, инициалы родственникаТребуется
Date of birth relativeДатаДата рожденияТребуется
ExpenseТекстовый (20)На иждивенииТребуется

Имя объекта:

Passport registration

Краткое описание:

Паспортные данные (прописка)

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

By whom is given

Текстовый (50)Кем выданТребуется
Date of distributionДатаДата выдачиТребуется
IndexТекстовый (6)ИндексТребуется
Area registrationТекстовый (30)ОбластьТребуется
Region registrationТекстовый (30)РайонТребуется
CityТекстовый (30)ГородТребуется
PointТекстовый (30)Населенный пунктТребуется
StreetТекстовый (30)УлицаТребуется
HouseТекстовый (10)ДомТребуется
CorpsТекстовый (10)КорпусТребуется
FlatТекстовый (10)КвартираТребуется

Имя объекта:

Work record card

Краткое описание:

Записи в трудовой книжке

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Date of statementДатаДата постановкиТребуется
Date of dismissalДатаДата увольненияТребуется

Name of company

Текстовый (20)Название учрежденияТребуется
A postТекстовый (20)ДолжностьТребуется
Reason cardТекстовый (20)ПричинаТребуется
Basis cardТекстовый (20)ОснованиеТребуется

Имя объекта:

Purpose and moving

Краткое описание:

Сведения о назначениях и перемещениях сотрудника

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Date movingДатаДатаТребуется
Reason movingТекстовый (20)ОснованиеТребуется
DepartmentТекстовый (20)ОтделТребуется
PostТекстовый (15)ДолжностьТребуется
Method of operatingТекстовый (15)Режим работыТребуется

Имя объекта:

Qualification

Краткое описание:

Сведения о квалификационном разряде сотрудника

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Date qualificationДатаДатаТребуется
Reason qualificationТекстовый (20)ОснованиеТребуется
QualificationТекстовый (20)КвалификацияТребуется

Имя объекта:

Business trip

Краткое описание:

Командировки

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Date started tripДатаДата началаТребуется
Date closed tripДатаДата окончанияТребуется
DestinationТекстовый (25)Место назначенияТребуется

Имя объекта:

Holiday

Краткое описание:

Отпуска

Связанные объекты:

Имя:

Stuff

Связь:

Один

Имя элемента данных

Тип данных

Описание

Условие на значение

Kind of holidayТекстовый (15)Вид отпускаТребуется
Basis holiday

Текстовый (15)

ОснованиеТребуется
In time withДатаЗа время сТребуется
In time onДатаЗа время поТребуется
Date started holidayДатаДата началаТребуется
AmountЧисловой (3)Количество днейТребуется
Date closed holidayДатаДата окончанияТребуется

Теперь, после заполнения всех рабочих бланков для объектов, каждый из них можно рассматривать в качестве основы для создания некоторой таблицы.

2.3 Проектирование базы данных

При проектировании базы данных следует придерживаться правил нормализации таблиц:

Правило 1: Каждое поле любой таблицы должно быть уникальным.

Правило 2: Каждая таблица должна иметь уникальный идентификатор (первичный ключ), который может состоять из одного или нескольких полей таблицы.

Правило 3: Для каждого значения первичного ключа должно быть одно и только одно значение любого из столбцов данных, и это значение должно относиться к объекту таблицы.

Правило 4: Должна иметься возможность изменять значения любого поля (не входящего в первичный ключ), и это не должно повлечь за собой изменение другого поля.[2]

Каждый агрегированный объект будет представлен отдельной таблицей базы данных. Элементы данных будут представлены полями таблиц. Имена таблиц и их полей подберем исходя из имен объектов и элементов данных. В качестве первичного ключа используем табельный номер. Проект базы данных включает в себя 11 таблиц.

Опишем базу данных в табличной форме.

ОПИСАНИЕ ТАБЛИЦ БАЗЫ ДАННЫХ “КАДРЫ”

Имя таблицы:STUFF. DBF
Краткое описание:Основная таблица базы данных

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
INS_NUMТекстовый (14)Страховой номер
SURNAMEТекстовый (15)Фамилия
NAMEТекстовый (15)Имя
PATRONТекстовый (15)Отчество
SEXТекстовый (15)Пол
BIRTH_DATEДатаДата рождения
BIRTHPLACEТекстовый (47)Место рождения
NATIONALТекстовый (15)Национальность
SOCIALТекстовый (47)Социальное происхождение
CITIZENТекстовый (30)Гражданство
EDUCATТекстовый (47)Образование
NAME_EDUТекстовый (47)Название учебного заведения
FORM_TRAIN

Текстовый (20)

Форма обучения
YEAR_ENDДата (8)Год окончания
DIPLOMAТекстовый (25)Диплом (серия)
QUAL_DIPТекстовый (47)Квалификация по диплому
SPEC_DIPТекстовый (47)Специальность по диплому
EDU_NUMЧисловой (2)Количество записей в разделе “Дополнительное образование”
KIND_HIRТекстовый (30)Вид найма
KIND_WRKТекстовый (30)Вид работы
S_DEGREEТекстовый (30)Ученая степень
S_RANKТекстовый (30)Ученое звание
MAR_SPECТекстовый (47)Узкая специальность
LANG_NUMЧисловой (2)Количество записей в разделе “Владение иностранными языками”
CONV_NUMЧисловой (2)Количество записей в разделе “Наличие судимости”
MAR_STATUSТекстовый (20)Семейное положение
FAMIL_NUMЧисловой (2)Количество записей в разделе “Состав семьи”
TR_UNIONТекстовый (40)Профсоюз
GROUPЧисловой (1)Группа инвалидности
PENSIONERТекстовый (1)Пенсионер?
PARTIC_WARТекстовый (1)Участник войны
POST_INDEXЧисловой (6)Домашний индекс
REGIONТекстовый (20)Район
AREAТекстовый (40)Область
ADDRESSТекстовый (40)Домашний адрес
TELEPHONEТекстовый (18)Домашний телефон
PASSPORTТекстовый (29)Серия, номер
CONSCRIPTТекстовый (20)Воинская обязанность
MILIT_RANKТекстовый (20)Воинское звание
NUMBERЧисловой (12)Номер ВУС
MIL_TICKETТекстовый (23)Номер военного билета
MIL_VALIDТекстовый (47)Годность к военной службе
ATTITUDEТекстовый (47)Отношение к бронированию
MOBILE_INSТекстовый (1)Наличие моб, предписания
GROUP_ACCТекстовый(47)Группа учета
CATEGORY_AТекстовый (20)Категория учета
COMMISSARТекстовый (47)Райвоенкомат
START_DATEДатаДата начала срочной службы
CLOSE_DATEДатаДата окончания срочной службы
LAST_DATEДатаДата последнего прохождения мед. Комиссии
RECORD_NUMЧисловой (2)Количество записей в разделе “Трудовая книжка”
PURPOS_NUMЧисловой (2)Количество записей в разделе “Назначения и перемещения”
QUAL_NUMЧисловой (2)Количество записей в разделе “Квалификационный разряд”
COMPANYТекстовый (47)Название учреждения
SUBDIVISТекстовый (30)Подразделение
CUR_POSTТекстовый (30)Текущая должность
EMPLOYMENTДатаДата приема на работу
TRIAL_CLOSДатаДата окончания испытательного срока
TRIAL_NUMЧисловой (2)Количество записей в разделе “Командировки”
HOLID_NUMЧисловой (2)Количество записей в разделе “Отпуска”
DATE_DISДатаДата увольнения
REASON_DISТекстовый (47)Причина увольнения
INNТекстовый (12)Индивидуальный номер налогоплательщика
SERIES_TAXТекстовый (14)Серия свидетельства налогоплательщика
NUM_TAXТекстовый (14)Номер свидетельства налогоплательщика
DATE_TAXДатаДата выдачи свидетельства налогоплательщика
Имя таблицы:EDUCAT. DBF
Краткое описание:Дополнительное образование

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
DATE_BEGINДатаДата поступления в у/з
DATE_ENDДатаДата окончания у/з
EDUCATIONТекстовый (30)Образование
NAME_EDUCТекстовый (15)Название у/з
DIPLТекстовый (15)Диплом
FORM_TRТекстовый (15)Форма обучения
QUALIFICТекстовый (15)Квалификация
SPECIALТекстовый (15)Специальность
Имя таблицы:LANGUAGE. DBF
Краткое описание:Владение иностранными языками

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
OTH_LANGТекстовый (20)Язык
LEVELТекстовый (30)Уровень владения
Имя таблицы:CONVICT. DBF
Краткое описание:Наличие судимости

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
DATE_VERDДатаДата вынесения приговора
ARTICLEТекстовый (20)Статья
PERIODТекстовый (20)Срок
Имя таблицы:FAMILY. DBF
Краткое описание:Состав семьи

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
RELATIONТекстовый (20)Степень родства
NAMESТекстовый (20)Фамилия, инициалы родственника
DATE_RELATДатаДата рождения
EXPENSEТекстовый (20)На иждивении
Имя таблицы:PASSPORT. DBF
Краткое описание:Паспортные данные

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
EXP_GIVENТекстовый (50)Кем выдан
DATE_DISTRДатаДата выдачи
INDEX_PТекстовый (6)Индекс
AREA_PТекстовый (30)Область
REGION_PТекстовый (30)Район
CITY_PТекстовый (30)Город
POINT_PТекстовый (30)Населенный пункт
STREET_PТекстовый (30)Улица
HOUSE_PТекстовый (10)Дом
CORPS_PТекстовый (10)Корпус
FLAT_PТекстовый (10)Квартира
Имя таблицы:WORKCARD. DBF
Краткое описание:Трудовая книжка

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
DATE_WRKДатаДата постановки
DATE_DISMДатаДата увольнения
NAME_WRKТекстовый (20)Название учреждения
POST_WRKТекстовый (20)Должность
REASON_WRKТекстовый (20)Причина
BASIS_WRKТекстовый (20)Основание
Имя таблицы:MOVING. DBF
Краткое описание:Назначения и перемещения

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
DATE_MOVДатаДата
REASON_MOVТекстовый (20)Основание
DEPARTТекстовый (20)Отдел
POST_MOVТекстовый (15)Должность
METHOD_MOVТекстовый (15)Режим работы
Имя таблицы:QUALIFIC. DBF
Краткое описание:Квалификационный разряд

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
DATE_QUALДатаДата
REASON_QUALТекстовый (20)Основание
QUALIFICATТекстовый (20)Квалификация
Имя таблицы:BUS_TRIP. DBF
Краткое описание:Командировки

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
START_TRPДатаДата начала
CLOSED_TRPДатаДата окончания
DESTINATТекстовый (25)Место назначения
Имя таблицы:HOLIDAY. DBF
Краткое описание:Отпуска

Имя поля

Тип данных

Описание

ORG_NUMЧисловой (6)Табельный номер сотрудника
KIND_HOLТекстовый (15)Вид отпуска
BASIS_HOLТекстовый (15)Основание
WITH_HOLДатаЗа время с
ON_HOLДатаЗа время по
D_ST_HOLДатаДата начала
AMOUNTЧисловой (3)Количество дней
D_END_HOLДатаДата окончания

Итак, спроектировано 11 таблиц базы данных “Кадры”. Для удобства работы, 10 из них следует проиндексировать:

таблицу STUFF. DBF по полю ORG_NUM;

таблицу EDUCAT. DBF по полю DATE_BEGIN;

таблицу LANGUAGE. DBF по полю OTH_LANG;

таблицу CONVICT. DBF по полю DATE_VERD;

таблицу FAMILY. DBF по полю DATE_RELAT;

таблицу WORKCARD. DBF по полю DATE_WRK;

таблицу MOVING. DBF по полю DATE_MOV;

таблицу QUALIFIC. DBF по полю DATE_QUAL;

таблицу BUS_TRIP. DBF по полю START_TRP;

таблицу HOLIDAY. DBF по полю WITH_HOL.

2.4 Разработка приложения

Для создания проекта использовалась СУБД FoxPro 2.6.

В состав проекта входит 28 командных файлов. Можно было бы в качестве процедур объединить их в один файл, но тогда, в дальнейшем, стало было неудобно их изменять. Взаимосвязь командных файлов представлена на рис. 2.4.1 графического материала.

Стартовым в проекте является файл START. PRG, в котором устанавливается операционная среда системы, формируется экран, а также описывается рабочее меню. В состав рабочего меню входят горизонтальное BAR-меню и три вертикальных POPUP-меню:

Данные о сотрудниках

Сервис

Справки

Выход

В пункте :

Просмотр

Редактирование

Добавление

Удаление

В пункте :

Переиндексация баз

Инициализация баз

В пункте :

Краткая справка о сотруднике

При выборе, или, запускаются программные файлы (модули) READ. PRG, WRITE. PRG или NEW. PRG соответственно. Задача этих модулей – запуск R_W. PRG с необходимыми параметрами. В частности задаются переменные edit и type (edit=.t. – редактирование полей разрешено, edit=.f. – редактирование запрещено, type=1 – выводится сообщение “просмотр данных”, type=2 – “редактирование данных”, type=3 – “добавление данных”). NEW. PRG также должен добавить пустую запись в таблицу STUFF. DBF.

Так как анкетные данные довольно обширны, для их отображения пользоваться только командами BROWSE или CHANGE неудобно. В данном проекте использовались GET-поля для таблиц STUFF. DBF, PASSPORT. DBF и BROWSE-окна для остальных. Описание экранов с GET-полями, а также условия ввода данных, заложены в модулях WIEV1.PRG, WIEV2.PRG, WIEV3.PRG, WIEV4.PRG, WIEV5.PRG, которые запускает R_W. PRG (чтобы не перечислять каждый раз, назову их WIEVn). В зависимости от значения переменной edit, в GET-полях разрешено или запрещено редактирование данных. Экраны, формируемые этими модулями, кроме области редактирования данных содержат в верхней части экрана номер “листа”, Ф. И.О. сотрудника, вид операции, а в нижней части экрана – опции управления:

ЛИСТАТЬ

ЗАПИСЬ

– передает управление следующему экрану.

– передает управление предыдущему экрану

– переходит к следующему сотруднику.

– возвращается к предыдущему сотруднику

Если номер экрана больше 5, то управление передается экрану №1.

Если номер экрана меньше 1, то управление передается экрану №5.

Подобная же схема действует и на выбор следующего или предыдущего сотрудника.

– позволяет не перебирать сотрудников по порядку, а сразу выбрать его из списка.

– выводит на печать все данные о текущем сотруднике.

– возврат в главное меню.

Кроме данных опций, экраны содержат дополнительно опции, позволяющие просмотреть связанную с ними дополнительную информацию. На каждом экране эти опции разные. С правой части от опции – выводится количество записей в разделе.

Все опции описаны LIGHTBAR-меню.

При выборе некоторой опции происходит выход из текущего модуля WIEVn с возвращением списка переменных в модуль R_W. PRG. В соответствии со значением переменных, управление передается тому или иному модулю.

ПеременнаяЗначениеУсловие на выполнениеДействие
ВыбраноНе выбрано
Up15Up=1

List=list+1

(затем в соответствии со значением list запускается один из модулей WIEV. PRG)

Down15Down=1

List=list-1

(затем в соответствии со значением list запускается один из модулей WIEV. PRG)

Previos15Previos=1

SKIP -1

(затем в соответствии со значением list запускается один из модулей WIEV. PRG (при этом меняется сотрудник))

Next15Next=1

SKIP 1

(затем в соответствии со значением list запускается один из модулей WIEV. PRG (при этом меняется сотрудник))

Find15Find=1

DO search. prg WITH orgnum1, edit

(переменная orgnum1 необходима для связи с ключом, переменная edit разрешает (edit=.t.) или запрещает (edit=.f.) редактирование поля)

Print15Print=1DO print. prg
Exit15Exit=1

END DO

(возвращение в вышестоящий модуль и затем в модуль с главным меню START. PRG)

Eduadd15Eduadd=1DO educat. prg WITH orgnum1, edit

Forlang

15Forlang=1DO language. prg WITH orgnum1, edit
Conv15Conv=1DO convict. prg WITH orgnum1, edit
Structfam15Structfam=1DO family. prg WITH orgnum1, edit
Bok15Bok=1DO workcard. prg WITH orgnum1, edit
Purpos15Purpos=1DO move. prg WITH orgnum1, edit
Qualcateg15Qualcateg=1DO qualif. prg WITH orgnum1, edit
Tripsbus15Tripsbus=1DO bus_trip. prg WITH orgnum1, edit
Holid15Holid=1DO holiday. prg WITH orgnum1, edit
Pass15Pass=1DO passport. prg WITH orgnum1, edit

Модули BUS_TRIP. PRG, CONVICT. PRG, EDUCAT. PRG, FAMILY. PRG, HOLIDAY. PRG, LANGUAGE. PRG, MOVE. PRG, QUALIF. PRG, WORKCARD. PRG, формируют BROWSE-окна для отображения дополнительной информации. PASSPORT. PRG формирует GET-поля.

Модуль PRINT выводит все анкетные данные сотрудника на печать.

Модуль SEARCH. PRG позволяет выбрать нужного сотрудника. Этот модуль вызывается как из R_W. PRG, так и из REFEREN. PRG.

Чтобы удалить анкетные данные сотрудника(ов) из базы, следует выбрать пункт подменю. При этом запускается модуль DEL_REC. PRG позволяющий нажатием клавиш Ctrl+T пометить к удалению сотрудника(ов). Можно отменить метку, повторно нажав Ctrl+T. Эти действия реализует модуль DL_UNDL. PRG путем пометки к удалению/снятия пометки к удалению во всех таблицах записей, имеющих то же значение ORG_NUM, что и в таблице STUFF. DBF. Затем, после выхода из BROWSE-окна, модуль DEL_REC. PRG упаковывает всю базу “КАДРЫ”.

При выборе пункта меню запускается модуль INDEX. PRG, индексирующий таблицы. Пункт запускает модуль INITIAL. PRG, который выдает запрос “ЭТО действие уничтожит все данные. Вы уверены в его необходимости?” и в случае положительного ответа, удаляет все данные из базы, сохраняя при этом ее логическую структуру.

Для формирования на печать краткой справки сотрудника следует выбрать пункт меню => . В результате запустится модуль REFEREN. PRG, который для выбора нужного сотрудника передаст управление модулю SEARCH. PRG и затем сформирует справку и отправит ее на печать. Пункт меню был создал для того, чтобы, в дальнейшем было удобно добавлять новые модули печати других справок.

Выбор пункта главного меню передаст управление модулю END. PRG, который закроет все открытые файлы и завершит работу.

Листинг командных файлов и DOS-распечатки экранов, приведены в приложении.

3. ОХРАНА ТРУДА

Охрана труда – система законодательных актов, постановлений, организационных, санитарных и технических мер, обеспечивающих безопасные для здоровья условия труда на рабочем месте. Научно-технический прогресс внес изменения в условия производ­ственной деятельности работников умственного труда. Их труд стал более интенсивным, напряженным, требующим затрат умственной, эмоциональной и физической энергии. Это имеет прямое отношение и к специалистам, связанным с проектированием, разработкой, эксплуатацией, сопровождением и модернизацией автоматизированных систем управления различного назначения.

На рабочем месте оператора должны быть созданы условия для высокопроизводительного труда. Оператор АРМ испытывает значительную нагрузку, как физическую (сидячее положение, нагрузка на глаза), так и умственную, что приводит к снижению его трудоспособности к концу рабочего дня.

Существуют нормативы, определяющие комфортные условия и предельно допус­ти­мые нормы запыленности, температуры воздуха, шума, освещенности. В системе мер, обеспечивающих благоприятные условия труда, большое место отводится эстетическим факторам: оформление производственного интерьера, оборудования, применение функ­циональной музыки и др., которые оказывают определенное воздействие на организм человека. Важную роль играет окраска помещений, которая должна быть светлой. В данном разделе дипломного проекта рассчитывается необходимая освещенность рабочего места и информационная нагрузка оператора.

Развитию утомляемости на производстве способствуют следующие факторы:

– неправильная эргономическая организация рабочего места, нерациональные зоны размещения оборудования по высоте от пола, по фронту от оси симметрии и т. д.;

– характер протекания труда. Трудовой процесс организован таким образом, что оператор вынужден с первых минут рабочего дня решать наиболее сложные и трудоемкие задачи, в то время как в первые минуты работы функциональная подвижность нервных клеток мозга низка. Важное значение имеет чередование труда и отдыха, смена одних форм работы другими.[4]

Одним из основных вопросов охраны труда является организация рационального освещения производственных помещений и рабочих мест.

Для освещения помещения, в котором работает оператор, используется смешанное освещение, т. е. сочетание естественного и искусственного освещения.

Естественное освещение – осуществляется через окна в наружных стенах здания.

Искусственное освещение – используется при недостаточном естественном осве­ще­нии и осуществляется с помощью двух систем: общего и местного освещения. Общим называют освещение, светильники которого освещают всю площадь помещения. Мест­ным называют освещение, предназначенное для определенного рабочего места.

Для помещения, где находится рабочее место оператора, используется система общего освещения.

Нормами для данных работ установлена необходимая освещенность рабочего места ЕН=300 лк (для работ высокой точности, когда наименьший размер объекта различения равен 0.3 – 0.5 мм).

Для исключения засветки экранов дисплеев прямыми световыми потоками светиль­ники общего освещения располагают сбоку от рабочего места, параллельно линии зрения оператора и стене с окнами.[5]

Кроме того, необходимо в течение 8-ми часового рабочего дня предусмотреть один часовой перерыв на обед, 5-ти минутные перерывы каждые полчаса и 15-ти минутные перерывы каждые 1.5 – 2 часа. Работу необходимо организовать таким образом, чтобы наиболее сложные задачи решались с 11:00 до 16:00 – в период наибольшей активности человека, а не в начале дня, когда оператор еще не достиг максимальной активности, и не в конце дня, когда уже развивается утомление.

Так как работа оператора не связана с решением крупных логических задач и достаточно однообразна, то рекомендуется по-возможности чередовать виды деятель­ности.

4. ЗАКЛЮЧЕНИЕ

В данной дипломной работе разработана архитектура базы “Кадры”. в результате анализа данных приведены необходимые поля базы данных, их структура и тип. Сведение их в определенные объекты и построение связи между объектами базы.

Показаны определенные правила, по которым проектировалась база данных.

База данных проектировалась в среде СУБД FoxPro 2.6. В связи с этим разработаны 28 командных файлов предназначенные для ведения базы, включающие в себя сервисные функции управления базой данных, ввода и вывода данных. В программные приложения вошли предлагаемые меню для получения определенных справок о сотрудниках.

Спроектированная база данных “Кадры” и программное обеспечение, обслуживающее базу, дает возможность облегчить работу отдела кадров и применять различные поисковые системы для выбора необходимых сведений о сотрудниках, составе и структуре штатов предприятия.

Работа базы на контрольных данных ОАО “ССЗ “Лотос” показала ее работоспособность и эффективность.

5. БИБЛИОГРАФИЧЕСКИЙ СПИСОК

1. Теоретическое учебное пособие РГТК “Тантал” по дисциплине “Создание и ведение информационного обеспечения”.

2. Теоретическое учебное пособие РГТК “Тантал” по дисциплине “Технология разработки программного обеспечения”.

3. Попов А. А. “Программирование в среде СУБД FoxPro 2.0.”, М. изд. Радио и связь, 1993 г.

4. Сибаров Ю. Б. “Охрана труда в вычислительных центрах” и др., М. Машиностроение, 1990 г.

5. Самгин Э. Б. “Освещение рабочих мест”, изд. МИРЭА, 1989 г.

6. ПРИЛОЖЕНИЕ

Распечатка командных файлов

START. PRG

CLEAR

CLEAR MACROS

SET COLOR TO N

SET HELP OFF

SET CLOCK OFF

SET RESOURCE OFF

SET TALK OFF

SET DOHISTORY OFF

SET STATUS OFF

SET BRSTATUS OFF

SET ESCAPE OFF

SET BELL OFF

SET SCOREBOARD OFF

SET CONFIRM ON

SET DATE GERMAN

SET CENTURY ON

SET DELETED ON

SET EXACT ON

SET HOURS TO 24

SET STICKY ON

SET CURSOR ON

SET SAFETY OFF

RELEASE MENU

RELEASE POPUP

RELEASE WINDOW

SET MESSAGE TO SROWS()-1 CENTER

USE stuff. dbf IN a INDEX stuff. idx

USE passport. dbf IN b

USE educat. dbf IN c INDEX educat. idx

USE language. dbf IN d INDEX language. idx

USE convict. dbf IN e INDEX convict. idx

USE family. dbf IN f INDEX family. idx

USE workcard. dbf IN g INDEX workcard. idx

USE moving. dbf IN h INDEX moving. idx

USE qualific. dbf IN i INDEX qualific. idx

USE bus_trip. dbf IN j INDEX bus_trip. idx

USE holiday. dbf IN 11 INDEX holiday. idx

SELECT a

SET COLOR TO W+/B

@ 0, 0, 24, 79 BOX (REPLICATE(CHR(176),9))

DO WHILE. T.

DEFINE MENU MAINMENU COLOR SCHEME 3

DEFINE PAD data OF MAINMENU PROMPT ‘ Д\

AT 0,0

DEFINE PAD service OF MAINMENU PROMPT ‘ \

DEFINE PAD list OF MAINMENU PROMPT ‘ СП\

DEFINE PAD exit OF MAINMENU ;

PROMPT ‘ ВЫ\

ON SELECTION PAD data OF MAINMENU ACTIVATE POPUP dat

ON SELECTION PAD service OF MAINMENU ACTIVATE POPUP serv

ON SELECTION PAD list OF MAINMENU ACTIVATE POPUP lst

ON SELECTION PAD exit OF MAINMENU DO end. prg

DEFINE POPUP dat FROM 1,0 SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF dat PROMPT ‘ Просмотр’COLOR SCHEME 3

DEFINE BAR 2 OF dat PROMPT ‘\-‘

DEFINE BAR 3 OF dat PROMPT ‘ Редактирование ‘COLOR SCHEME 3

DEFINE BAR 4 OF dat PROMPT ‘\-‘

DEFINE BAR 5 OF dat PROMPT ‘ Добавление ‘COLOR SCHEME 3

DEFINE BAR 6 OF dat PROMPT ‘\-‘

DEFINE BAR 7 OF dat PROMPT ‘ Удаление ‘COLOR SCHEME 3

ON SELECTION BAR 1 OF dat DO read. prg

ON SELECTION BAR 3 OF dat DO write. prg

ON SELECTION BAR 5 OF dat DO new. prg

ON SELECTION BAR 7 OF dat DO del_rec. prg

DEFINE POPUP serv FROM 1,24 SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF serv PROMPT ‘ Переиндексация базы ‘ ;

COLOR SCHEME 3

DEFINE BAR 2 OF serv PROMPT ‘\-‘

DEFINE BAR 3 OF serv PROMPT ‘ Инициализация базы’ ;

COLOR SCHEME 3

ON SELECTION BAR 1 OF serv DO index. prg

ON SELECTION BAR 3 OF serv DO initial. prg

DEFINE POPUP lst FROM 1,34 SHADOW COLOR SCHEME 4

DEFINE BAR 1 OF lst PROMPT ‘ Краткая справка о сотруднике ‘ ;

COLOR SCHEME 3

ON SELECTION BAR 1 OF lst DO referen. prg

SHOW MENU MAINMENU

ACTIVATE MENU MAINMENU

ENDDO

RETURN

READ. PRG

SELECT a

edit=.f.

type=1

DO r_w. prg WITH edit, type

RETURN

WRITE. PRG

SELECT a

edit=.t.

type=2

DO r_w. prg WITH edit, type

RETURN

NEW. PRG

SELECT a

edit=.t.

type=3

APPEND BLANK

DO r_w. prg WITH edit, type

RETURN

DEL_REC. PRG

SELECT a

DEFINE WINDOW win3 FROM 2, 11 TO 23, 69 NOGROW ;

NOFLOAT NOZOOM SHADOW CLOSE ;

TITLE ‘Пометьте удаляемые записи [CTRL+T] и нажмите ‘ COLOR SCHEME 10

ACTIVATE WINDOW win3

ON KEY LABEL ctrl+t DO dl_undl. prg WITH org_num

SET DELETED OFF

BROWSE NOAPPEND NOMODIFY LOCK 0 FIELDS org_num :H=’Таб. N:’, ;

surname :H=’Фамилия:’, name :H=’Имя:’,patron :H=’Отчество:’

ON KEY LABEL ctrl+t

RELEASE WINDOW win3

WAIT ‘Удаление помеченных записей’ NOWAIT WINDOW

PACK

SELECT b

PACK

SELECT c

PACK

SELECT d

PACK

SELECT e

PACK

SELECT f

PACK

SELECT g

PACK

SELECT h

PACK

SELECT i

PACK

SELECT j

PACK

SELECT 11

PACK

WAIT CLEAR

SET DELETED ON

RETURN

DL_UNDL. PRG

PARAMETER org_num

org_num1=org_num

IF DELETED()=.t.

RECALL

SELECT b

RECALL FOR org_num=org_num1

SELECT c

RECALL FOR org_num=org_num1

SELECT d

RECALL FOR org_num=org_num1

SELECT e

RECALL FOR org_num=org_num1

SELECT f

RECALL FOR org_num=org_num1

SELECT g

RECALL FOR org_num=org_num1

SELECT h

RECALL FOR org_num=org_num1

SELECT i

RECALL FOR org_num=org_num1

SELECT j

RECALL FOR org_num=org_num1

SELECT 11

RECALL FOR org_num=org_num1

ELSE

DELETE

SELECT b

DELETE FOR org_num=org_num1

SELECT c

DELETE FOR org_num=org_num1

SELECT d

DELETE FOR org_num=org_num1

SELECT e

DELETE FOR org_num=org_num1

SELECT f

DELETE FOR org_num=org_num1

SELECT g

DELETE FOR org_num=org_num1

SELECT h

DELETE FOR org_num=org_num1

SELECT i

DELETE FOR org_num=org_num1

SELECT j

DELETE FOR org_num=org_num1

SELECT 11

DELETE FOR org_num=org_num1

ENDIF

SELECT a

RETURN

R_W. PRG

PARAMETER edit, type, up, down, next, previos, find, print, exit, eduadd, forlang, ;

Conv, structfam, pass, bok, purpos, qualcateg, tripsbus, holid

list=1

exit=5

SET COLOR TO N/W+

SELECT A

IF RECCOUNT()=0

APPEND BLANK

ENDIF

DEFINE WINDOW win0 FROM 0, 0 TO 2, 79 NOGROW ;

NOFLOAT NOZOOM COLOR W+/N

DEFINE WINDOW win1 FROM 3, 0 TO 24, 79 NOGROW;

NOFLOAT NOZOOM COLOR GR+/B

DO WHILE exit1

ACTIVATE WINDOW win0

CLEAR

@ 0,8 SAY ALLTRIM(surname)+’ ‘+ALLTRIM(name)+’ ‘+ALLTRIM(patron)

IF type=1

@ 0,63 SAY ‘ПРОСМОТР ДАННЫХ’

ENDIF

IF type=2

@ 0,57 SAY ‘РЕДАКТИРОВАНИЕ ДАННЫХ’

ENDIF

IF type=3

@ 0,61 SAY ‘ДОБАВЛЕНИЕ ДАННЫХ’

ENDIF

IF list=1

@ 0,0 SAY ‘Экран 1’

DO wiev1.prg WITH edit

ENDIF

IF list=2

@ 0,0 SAY ‘Экран 2’

DO wiev2.prg WITH edit

ENDIF

IF list=3

@ 0,0 SAY ‘Экран 3’

DO wiev3.prg WITH edit

ENDIF

IF list=4

@ 0,0 SAY ‘Экран 4’

DO wiev4.prg WITH edit

ENDIF

IF list=5

@ 0,0 SAY ‘Экран 5’

DO wiev5.prg WITH edit

ENDIF

IF previos=1

SKIP -1

IF BOF()=.t.

GO BOTTOM

ENDIF

ENDIF

IF next=1

SKIP 1

IF EOF()=.t.

GO TOP

ENDIF

ENDIF

IF down=1

IF list1

list=list-1

ELSE

list=5

ENDIF

ENDIF

IF up=1

IF list5

list=list+1

ELSE

list=1

ENDIF

ENDIF

IF find=1

DO search. prg

ENDIF

org_num1=org_num

IF eduadd=1

DO educat. prg WITH org_num1,edit

ENDIF

IF forlang=1

DO language. prg WITH org_num1,edit

ENDIF

IF conv=1

DO convict. prg WITH org_num1,edit

ENDIF

IF structfam=1

DO family. prg WITH org_num1,edit

ENDIF

IF pass=1

DO passport. prg WITH org_num1,edit

ENDIF

IF bok=1

DO workcard. prg WITH org_num1,edit

ENDIF

IF purpos=1

DO move. prg WITH org_num1,edit

ENDIF

IF qualcateg=1

DO qualif. prg WITH org_num1,edit

ENDIF

IF tripsbus=1

DO bus_trip. prg WITH org_num1,edit

ENDIF

IF holid=1

DO holiday. prg WITH org_num1,edit

ENDIF

IF print=1

DO print. prg

ENDIF

ENDDO

RELEASE WINDOW win1

RELEASE WINDOW win0

RETURN

WIEV1.PRG

PARAMETER edit

ACTIVATE WINDOW win1

CLEAR

Eduadd=5

Forlang=5

Conv=5

Structfam=5

Pass=5

Bok=5

Purpos=5

Qualcateg=5

Tripsbus=5

Holid=5

Org_n=org_num

@ 1,1 SAY’Таб. номер:__________________’

@ 2,1 SAY’Страховой номер:_____________’

@ 3,1 SAY’Фамилия:_____________________’

@ 4,1 SAY’Имя:_________________________’

@ 5,1 SAY’Отчество:____________________’

@ 6,1 SAY’Пол:_________________________’

@ 7,1 SAY’Дата рождения:_______________’

@ 8,1 SAY’Место рождения:______________’

@ 9,1 SAY’Национальность:______________’

@ 10,1 SAY’Социальное происхождение:____’

@ 11,1 SAY’Гражданство:_________________’

@ 12,1 SAY’Образование:_________________’

@ 13,1 SAY’Название учебного заведения:_’

@ 14,1 SAY’Форма обучения:______________’

@ 15,1 SAY’Год окончания:_______________’

@ 18,4 SAY’ЛИСТАТЬ’

@ 18,29 SAY’ЗАПИСЬ’

@ 16,0,16,77 BOX

@ 17,26,19,26 BOX

@ 17,52,19,52 BOX

STORE 6 TO org_num, ins_num, surname, name, up, down, next,;

previos, find, print, exit

@ 1,30 GET org_num VALID UN()=.t. ERROR ;

‘Такой табельный номер уже существует’SIZE 1,6 WHEN edit=.t. COLOR SCHEME 2

@ 2,30 GET ins_num PICTURE ‘NNN-NNN-NNN’ SIZE 1,11 ;

WHEN edit=.t. COLOR SCHEME 2

@ 3,30 GET surname SIZE 1,15 WHEN edit=.t. COLOR SCHEME 2

@ 4,30 GET name SIZE 1,15 WHEN edit=.t. COLOR SCHEME 2

@ 5,30 GET patron SIZE 1,15 WHEN edit=.t. COLOR SCHEME 2

@ 6,30 GET sex VALID sex=’М’OR sex=’Ж’OR sex=’м’OR sex=’ж’ ;

ERROR ‘[М]ужской или [Ж]енский’ SIZE 1,1 ;

WHEN edit=.t. COLOR SCHEME 2

@ 7,30 GET birth_date SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 8,30 GET birthplace SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 9,30 GET national SIZE 1,15 WHEN edit=.t. COLOR SCHEME 2

@ 10,30 GET SOCIAL SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 11,30 GET citizen SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 12,30 GET educat SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 13,30 GET NAME_EDU SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 14,30 GET form_train SIZE 1,20 WHEN edit=.t. COLOR SCHEME 2

@ 15,30 GET year_end SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

STORE “* ВПЕРЕД” TO MPROMPTS

@ 17,14 GET up FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* НАЗАД ” TO MPROMPTS

@ 19,14 GET down FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* СЛЕДУЮЩАЯ ” TO MPROMPTS

@ 17,38 GET next FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПРЕДЫДУЩАЯ” TO MPROMPTS

@ 18,38 GET previos FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* НАЙТИ ” TO MPROMPTS

@ 19,38 GET find FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПЕЧАТЬ” TO MPROMPTS

@ 17,62 GET print FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

STORE “* ВЫХОД” TO MPROMPTS

@ 19,62 GET exit FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

READ CYCLE

IF org_norg_num

org_n1=org_num

SELECT 2

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 3

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 4

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 5

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 6

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 7

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 8

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 9

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 10

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 11

REPLACE org_num WITH org_n1 FOR org_num=org_n

SELECT 1

ENDIF

RETURN

FUNCTION un

rec_un=RECNO()

tab_un=org_num

SEEK tab_un

IF RECNO()=rec_un

SKIP

ENDIF

IF tab_un=org_num AND! EOF()

GO rec_un

RETURN. f.

ENDIF

GO rec_un

RETURN

WIEV2.PRG

PARAMETER edit

ACTIVATE WINDOW win1

CLEAR

Eduadd=5

Forlang=5

Conv=5

Structfam=5

Pass=5

Bok=5

Purpos=5

Qualcateg=5

Tripsbus=5

Holid=5

@ 1,1 SAY’Диплом:______________________’

@ 2,1 SAY’Квалификация по диплому:_____’

@ 3,1 SAY’Специальность по диплому:_____’

@ 4,30 SAY EDU_NUM COLOR SCHEME 2

@ 5,1 SAY’Вид найма:___________________’

@ 6,1 SAY’Вид работы:__________________’

@ 7,1 SAY’Ученая степень:______________’

@ 8,1 SAY’Ученое звание:_______________’

@ 9,1 SAY’Узкая специальность:_________’

@ 10,30 SAY LANG_NUM COLOR SCHEME 2

@ 11,30 SAY conv_num COLOR SCHEME 2

@ 12,1 SAY’Семейное положение:__________’

@ 13,30 SAY famil_num COLOR SCHEME 2

@ 14,1 SAY’Профсоюз:____________________’

@ 15,1 SAY’Группа инвалидности:_________’

@ 18,4 SAY’ЛИСТАТЬ’

@ 18,29 SAY’ЗАПИСЬ’

@ 16,0,16,77 BOX

@ 17,26,19,26 BOX

@ 17,52,19,52 BOX

STORE 6 TO diploma, qual_dip, spec_dip, eduadd, ;

kind_hir, KIND_WRK, s_degree, s_rank, mar_spec, ;

forlang, conv, mar_status, structfam, tr_union, group, ;

up, down, next, previos, find, print, exit

@ 1,30 GET diploma PICTURE ‘серия:XXXX номер:NNNNNNNN’ ;

SIZE 1,25 WHEN edit=.t. COLOR SCHEME 2

@ 2,30 GET qual_dip SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 3,30 GET spec_dip SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

STORE “* Образование (дополнит.):____” TO MPROMPTS

@ 4,0 GET eduadd FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

@ 5,30 GET kind_hir SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 6,30 GET KIND_WRK SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 7,30 GET s_degree SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 8,30 GET s_rank SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 9,30 GET mar_spec SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

STORE “* Владение иностран. языками:_” TO MPROMPTS

@ 10,0 GET forlang FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

STORE “* Наличие судимости:__________” TO MPROMPTS

@ 11,0 GET conv FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

@ 12,30 GET mar_status SIZE 1,20 WHEN edit=.t. COLOR SCHEME 2

STORE “* Состав семьи:_______________” TO MPROMPTS

@ 13,0 GET structfam FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

@ 14,30 GET tr_union SIZE 1,40 WHEN edit=.t. COLOR SCHEME 2

@ 15,30 GET group SIZE 1,1 WHEN edit=.t. COLOR SCHEME 2

STORE “* ВПЕРЕД” TO MPROMPTS

@ 17,14 GET up FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* НАЗАД ” TO MPROMPTS

@ 19,14 GET down FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* СЛЕДУЮЩАЯ ” TO MPROMPTS

@ 17,38 GET next FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПРЕДЫДУЩАЯ” TO MPROMPTS

@ 18,38 GET previos FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* НАЙТИ ” TO MPROMPTS

@ 19,38 GET find FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПЕЧАТЬ” TO MPROMPTS

@ 17,62 GET print FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

STORE “* ВЫХОД” TO MPROMPTS

@ 19,62 GET exit FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

READ CYCLE

RETURN

WIEV3.PRG

PARAMETER edit

ACTIVATE WINDOW win1

CLEAR

Eduadd=5

Forlang=5

Conv=5

Structfam=5

Pass=5

Bok=5

Purpos=5

Qualcateg=5

Tripsbus=5

Holid=5

@ 1,1 SAY’Пенсионер?:__________________’

@ 2,1 SAY’Участник войны?:_____________’

@ 3,1 SAY’Домашний индекс:_____________’

@ 4,1 SAY’Район:_______________________’

@ 5,1 SAY’Область:_____________________’

@ 6,1 SAY’Домашний адрес:______________’

@ 7,1 SAY’Домашний телефон:____________’

@ 9,1 SAY’Воинская обязанность:________’

@ 10,1 SAY’Воинское звание:_____________’

@ 11,1 SAY’Номер ВУС:___________________’

@ 12,1 SAY’Военный билет:_______________’

@ 13,1 SAY’Годность к военной службе:___’

@ 14,1 SAY’Отношение к бронированию:____’

@ 15,1 SAY’Наличие моб. предписания:____’

@ 18,4 SAY’ЛИСТАТЬ’

@ 18,29 SAY’ЗАПИСЬ’

@ 16,0,16,77 BOX

@ 17,26,19,26 BOX

@ 17,52,19,52 BOX

STORE 6 TO pensioner, ;

partic_war, post_index, region, area, address, telephone, ;

pass, passport, conscript, milit_rank, number, mil_ticket,;

mil_valid, attitude, mobile_ins, up, down, next, previos, find, print, exit

@ 1,30 GET pensioner VALID pensioner=’д’OR pensioner=’Д’OR ;

pensioner=’н’OR pensioner=’Н’ ERROR ‘Только [Д]а или [Н]ет’ ;

SIZE 1,1 WHEN edit=.t. COLOR SCHEME 2

@ 2,30 GET partic_war VALID partic_war=’д’OR partic_war=’Д’OR ;

partic_war=’н’OR partic_war=’Н’ ERROR ‘Только [Д]а или [Н]ет’ ;

SIZE 1,1 WHEN edit=.t. COLOR SCHEME 2

@ 3,30 GET post_index SIZE 1,6 WHEN edit=.t. COLOR SCHEME 2

@ 4,30 GET region SIZE 1,20 WHEN edit=.t. COLOR SCHEME 2

@ 5,30 GET area SIZE 1,40 WHEN edit=.t. COLOR SCHEME 2

@ 6,30 GET address SIZE 1,40 WHEN edit=.t. COLOR SCHEME 2

@ 7,30 GET telephone PICTURE ‘###-##-## код: ###’ ;

SIZE 1,18 WHEN edit=.t. COLOR SCHEME 2

STORE “* Паспортные данные:__________” TO MPROMPTS

@ 8,0 GET pass FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

@ 8,30 GET passport PICTURE ‘серия:XXXXXXX-XX номер ######’ ;

SIZE 1,29 WHEN edit=.t. COLOR SCHEME 2

@ 9,30 GET conscript SIZE 1,20 WHEN edit=.t. COLOR SCHEME 2

@ 10,30 GET milit_rank SIZE 1,20 WHEN edit=.t. COLOR SCHEME 2

@ 11,30 GET number SIZE 1,12 WHEN edit=.t. COLOR SCHEME 2

@ 12,30 GET mil_ticket PICTURE ‘серия:XXX номер #######’ ;

SIZE 1,23 WHEN edit=.t. COLOR SCHEME 2

@ 13,30 GET mil_valid SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 14,30 GET attitude SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 15,30 GET mobile_ins VALID mobile_ins=’д’OR mobile_ins=’Д’ ;

OR mobile_ins=’н’OR mobile_ins=’Н’ ;

ERROR ‘Только [Д]а или [Н]ет’ SIZE 1,1 WHEN edit=.t. ;

COLOR SCHEME 2

STORE “* ВПЕРЕД” TO MPROMPTS

@ 17,14 GET up FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* НАЗАД ” TO MPROMPTS

@ 19,14 GET down FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* СЛЕДУЮЩАЯ ” TO MPROMPTS

@ 17,38 GET next FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПРЕДЫДУЩАЯ” TO MPROMPTS

@ 18,38 GET previos FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* НАЙТИ ” TO MPROMPTS

@ 19,38 GET find FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПЕЧАТЬ” TO MPROMPTS

@ 17,62 GET print FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

STORE “* ВЫХОД” TO MPROMPTS

@ 19,62 GET exit FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

READ CYCLE

RETURN

WIEV4.PRG

PARAMETER edit

ACTIVATE WINDOW win1

CLEAR

Eduadd=5

Forlang=5

Conv=5

Structfam=5

Pass=5

Bok=5

Purpos=5

Qualcateg=5

Tripsbus=5

Holid=5

@ 1,1 SAY’Группа учета:________________’

@ 2,1 SAY’Категория учета:_____________’

@ 3,1 SAY’Райвоенкомат:________________’

@ 4,1 SAY’Дата начала срочной службы:__’

@ 5,1 SAY’Дата окончания срочн. службы:’

@ 6,1 SAY’Дата посл. прохожд. мед. ком:’

@ 7,30 SAY record_num COLOR SCHEME 2

@ 8,30 SAY purpos_num COLOR SCHEME 2

@ 9,30 SAY qual_num COLOR SCHEME 2

@ 10,1 SAY’Учреждение:__________________’

@ 11,1 SAY’Подразделение:_______________’

@ 12,1 SAY’Текущая должность:___________’

@ 13,1 SAY’Дата приема на работу:_______’

@ 14,1 SAY’Дата окончания испыт. срока:_’

@ 15,30 SAY trial_num COLOR SCHEME 2

@ 18,4 SAY’ЛИСТАТЬ’

@ 18,29 SAY’ЗАПИСЬ’

@ 16,0,16,77 BOX

@ 17,26,19,26 BOX

@ 17,52,19,52 BOX

STORE 4 TO group_acc, ;

category_a, commissar, start_date, close_date, last_date, bok, purpos, ;

qualcateg, company, suddivis, cur_post, employment, trial_clos, ;

admission, up, down, next, previos, find, print, exit, tripsbus

@ 1,30 GET group_acc SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 2,30 GET category_a SIZE 1,20 WHEN edit=.t. COLOR SCHEME 2

@ 3,30 GET commissar SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 4,30 GET start_date SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 5,30 GET close_date SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 6,30 GET last_date SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

STORE “* Трудовая книжка:____________” TO MPROMPTS

@ 7,0 GET bok FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

STORE “* Назначения и перемещения:___” TO MPROMPTS

@ 8,0 GET purpos FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

STORE “* Квалификационный разряд:____” TO MPROMPTS

@ 9,0 GET qualcateg FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

@ 10,30 GET company SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 11,30 GET subdivis SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 12,30 GET cur_post SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 13,30 GET employment SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 14,30 GET trial_clos SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

STORE “* Командировки:_______________” TO MPROMPTS

@ 15,0 GET tripsbus FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

STORE “* ВПЕРЕД” TO MPROMPTS

@ 17,14 GET up FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* НАЗАД ” TO MPROMPTS

@ 19,14 GET down FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* СЛЕДУЮЩАЯ ” TO MPROMPTS

@ 17,38 GET next FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПРЕДЫДУЩАЯ” TO MPROMPTS

@ 18,38 GET previos FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* НАЙТИ ” TO MPROMPTS

@ 19,38 GET find FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПЕЧАТЬ” TO MPROMPTS

@ 17,62 GET print FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

STORE “* ВЫХОД” TO MPROMPTS

@ 19,62 GET exit FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

READ CYCLE

RETURN

WIEV5.PRG

PARAMETER edit

ACTIVATE WINDOW win1

CLEAR

Eduadd=5

Forlang=5

Conv=5

Structfam=5

Pass=5

Bok=5

Purpos=5

Qualcateg=5

Tripsbus=5

Holid=5

@ 1,30 SAY holid_num COLOR SCHEME 2

@ 2,1 SAY’Дата увольнения:_____________’

@ 3,1 SAY’Причина увольнения:__________’

@ 4,1 SAY’ИНН:_________________________’

@ 5,1 SAY’Серия свидет. налогоплател.:_’

@ 6,1 SAY’Номер свидет. налогоплател.:_’

@ 7,1 SAY’Дата свидет. налогоплател.:__’

@ 18,4 SAY’ЛИСТАТЬ’

@ 18,29 SAY’ЗАПИСЬ’

@ 16,0,16,77 BOX

@ 17,26,19,26 BOX

@ 17,52,19,52 BOX

STORE 6 TO holid, date_dis, reason_d, inn, series_tax, num_tax, ;

date_tax, up, down, next, previos, find, print, exit

STORE “* Отпуска:____________________” TO MPROMPTS

@ 1,0 GET holid FUNCTION MPROMPTS SIZE 1, 30 COLOR SCHEME 11

@ 2,30 GET date_dis SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 3,30 GET reason_dis SIZE 1,47 WHEN edit=.t. COLOR SCHEME 2

@ 4,30 GET inn SIZE 1,12 WHEN edit=.t. COLOR SCHEME 2

@ 5,30 GET series_tax SIZE 1,14 WHEN edit=.t. COLOR SCHEME 2

@ 6,30 GET num_tax SIZE 1,14 WHEN edit=.t. COLOR SCHEME 2

@ 7,30 GET date_tax SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

STORE “* ВПЕРЕД” TO MPROMPTS

@ 17,14 GET up FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* НАЗАД ” TO MPROMPTS

@ 19,14 GET down FUNCTION MPROMPTS SIZE 1, 8 COLOR SCHEME 11

STORE “* СЛЕДУЮЩАЯ ” TO MPROMPTS

@ 17,38 GET next FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПРЕДЫДУЩАЯ” TO MPROMPTS

@ 18,38 GET previos FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* НАЙТИ ” TO MPROMPTS

@ 19,38 GET find FUNCTION MPROMPTS SIZE 1, 12 COLOR SCHEME 11

STORE “* ПЕЧАТЬ” TO MPROMPTS

@ 17,62 GET print FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

STORE “* ВЫХОД” TO MPROMPTS

@ 19,62 GET exit FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

READ CYCLE

RETURN

BUS_TRIP. PRG

PARAMETER org_num1,edit

SELECT j

DEFINE WINDOW win3 FROM 3, 11 TO 20, 68 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Командировки’ LOCK 0 ;

FIELDS start_trp :H=’Дата начала:’, closed_trp :H=’Дата окончания:’, ;

destinat :H=’Место назначения:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Командировки’ NOAPPEND NOMODIFY NODELETE ;

LOCK 0 FIELDS start_trp :H=’Дата начала:’, closed_trp :H=’Дата окончания:’, ;

destinat :H=’Место назначения:’

ENDIF

GO TOP

F=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE trial_num WITH f

RETURN

CONVICT. PRG

PARAMETER org_num1,edit

SELECT e

DEFINE WINDOW win3 FROM 3, 5 TO 20, 75 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Наличие судимости’ LOCK 0 ;

FIELDS date_verd :H=’Дата вынесения приговора:’, article :H=’Статья:’, ;

period :H=’Срок:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Наличие судимости’ ;

NOAPPEND NOMODIFY NODELETE LOCK 0 ;

FIELDS date_verd :H=’Дата вынесения приговора:’, article :H=’Статья:’, ;

period :H=’Срок:’

ENDIF

GO TOP

F=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE conv_num WITH f

RETURN

EDUCAT. PRG

PARAMETER org_num1,edit

SELECT c

DEFINE WINDOW win3 FROM 3, 0 TO 20, 79 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Образование (дополнительно)’ LOCK 0 ;

FIELDS date_begin :H=’Поступил:’,date_end :H=’Окончил:’, ;

education :H=’Образование:’,name_educ :H=’Название у/з:’, ;

dipl :H=’Диплом:’,form_tr :H=’Форма обучения:’, ;

qualific :H=’Квалификация:’,special :H=’Специальность:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Образование (дополнительно)’ NOAPPEND ;

NOMODIFY NODELETE LOCK 0 FIELDS date_begin :H=’Поступил:’, ;

date_end :H=’Окончил:’, education :H=’Образование:’, ;

name_educ :H=’Название у/з:’,dipl :H=’Диплом:’, ;

form_tr :H=’Форма обучения:’,qualific :H=’Квалификация:’, ;

special :H=’Специальность:’

ENDIF

GO TOP

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE EDU_NUM WITH f

RETURN

FAMILY. PRG

PARAMETER org_num1,edit

SELECT f

DEFINE WINDOW win3 FROM 3, 0 TO 20, 79 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Состав семьи’ LOCK 0 ;

FIELDS relation :H=’Степень родства:’, names :H=’Фамилия, инициалы:’, ;

date_relat :H=’Дата рождения:’, expense :H=’На иждивении:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Состав семьи’ NOAPPEND NOMODIFY NODELETE ;

LOCK 0 FIELDS relation :H=’Степень родства:’, ;

names :H=’Фамилия, инициалы:’, date_relat :H=’Дата рождения:’, ;

expense :H=’На иждивении:’

ENDIF

GO TOP

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE famil_num WITH f

RETURN

HOLIDAY. PRG

PARAMETER org_num1,edit

SELECT 11

DEFINE WINDOW win3 FROM 3, 0 TO 20, 79 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Отпуска’ LOCK 0 ;

FIELDS kind_hol :H=’Вид отпуска:’, basis_hol :H=’Основание:’, ;

with_hol :H=’За время с’,on_hol :H=’За время по:’, ;

d_st_hol :H=’Дата начала:’, amount :H=’Кол-во дней:’, ;

d_en_hol :H=’Дата окончания:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Отпуска’ NOAPPEND NOMODIFY NODELETE LOCK 0 ;

FIELDS kind_hol :H=’Вид отпуска:’, basis_hol :H=’Основание:’, ;

with_hol :H=’За время с’,on_hol :H=’За время по:’, d_st_hol :H=’Дата начала:’, ;

amount :H=’Кол-во дней:’,d_en_hol :H=’Дата окончания:’

ENDIF

GO TOP

F=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE holid_num WITH f

RETURN

LANGUAGE. PRG

PARAMETER org_num1,edit

SELECT d

DEFINE WINDOW win3 FROM 3, 13 TO 20, 67 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Владение иностранными языками’ LOCK 0 ;

FIELDS oth_lang :H=’Язык:’, level :H=’Уровень владения:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Владение иностранными языками’ ;

NOAPPEND NOMODIFY NODELETE LOCK 0 ;

FIELDS oth_lang :H=’Язык:’, level :H=’Уровень владения:’

ENDIF

GO TOP

F=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE LANG_NUM WITH f

RETURN

MOVE. PRG

PARAMETER org_num1,edit

SELECT h

DEFINE WINDOW win3 FROM 3, 0 TO 20, 79 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Назначения и перемещения’ LOCK 0 ;

FIELDS date_mov :H=’Дата:’, reason_mov :H=’Основание:’, depart :H=’Отдел:’, ;

post_mov :H=’Должность:’,method_mov :H=’Режим работы:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Назначения и перемещения’ NOAPPEND NOMODIFY NODELETE LOCK 0 ;

FIELDS date_mov :H=’Дата:’, reason_mov :H=’Основание:’, depart :H=’Отдел:’, ;

post_mov :H=’Должность:’,method_mov :H=’Режим работы:’

ENDIF

GO TOP

F=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE purpos_num WITH f

RETURN

PASSPORT. PRG

PARAMETER org_num1,edit

SELECT b

LOCATE FOR org_num=org_num1

IF FOUND()=.f.

APPEND BLANK

REPLACE org_num WITH org_num1

ENDIF

DEFINE WINDOW win3 FROM 3, 1 TO 24, 78 NOGROW ;

NOFLOAT NOZOOM SHADOW CLOSE COLOR SCHEME 10 TITLE ‘ПАСПОРТНЫЕ ДАННЫЕ’

ACTIVATE WINDOW win3

@ 1,5 SAY’Кем выдан:’

@ 2,5 SAY’Дата выдачи:’

@ 6,5 SAY’Индекс:’

@ 7,5 SAY’Область:’

@ 8,5 SAY’Район:’

@ 9,5 SAY’Город:’

@ 10,5 SAY’Населенный пункт:’

@ 11,5 SAY’Улица:’

@ 12,5 SAY’Дом:’

@ 13,5 SAY’Корпус:’

@ 14,5 SAY’Квартира:’

@ 4,2,16,73 BOX

@ 4,30 SAY ‘ Адрес прописки ‘

STORE 5 TO exp_given, date_distr, index_p, area_p, region_p, city_p, point_p, street_p,;

house_p, corps_p, flat_p, end

@ 1,20 GET exp_given SIZE 1,50 WHEN edit=.t. COLOR SCHEME 2

@ 2,20 GET date_distr SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 6,30 GET index_p SIZE 1,6 WHEN edit=.t. COLOR SCHEME 2

@ 7,30 GET area_p SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 8,30 GET region_p SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 9,30 GET city_p SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 10,30 GET point_p SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 11,30 GET street_p SIZE 1,30 WHEN edit=.t. COLOR SCHEME 2

@ 12,30 GET house_p SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 13,30 GET corps_p SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

@ 14,30 GET flat_p SIZE 1,10 WHEN edit=.t. COLOR SCHEME 2

STORE “* ВЫХОД” TO MPROMPTS

@ 18,34 GET end FUNCTION MPROMPTS SIZE 1,5 COLOR SCHEME 11

READ CYCLE

SELECT a

RELEASE WINDOW win3

RETURN

QUALIF. PRG

PARAMETER org_num1,edit

SELECT i

DEFINE WINDOW win3 FROM 3, 10 TO 20, 69 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Квалификационный разряд’ LOCK 0 ;

FIELDS date_qual :H=’Дата:’, reas_qual :H=’Основание:’, ;

qualificat :H=’Квалификационный разряд:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Квалификационный разряд’ NOAPPEND NOMODIFY NODELETE LOCK 0 ;

FIELDS date_qual :H=’Дата:’, reas_qual :H=’Основание:’, ;

qualificat :H=’Квалификационный разряд:’

ENDIF

GO TOP

F=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE qual_num WITH f

RETURN

WORKCARD. PRG

PARAMETER org_num1,edit

SELECT g

DEFINE WINDOW win3 FROM 3, 0 TO 20, 79 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 10

DEFINE WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;

NOFLOAT NOZOOM COLOR R+/N

IF edit=.t.

ACTIVATE WINDOW win4

@ 0,1 SAY'[Ctrl+T]-удалить запись, [Ctrl+N]-создать новую, [Ctrl+W]-сохранить и выйти’

@ 1,30 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Трудовая книжка’ LOCK 0 ;

FIELDS date_wrk :H=’Дата пост:’, date_dism :H=’Дата увольн:’, ;

name_wrk :H=’Название учреждения:’, post_wrk :H=’Должность:’, ;

reason_wrk :H=’Причина:’,basis_wrk :H=’Основание:’

REPLACE org_num WITH org_num1 FOR org_num=0

ELSE

ACTIVATE WINDOW win4

@ 0,26 SAY’Нажмите [ESC] для выхода’

@ 1,28 SAY'[Ctrl+F]-поиск поля’

ACTIVATE WINDOW win3

BROWSE FOR org_num=org_num1 TITLE ‘Трудовая книжка’ NOAPPEND NOMODIFY ;

NODELETE LOCK 0 FIELDS date_wrk :H=’Дата пост:’, ;

date_dism :H=’Дата увольн:’, name_wrk :H=’Название учреждения:’, ;

post_wrk :H=’Должность:’,reason_wrk :H=’Причина:’, ;

basis_wrk :H=’Основание:’

ENDIF

GO TOP

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SELECT a

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE record_num WITH f

RETURN

PRINT. PRG

SELECT a

n=alltrim(surname)+’ ‘+alltrim(name)+’ ‘+alltrim(patron)

_peject=’after’

SET PRINTER ON

SET CONSOLE OFF

PRINTJOB

? space((80-len(n))/2),n

WAIT “Печать” NOWAIT WINDOW

?

? ‘ Таб. номер: ‘,org_num

? ‘ Страховой номер: ‘,ins_num

? ‘ Фамилия: ‘,surname

? ‘ Имя: ‘,name

? ‘ Отчество: ‘,patron

? ‘ Пол: ‘,sex

? ‘ Дата рождения: ‘,birth_date

? ‘ Место рождения: ‘,birthplace

? ‘ Национальность: ‘,national

? ‘ Социальное происхождение: ‘,SOCIAL

? ‘ Гражданство: ‘,citizen

? ‘ Образование: ‘,educat

? ‘ Название учебного заведения:’,NAME_EDU

? ‘ Форма обучения: ‘,form_train

? ‘ Год окончания: ‘,year_end

? ‘ Диплом: ‘,diploma

? ‘ Квалификация по диплому: ‘,qual_dip

? ‘ Специальность по диплому: ‘,spec_dip

? ‘ Вид найма: ‘,kind_hir

? ‘ Вид работы: ‘,KIND_WRK

? ‘ Ученая степень: ‘,s_degree

? ‘ Ученое звание: ‘,s_rank

? ‘ Узкая специальность: ‘,mar_spec

? ‘ Семейное положение: ‘,mar_status

? ‘ Профсоюз: ‘,tr_union

? ‘ Группа инвалидности: ‘,group

? ‘ Пенсионер?: ‘,pensioner

? ‘ Участник войны?: ‘,partic_war

? ‘ Домашний индекс: ‘,post_index

? ‘ Район: ‘,region

? ‘ Область: ‘,area

? ‘ Домашний адрес: ‘,address

? ‘ Домашний телефон: ‘,telephone

? ‘ Воинская обязанность: ‘,conscript

? ‘ Воинское звание: ‘,milit_rank

? ‘ Номер ВУС: ‘,number

? ‘ Военный билет: ‘,mil_ticket

? ‘ Годность к военной службе: ‘,mil_valid

? ‘ Отношение к бронированию: ‘,attitude

? ‘ Наличие моб. предписания: ‘,mobile_ins

? ‘ Группа учета: ‘,group_acc

? ‘ Категория учета: ‘,category_a

? ‘ Райвоенкомат: ‘,commissar

? ‘ Дата начала срочной службы: ‘,start_date

? ‘ Дата окончания срочн. службы:’,close_date

? ‘ Дата посл. прохождения: ‘,last_date

? ‘ Учреждение: ‘,company

? ‘ Подразделение: ‘,subdivis

? ‘ Текущая должность: ‘,cur_post

? ‘ Дата приема на работу: ‘,employment

? ‘ Дата окончания испыт. срока:’,trial_clos

? ‘ Дата увольнения: ‘,date_dis

? ‘ Причина увольнения: ‘,reason_dis

? ‘ ИНН: ‘,inn

? ‘ Серия свидет. налогоплател.:’,series_tax

? ‘ Номер свидет. налогоплател.:’,num_tax

? ‘ Дата свидет. налогоплател.: ‘,date_tax

? SPACE (25),’Образование (дополнит.):’,EDU_NUM

org_num1=org_num

EDU_NUM1=EDU_NUM

SELECT c

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO EDU_NUM1

? ‘ Поступил:’,date_begin,’ Окончил:’,date_end

? ‘ Название у/з: ‘,name_educ

? ‘ Образование: ‘,education

? ‘ Диплом: ‘,dipl

? ‘ Форма обучения:’,form_tr

? ‘ Квалификация: ‘,qualific

? ‘ Специальность: ‘,special

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Владение иностран. языками:’,LANG_NUM

LANG_NUM1=LANG_NUM

SELECT d

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO LANG_NUM1

? ‘ Язык:’,oth_lang,’ Уровень владения:’,level

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Наличие судимости:’,conv_num

Conv_num1=conv_num

SELECT e

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO conv_num1

? ‘ Дата вынесения приговора: ‘,date_verd

? ‘ Статья:’,article,’ Срок:’,period

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Состав семьи:’,famil_num

Struct_f1=famil_num

SELECT f

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO struct_f1

? ‘ Дата рождения:’,date_relat,’ Фамилия, инициалы:’,names

? ‘ Степень родства:’,relation, ‘ На иждивении:’,expense

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (12),’Паспортные данные:’,passport

SELECT b

GO TOP

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDO

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO f

? ‘ Кем выдан: ‘,exp_given

? ‘ Дата выдачи:’,date_distr

? SPACE (25),’Прописка:’

? ‘ Индекс: ‘,index_p

? ‘ Область: ‘,area_p

? ‘ Район: ‘,region_p

? ‘ Город: ‘,city_p

? ‘ Населенный пункт:’,point_p

? ‘ Улица: ‘,street_p

? ‘ Дом: ‘,house_p

? ‘ Корпус: ‘,corps_p

? ‘ Квартира: ‘,flat_p

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Трудовая книжка:’,record_num

Record_num1=record_num

SELECT g

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO record_num1

? ‘ Дата постановки: ‘,date_wrk,’ Дата увольнения:’,date_dism

? ‘ Название учреждения:’,name_wrk

? ‘ Должность: ‘,post_wrk

? ‘ Причина: ‘,reason_wrk

? ‘ Основание: ‘,basis_wrk

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Назначения и перемещения:’,purpos_num

Purpos_num1=purpos_num

SELECT h

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO purpos_num1

? ‘ Дата: ‘,date_mov,’ Основание:’,reason_mov

? ‘ Отдел: ‘,depart

? ‘ Должность: ‘,post_mov

? ‘ Режим работы:’,method_mov

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Квалификационный разряд:’,qual_num

Qual_num1=qual_num

SELECT i

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO qual_num1

? ‘ Дата: ‘,date_qual,’ Основание:’,reas_qual

? ‘ Квалификация:’,qualificat

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Командировки:’,trial_num

Trips1=trial_num

SELECT j

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO trips1

? ‘ Дата начала: ‘,start_trp,’ Дата окончания:’,closed_trp

? ‘ Место назначения:’,destinat

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

? SPACE (25),’Отпуска:’,holid_num

Holid_num1=holid_num

SELECT 11

SET FILTER TO org_num=org_num1

GO TOP

FOR n=1 TO holid_num1

? ‘ Вид отпуска: ‘,kind_hol

? ‘ Основание: ‘,basis_hol

? ‘ За время с: ‘,with_hol,’ За время по: ‘,on_hol

? ‘ Дата начала: ‘,d_st_hol,’ Количество дней:’,amount

? ‘ Дата окончания:’,d_en_hol

? REPLICATE(‘ -‘,39)

SKIP

NEXT n

SET FILTER TO

SELECT a

WAIT CLEAR

ENDPRINTJOB

SET PRINTER OFF

SET CONSOLE ON

RETURN

SEARCH. PRG

DEFINE WINDOW win3 FROM 3, 11 TO 20, 69 NOGROW ;

NOFLOAT NOZOOM SHADOW CLOSE;

TITLE ‘Выберите запись и нажмите ‘ COLOR SCHEME 10

ACTIVATE WINDOW win3

BROWSE NOAPPEND NOMODIFY NODELETE LOCK 0 FIELDS org_num :H=’Таб. N:’, ;

surname :H=’Фамилия:’, name :H=’Имя:’,patron :H=’Отчество:’

RELEASE WINDOW win3

RETURN

INDEX. PRG

WAIT “Индексирую таблицы” NOWAIT WINDOW

SELECT a

INDEX ON org_num TO stuff. idx

SELECT c

INDEX ON date_begin TO educat. idx

SELECT d

INDEX ON oth_lang TO language. idx

SELECT e

INDEX ON date_verd TO convict. idx

SELECT f

INDEX ON date_relat TO family. idx

SELECT g

INDEX ON date_wrk TO workcard. idx

SELECT h

INDEX ON date_mov TO moving. idx

SELECT i

INDEX ON date_qual TO qualific. idx

SELECT j

INDEX ON start_trp TO bus_trip. idx

SELECT 11

INDEX ON with_hol TO holiday. idx

WAIT CLEAR

RETURN

INITIAL. PRG

DEFINE WINDOW win3 FROM 7, 10 TO 13, 70 NOGROW ;

NOFLOAT NOZOOM CLOSE COLOR SCHEME 12

ACTIVATE WINDOW win3

@ 0,12 SAY’ЭТО действие уничтожит все данные’

@ 1,13 SAY’Вы уверены в его необходимости?’

STORE 2 TO no, yes

STORE “* НЕТ” TO MPROMPTS

@ 3,19 GET no FUNCTION MPROMPTS SIZE 1, 8

STORE “* ДА” TO MPROMPTS

@ 3,30 GET yes FUNCTION MPROMPTS SIZE 1, 8

READ CYCLE

RELEASE WINDOW win3

IF yes=2

RETURN

ENDIF

WAIT “Инициализация таблиц” NOWAIT WINDOW

SELECT a

ZAP

SELECT b

ZAP

SELECT c

ZAP

SELECT d

ZAP

SELECT e

ZAP

SELECT f

ZAP

SELECT g

ZAP

SELECT h

ZAP

SELECT i

ZAP

SELECT j

ZAP

SELECT 11

ZAP

WAIT CLEAR

RETURN

REFEREN. PRG

SELECT a

DO search. prg

_peject=’after’

SET PRINTER ON

SET CONSOLE OFF

PRINTJOB

WAIT “Печать” NOWAIT WINDOW

n=ALLTRIM(company)

? space((80-len(n))/2),n

? ”

? SPACE(28),’О Т Д Е Л К А Д Р О В’

? REPLICATE(‘-‘,79)

? SPACE(26),’Краткая справка о сотруднике’

? REPLICATE(‘-‘,79)

n=alltrim(surname)+’ ‘+alltrim(name)+’ ‘+alltrim(patron)

? space((80-len(n))/2),n

? ”

d=MONTH(birth_date)

IF d=1

n=’января’

ENDIF

IF d=2

n=’февраля’

ENDIF

IF d=3

n=’марта’

ENDIF

IF d=4

n=’апреля’

ENDIF

IF d=5

n=’мая’

ENDIF

IF d=6

n=’июня’

ENDIF

IF d=7

n=’июля’

ENDIF

IF d=8

n=’августа’

ENDIF

IF d=9

n=’сентября’

ENDIF

IF d=10

n=’октября’

ENDIF

IF d=11

n=’ноября’

ENDIF

IF d=12

n=’декабря’

ENDIF

IF sex=’Ж’ OR sex=’ж’

sx1=’Родилась’

sx2=’уроженка’

sx3=’Окончила’

ELSE

sx1=’Родился’

sx2=’уроженец’

sx3=’Окончил’

ENDIF

? ‘ ‘,sx1,DAY(birth_date),n, YEAR(birth_date),’года,’

? ‘ ‘,ALLTRIM(national),’,’,sx2,ALLTRIM(birthplace),’,’

? ‘ имеет’,ALLTRIM(citizen),’гражданство.’

? ‘ ‘,sx3,ALLTRIM(NAME_EDU),’.’

? ‘ Семейное положение:’,ALLTRIM(mar_status),’.’

? ‘ В настоящее время работает в должности: ‘,ALLTRIM(cur_post),’,’

? ‘ в подразделении:’,ALLTRIM(subdivis),’.’

? ‘ Домашний адрес:’,ALLTRIM(address),’,’,ALLTRIM(region),’район.’

? ‘ Домашний телефон:’,telephone

? ”

? SPACE(60),DATE(),’г’

SELECT a

WAIT CLEAR

ENDPRINTJOB

SET PRINTER OFF

SET CONSOLE ON

RETURN

END. PRG

CLEAR

CLOSE ALL

QUIT

7. ГРАФИЧЕСКИЙ МАТЕРИАЛ

ЛИЧНОСТЬ

Фамилия

Отчество

Имя

Табельный №

Страховой номер

D

Пол

S

Дата рождения

S

Место рождения

S

Национальность

S

Социальное происхождение

S

Гражданство

D

D

Образование

Название учебного заведения

D

Форма обучения

D

Год окончания

D

Диплом (серия)

D

Квалификация по диплому

Поступил

D

Специальность по диплому

Окончил

D

Образование (дополнительное)

Образование

D

Название у/з

Диплом

Форма обучения

Квалификация

Специальность

Вид найма

D

Вид работы

D

Ученая степень

D

Ученое звание

D

Узкая специальность

Язык

D

Владение ин. языками

Уровень владения

D

Наличие судимости

Дата вын-ия приговора

D

Статья

Срок

Семейное положение

D

Состав семьи

Степень родства

D

Фамилия, инициалы

Профсоюз

D

Дата рождения

На иждивении

Группа инвалидности

D

Пенсионер?

D

D

Участник войны?

Домашний индекс

D

Район

D

Область

Кем выдан

D

Домашний адрес

Дата выдачи

D

Домашний телефон

Индекс

D

Паспортные данные (прописка)

Область

D

Район

Воинская обязанность

D

Город

Воинское звание

D

Населенный пункт

Номер ВУС

D

Улица

Военный билет (номер)

D

Дом

Годность к воен. службе

D

Корпус

Отношение к бронированию

D

Квартира

Наличие моб. предписания

D

Группа учета

D

Категория учета

D

D

Категория учета

Дата начала срочной службы

D

Дата постановки

Дата окончания сроч. службы

Дата увольнения

D

Дата посл. прохождения

D

Трудовая книжка

Название учреждения

D

Должность

Причина

Основание

Назначения и перемещения

Дата

D

Основание

Отдел

Должность

Режим работы

Квалификационный разряд

Дата

D

Основание

Учреждение

D

Квалификация

Подразделение

D

Текущая должность

D

Дата приема на работу

D

Дата окончания испыт. срока

D

Дата начала

Командировки

Дата окончания

D

Место назначения

Отпуска

Вид отпуска

D

Основание

За время с

За время по

Дата начала

Дата увольнения

D

Количество дней

Причина увольнения

D

Дата окончания

ИНН

D

Серия свидет. налогоплател.

D

Номер свидет. налогоплател.

D

Дата свидет. налогоплат.

D

Рис. 2.2.1. Описание связи “объект-свойство”.

READ. PRG

WIEV1.PRG

START. PRG

WRITE. PRG

R_W. PRG

WIEV2.PRG

NEW. PRG

WIEV3.PRG

DEL_REC. PRG

WIEV4.PRG

WIEV5.PRG

BUS_TRIP. PRG

DL_UNDL. PRG

CONVICT. PRG

EDUCAT. PRG

INDEX. PRG

FAMILY. PRG

INITIAL. PRG

PRINT. PRG

HOLIDAY. PRG

REFEREN. PRG

END. PRG

SEARCH. PRG

LANGUAGE. PRG

MOVE. PRG

PASSPORT. PRG

QUALIF. PRG

WORKCARD. PRG

Рис. 2.4.1 Взаимосвязь командных файлов в проекте.

Отзыв

на дипломную работу

Студента факультета технической кибернетики Рег. № .

Жучкова Михаила Юрьевича.

(фамилия, имя, отчество)

на тему: Разработка базы данных “Кадры.” .

Руководитель дипломной работы Иванов Иван Иванович, главный технолог ОАО “ССЗ “Лотос”

(фамилия, имя, отчество, должность, звание)

Дипломная работа содержит пояснительную записку на 87 листах и графический материал на 6 листах.

Дипломная работа посвящена созданию базы данных “Кадры”. В работе осуществлена разработка базы данных по результатам работы отдела кадров ОАО “Судостроительный завод “Лотос”. Работа выполнена по заявке производства.

Характеристика работы:

Работа соответствует заданию и требованиям. Имеет удобный интерфейс “под WINDOWS”. В состав приложения входят удобные и простые сервисные функции.

Разработанная база данных носит определенный унифицированный характер, что позволяет использовать ее после несложных преобразований для других предприятий.

Спроектированная база отличается полнотой и простотой обращения. Архитектура базы позволяет легко использовать входящие в нее данные для расчета трудоемкости постройки судов и формирования необходимых сведений для отдела кадров и руководства.

Студент показал глубокие знания поставленных вопросов, самостоятельно исследовал работу отдела кадров и отработал архитектуру базы данных.

Студент хорошо ознакомлен с фундаментальной литературой по специальности и ее периодическими изданиями, ГОСТами и нормами, правилами техники безопасности.

При создании работы соблюдены правила оформления дипломной работы. Работа отличается качеством и технической грамотностью графической части, четким и ясным изложением содержанием.

Общая оценка выполнения дипломной работы – 5.

Проверка работы базы данных на контрольных данных ОАО “ССЗ “Лотос” показали ее практическую ценность в части облегчения и скорости обработки большого объема данных и составлении необходимых сведений.

Руководитель работы: Иванов Иван Иванович.

(ф. и.о., ученая степень, звание, должность)

Дата______________ Подпись______________

Рецензия

на дипломную работу

Студента факультета технической кибернетики Рег. № .

Жучкова Михаила Юрьевича.

(фамилия, имя, отчество)

Дипломная работа, представленная на рецензию, содержит пояснительную записку на 87 листах и графический материал на 6 листах.

Дипломная работа посвящена созданию базы данных “Кадры”. В работе осуществлена разработка базы данных по результатам работы отдела кадров ОАО “Судостроительный завод “Лотос”.

Характеристика работы.

Настоящая дипломная работа полностью соответствует условию и объему задания.

В работе приведены структура и тип данных, сведение их в определенные объекты и построение связи между ними.

Разработанная база данных дает возможность реально применять ее в задачах подсистемы управления кадрами судостроительного предприятия, отличается полнотой и простотой обращения. Архитектура базы позволяет легко использовать входящие в нее данные для расчета трудоемкости постройки судов и формирования необходимых сведений для отдела кадров и руководства.

В тоже время разработанная база данных носит определенный унифицированный характер, что позволяет использовать ее после несложных преобразований для других предприятий. Сервисные программы обслуживания базы просты в обращении.

Используя реляционную архитектуру, студент отразил научно-технический прогресс.

Работа является составной частью автоматизации управления производственно-хозяйственной деятельности предприятия.

В данной дипломной работе хорошо отражены вопросы охраны труда.

Работа написана ясно и грамотно, отличается четкостью изложения, имеет хорошее качество оформления.

Оценка дипломной работы – 5.

Опробация базы данных на ОАО “ССЗ “Лотос” показали ее практическую ценность в части облегчения и скорости обработки большого объема данных и составлении необходимых сведений.

Рецензент: Петров П. П., ОАО “ССЗ “Лотос”, начальник бюро корпусообработки, инженер

(ф. и.о.,место работы, должность, звание)

Дата_______________ Подпись_______________


Разработка базы данных Кадры