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

  • Вид работы:
    Дипломная (ВКР)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    194,34 Кб
  • Опубликовано:
    2013-12-03
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

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













Дипломная работа

Тема: Разработка базы данных "Кадры"


Оглавление

Введение

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

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

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

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

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

. Охрана труда

Заключение

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

Приложение

Графический материал

Введение

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

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

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

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

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

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

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

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

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

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

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

- фамилия;

- имя;

- отчество;

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

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

- пол;

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

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

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

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

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

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

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

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

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

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

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

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

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

- вид найма;

- вид работы;

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

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

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

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

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

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

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

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

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

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

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

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

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

- область;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

- ИНН;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Описание

Объект

Organic number

I, U

Табельный номер сотрудника

Stuff

Insurance number

I, U

Страховой номер

Stuff

Surname

I, U

Фамилия

Stuff

Name

I, U

Имя

Stuff

Patronymic name

I, U

Отчество

Stuff

Sex

I, U

Пол

Stuff

Date of birth

I, U

Дата рождения

Stuff

Birthplace

I, U

Место рождения

Stuff

Nationality

I, U

Национальность

Stuff

Social origin

I, U

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

Stuff

Citizenship

I, U

Гражданство

Stuff

Education

I, U

Образование

Stuff

Education institution

I, U

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

Stuff

Form of training

I, U

Форма обучения

Stuff

Year of the ending

I, U

Год окончания

Stuff

Diploma

I, U

Диплом (серия)

Stuff

Qualification

I, U

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

Stuff

Speciality

I, U

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

Stuff

Amount education additional

O

Количество записей в разделе "Дополнительное образование"

Stuff

Kind of hiring

I, U

Вид найма

Stuff

Kind of work

I, U

Вид работы

Stuff

Scientific degree

I, U

Ученая степень

Stuff

Scientific rank

I, U

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

Stuff

Narrow speciality

I, U

Узкая специальность

Stuff

Amount foreign languages

O

Количество записей в разделе "Владение иностранными языками"

Stuff

Amount conviction

O

Количество записей в разделе "Наличие судимости"

Stuff

Marital status

I, U

Семейное положение

Stuff

Amount family

O

Количество записей в разделе "Состав семьи"

Stuff

Trade union

I, U

Профсоюз

Stuff

Group of inability

I, U

Группа инвалидности

Stuff

Pensioner

I, U

Пенсионер ?

Stuff

Participant of a war

I, U

Участник войны

Stuff

Postal index

I, U

Домашний индекс

Stuff

Region

I, U

Район

Stuff

Area

I, U

Область

Stuff

Home address

I, U

Домашний адрес

Stuff

Telephone number

I, U

Домашний телефон

Stuff

Passport

I, U

Серия, номер

Stuff

Conscription

I, U

Воинская обязанность

Stuff

Military rank

I, U

Воинское звание

Stuff

Number

I, U

Номер ВУС

Stuff

Military ticket

I, U

Номер военного билета

Stuff

Validity to military service

I, U

Годность к военной службе

Stuff

Attitude to booking

I, U

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

Stuff

Mobile instructions

I, U

Наличие моб, предписания

Stuff

Group of thee account

I, U

Группа учета

Stuff

Category of the account

I, U

Категория учета

Stuff

Commissioners

I, U

Райвоенкомат

Stuff

Date started service

I, U

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

Stuff

Date close service

I, U

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

Stuff

Date of last

I, U

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

Stuff

Amount work record cards

O

Количество записей в разделе "Трудовая книжка"

Stuff

Amount purpose and moving

O

Количество записей в разделе "Назначения и перемещения"

Stuff

Amount qualifying category

O

Количество записей в разделе "Квалификационный разряд"

Stuff

Company name

I, U

Название учреждения

Stuff

Subdivision

I, U

Подразделение

Stuff

Current post

I, U

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

Stuff

Date of employment

I, U

Дата приема на работу

Stuff

Date closed of a trial period

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

Stuff

Amount business trip

O

Количество записей в разделе "Командировки"

Stuff

Amount holiday

O

Количество записей в разделе "Отпуска"

Stuff

Date of dismissal

I, U

Дата увольнения

Stuff

Reason of dismissal

I, U

Причина увольнения

Stuff

Individual number

I, U

Индивидуальный номер налогоплательщика

Stuff

Tax bearer series

I, U

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

Stuff

Tax bearer number

I, U

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

Stuff

Tax bearer distribution date

I, U

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

Stuff

Date begin in education

I, U

Дата поступления в у/з

Education additional

Date of end education

I, U

Дата окончания у/з

Education additional

Additional education

I, U

Образование

Education additional

Name education

I, U

Название у/з

Education additional

Diploma education

I, U

Диплом

Education additional

Form of training additional

I, U

Форма обучения

Education additional

Qualification additional

I, U

Квалификация

Education additional

Speciality additional

I, U

Специальность

Education additional

Other language

I, U

Язык

Language

Level of possession

I, U

Уровень владения

Language

Date of verdict

I, U

Дата вынесения приговора

Conviction

Article

I, U

Статья

Conviction

Period

I, U

Срок

Conviction

Degree of relationship

I, U

Степень родства

Family

Names

I, U

Фамилия, инициалы родственника

Family

Date of birth relative

I, U

Дата рождения

Family

Expense

I, U

На иждивении

Family

By whom is given

I, U

Кем выдан

Passport registration

Date of distribution

I, U

Дата выдачи

Passport registration

Index

I, U

Индекс

Passport

Area registration

I, U

Область

Passport registration

Region registration

I, U

Район

Passport registration

City

I, U

Город

Passport registration

Point

I, U

Населенный пункт

Passport registration

Street

I, U

Улица

Passport registration

House

I, U

Дом

Passport registration

Corps

I, U

Корпус

Passport registration

Flat

I, U

Квартира

Passport registration

Date of statement

I, U

Дата постановки

Work record card

Date of dismissal

I, U

Дата увольнения

Work record card

Name of company

I, U

Название учреждения

Work record card

A post

I, U

Должность

Work record card

Reason card

I, U

Причина

Work record card

Basis card

I, U

Основание

Work-record card

Date moving

I, U

Дата

Purpose and moving

Reason moving

I, U

Основание

Purpose and moving

Department

I, U

Отдел

Purpose and moving

Post

I, U

Должность

Purpose and moving

Method of operating

I, U

Режим работы

Purpose and moving

Date qualification

I, U

Дата

Qualification

Reason qualification

I, U

Основание

Qualification

Qualification

I, U

Квалификация

Qualification

Date started trip

I, U

Дата начала

Business trip

Date closed trip

I, U

Дата окончания

Business trip

Destination

I, U

Место назначения

Business trip

Kind of holiday

I, U

Вид отпуска

Holiday

Basis holiday

I, U

Основание

Holiday

In time with

I, U

За время с

Holiday

In time on

I, U

За время по

Holiday

Date started holiday

I, U

Дата начала

Holiday

Amount

I, U

Количество дней

Holiday

Date closed holiday

I, 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

Дата

Дата окончания

Требуется


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

.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

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

Дополнительное образование

Имя поля

Тип данных

Описание

Числовой (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.

1.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. В соответствии со значением переменных, управление передается тому или иному модулю.

Переменная

Значение

Условие на выполнение

Действие


Выбрано

не выбрано



up

1

5

Up=1

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

down

1

5

Down=1

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

previos

1

5

Previos=1

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

next

1

5

Next=1

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

find

1

5

Find=1

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

print

1

5

Print=1

DO print.prg

exit

1

5

Exit=1

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

eduadd

1

5

Eduadd=1

DO educat.prg WITH orgnum1, edit

forlang

1

5

Forlang=1

DO language.prg WITH orgnum1, edit

conv

1

5

Conv=1

structfam

1

5

Structfam=1

DO family.prg WITH orgnum1, edit

bok

1

5

Bok=1

DO workcard.prg WITH orgnum1, edit

purpos

1

5

Purpos=1

DO move.prg WITH orgnum1, edit

qualcateg

1

5

Qualcateg=1

DO qualif.prg WITH orgnum1, edit

tripsbus

1

5

Tripsbus=1

DO bus_trip.prg WITH orgnum1, edit

holid

1

5

Holid=1

DO holiday.prg WITH orgnum1, edit

pass

1

5

Pass=1

DO 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-распечатки экранов, приведены в приложении.

2. Охрана труда

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Заключение

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

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

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

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

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

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

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

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

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

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

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

Приложение

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

.PRGMACROSCOLOR TO NHELP OFFCLOCK OFFRESOURCE OFFTALK OFFDOHISTORY OFFSTATUS OFFBRSTATUS OFFESCAPE OFFBELL OFFSCOREBOARD OFFCONFIRM ONDATE GERMANCENTURY ONDELETED ONEXACT ONHOURS TO 24STICKY ONCURSOR ONSAFETY OFFMENUPOPUPWINDOWMESSAGE TO SROWS()-1 CENTERstuff.dbf IN a INDEX stuff.idxpassport.dbf IN beducat.dbf IN c INDEX educat.idxlanguage.dbf IN d INDEX language.idxconvict.dbf IN e INDEX convict.idxfamily.dbf IN f INDEX family.idxworkcard.dbf IN g INDEX workcard.idxmoving.dbf IN h INDEX moving.idxqualific.dbf IN i INDEX qualific.idxbus_trip.dbf IN j INDEX bus_trip.idxholiday.dbf IN 11 INDEX holiday.idxaCOLOR TO W+/B

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

DEFINE MENU MAINMENU COLOR SCHEME 3

DEFINE PAD data OF MAINMENU PROMPT ' Д\<AННЫЕ О СОТРУДНИКАХ ' ;

AT 0,0

DEFINE PAD service OF MAINMENU PROMPT ' \<CЕРВИС ' AT 0,24

DEFINE PAD list OF MAINMENU PROMPT ' СП\<PАВКИ ' AT 0,34

DEFINE PAD exit OF MAINMENU ;

PROMPT ' ВЫ\<XОД ' AT 0,45

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.PRGa

edit=.f.

type=1r_w.prg WITH edit,type.PRGa

edit=.t.

type=2r_w.prg WITH edit,type.PRGa

edit=.t.

type=3BLANK

DO r_w.prg WITH edit,type_REC.PRGa

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

NOFLOAT NOZOOM SHADOW CLOSE ;

TITLE 'Пометьте удаляемые записи [CTRL+T] и нажмите <ESCAPE>' 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'Удаление помеченных записей' 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 CLEARDELETED ON_UNDL.PRGorg_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_W.PRGedit,type,up,down,next,previos,find,print,exit,eduadd,forlang, ;,structfam,pass,bok,purpos,qualcateg,tripsbus,holid

list=1

exit=5COLOR TO N/W+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 exit<>1

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 list<>1

list=list-1

ELSE

list=5

ENDIF

ENDIF

IF up=1

IF list<>5

list=list+1

ELSE

list=1

ENDIF

ENDIF

IF find=1

DO search.prg

ENDIF

org_num1=org_numeduadd=1

DO educat.prg WITH org_num1,editforlang=1

DO language.prg WITH org_num1,editconv=1

DO convict.prg WITH org_num1,editstructfam=1

DO family.prg WITH org_num1,editpass=1

DO passport.prg WITH org_num1,editbok=1

DO workcard.prg WITH org_num1,editpurpos=1

DO move.prg WITH org_num1,editqualcateg=1

DO qualif.prg WITH org_num1,edittripsbus=1

DO bus_trip.prg WITH org_num1,editholid=1

DO holiday.prg WITH org_num1,editprint=1

DO print.prg

ENDDOWINDOW win1WINDOW win0.PRGedit

ACTIVATE WINDOW win1

CLEAR=5=5=5=5=5=5=5=5=5=5_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 CYCLEorg_n<>org_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

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

RETURN

FUNCTION un

rec_un=RECNO()

tab_un=org_numtab_unRECNO()=rec_untab_un=org_num AND !EOF()

GO rec_un

RETURN .f.

ENDIF

GO rec_un

RETURN.PRGedit

ACTIVATE WINDOW win1

CLEAR=5=5=5=5=5=5=5=5=5=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.PRGedit

ACTIVATE WINDOW win1

CLEAR=5=5=5=5=5=5=5=5=5=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.PRGedit

ACTIVATE WINDOW win1

CLEAR=5=5=5=5=5=5=5=5=5=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.PRGedit

ACTIVATE WINDOW win1

CLEAR=5=5=5=5=5=5=5=5=5=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_TRIP.PRGorg_num1,editj

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+/Nedit=.t.WINDOW win4

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

@ 1,30 SAY'[Ctrl+F]-поиск поля'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=0WINDOW win4

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

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

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

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

destinat :H='Место назначения:'TOP=0FOR org_num=org_num1WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUEa

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE trial_num WITH f.PRGorg_num1,editeWINDOW win3 FROM 3, 5 TO 20, 75 NOGROW ;NOZOOM CLOSE COLOR SCHEME 10WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;NOZOOM COLOR R+/Nedit=.t.WINDOW win4

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

@ 1,30 SAY'[Ctrl+F]-поиск поля'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=0WINDOW win4

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

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

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

NOAPPEND NOMODIFY NODELETE LOCK 0 ;

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

period :H='Срок:'TOP=0FOR org_num=org_num1WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUEaWINDOW win4WINDOW win3conv_num WITH f.PRGorg_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='Специальность:'

ENDIFTOP

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDOa

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE EDU_NUM WITH f.PRGorg_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='Дата рождения:', ;

ENDIFTOP

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDOa

RELEASE WINDOW win4

RELEASE WINDOW win3famil_num WITH f.PRGorg_num1,edit11WINDOW win3 FROM 3, 0 TO 20, 79 NOGROW ;NOZOOM CLOSE COLOR SCHEME 10WINDOW win4 FROM 21, 0 TO 24, 79 NOGROW ;NOZOOM COLOR R+/Nedit=.t.WINDOW win4

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

@ 1,30 SAY'[Ctrl+F]-поиск поля'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

ACTIVATE WINDOW win4

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

@ 1,28 SAY'[Ctrl+F]-поиск поля'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='Дата окончания:'TOP=0FOR org_num=org_num1WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUEaWINDOW win4WINDOW win3holid_num WITH f.PRGorg_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+/Nedit=.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

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='Уровень владения:'TOP=0FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDOa

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE LANG_NUM WITH f.PRGorg_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+/Nedit=.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

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='Режим работы:'TOP=0FOR org_num=org_num1WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUEa

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE purpos_num WITH f.PRGorg_num1,edit

SELECT bFOR org_num=org_num1FOUND()=.f.

APPEND BLANK

REPLACE org_num WITH org_num1

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

NOFLOAT NOZOOM SHADOW CLOSE COLOR SCHEME 10 TITLE 'ПАСПОРТНЫЕ ДАННЫЕ'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 CYCLEa

RELEASE WINDOW win3.PRGorg_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+/Nedit=.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

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='Квалификационный разряд:'TOP=0FOR org_num=org_num1WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUEa

RELEASE WINDOW win4

RELEASE WINDOW win3

REPLACE qual_num WITH f.PRGorg_num1,editg

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.PRGa

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 TOPn=1 TO EDU_NUM1

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

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

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

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

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

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

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

? REPLICATE(' -',39)

SKIPnFILTER TOa

? SPACE (25),'Владение иностран. языками:',LANG_NUM_NUM1=LANG_NUMdFILTER TO org_num=org_num1

GO TOPn=1 TO LANG_NUM1

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

SKIPnFILTER TOa

? SPACE (25),'Наличие судимости:',conv_num_num1=conv_numeFILTER TO org_num=org_num1

GO TOPn=1 TO conv_num1

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

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

? REPLICATE(' -',39)

SKIPnFILTER TOa

? SPACE (25),'Состав семьи:',famil_num_f1=famil_numfFILTER TO org_num=org_num1

GO TOPn=1 TO struct_f1

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

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

? REPLICATE(' -',39)

SKIPnFILTER TOa

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

f=0

LOCATE FOR org_num=org_num1

DO WHILE EOF()=.f.

IF FOUND()=.t.

f=f+1

ENDIF

CONTINUE

ENDDOFILTER TO org_num=org_num1

GO TOPn=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

SKIPnFILTER TOa

? SPACE (25),'Трудовая книжка:',record_num_num1=record_numgFILTER TO org_num=org_num1

GO TOPn=1 TO record_num1

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

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

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

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

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

? REPLICATE(' -',39)

SKIPnFILTER TOa

? SPACE (25),'Назначения и перемещения:',purpos_num_num1=purpos_numhFILTER TO org_num=org_num1

GO TOPn=1 TO purpos_num1

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

? ' Отдел: ',depart

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

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

? REPLICATE(' -',39)

SKIPnFILTER TOa

? SPACE (25),'Квалификационный разряд:',qual_num_num1=qual_numiFILTER TO org_num=org_num1

GO TOPn=1 TO qual_num1

? ' Дата: ',date_qual,' Основание:',reas_qual

? ' Квалификация:',qualificat

? REPLICATE(' -',39)

SKIPnFILTER TOa

? SPACE (25),'Командировки:',trial_num=trial_numjFILTER TO org_num=org_num1

GO TOPn=1 TO trips1

? ' Дата начала: ',start_trp,' Дата окончания:',closed_trp

? ' Место назначения:',destinat

? REPLICATE(' -',39)

SKIPnFILTER TOa

? SPACE (25),'Отпуска:',holid_num_num1=holid_num11FILTER TO org_num=org_num1

GO TOPn=1 TO holid_num1

? ' Вид отпуска: ',kind_hol

? ' Основание: ',basis_hol

? ' За время с: ',with_hol,' За время по: ',on_hol

? ' Дата начала: ',d_st_hol,' Количество дней:',amount

? ' Дата окончания:',d_en_hol

? REPLICATE(' -',39)

SKIPn

SET FILTER TO

SELECT aCLEAR

ENDPRINTJOB

SET PRINTER OFF

SET CONSOLE ON.PRGWINDOW win3 FROM 3, 11 TO 20, 69 NOGROW ;NOZOOM SHADOW CLOSE;'Выберите запись и нажмите <ESCAPE>' COLOR SCHEME 10WINDOW win3

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

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

RETURN.PRG"Индексирую таблицы" NOWAIT WINDOW

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.idxCLEAR.PRGWINDOW 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"Инициализация таблиц" 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.PRGasearch.prg

_peject='after'

SET PRINTER ON

SET CONSOLE OFF

PRINTJOB"Печать" 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(),'г'aCLEAR

ENDPRINTJOB

SET PRINTER OFF

SET CONSOLE ON.PRGALL

Графический материал



Рис. 2.2.1. Описание связи "объект-свойство".

автоматизация кадры приложение файл

Рис. 2.4.1 Взаимосвязь командных файлов в проекте.

Похожие работы на - Разработка базы данных 'Кадры'

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!