Реферат: Разработка базы данных Кадры
Название: Разработка базы данных Кадры Раздел: Рефераты по информатике, программированию Тип: реферат | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
усский гуманитарно-технический колледж «Тантал» Факультет технической кибернетики«Утверждаю» Зав. кафедройфакультета технической кибернетики __________________________ «_____»_____________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(Вычисления). В столбец «Объект» записывается имя объекта. В качестве имен элементов/объектов подберем краткий английский перевод описания этих элементов/объектов.
Теперь можно приступить к более тщательному анализу данных и объединению отдельных элементов данных в объекты. Эти объекты станут впоследствии основой для создания таблиц в проектируемой базе данных. Далее следует заполнить еще один комплект рабочих бланков, который поможет объединить элементы данных в объекты. В верхней части бланка для каждого объекта надо перечислить все объекты связанные с данным. В графе бланка «Связь» указывается тип связи («один-ко-многим» или «один-к-одному»). Для каждого элемента данных, в рабочем бланке объекта, обязательно должны быть указаны тип данных (текстовый, числовой, денежный, Мемо и т.д.) и длина поля, необходимая для их хранения. Должно быть дано краткое описание этого элемента, которое впоследствии будет использоваться при определении таблицы. Также, в бланке должно быть записано условие на значение, которое будет применяться к соответствующему полю данных. В дальнейшем, можно будет задать эти условия в программных файлах FoxPro, чтобы использовать их для проверки данных. Опишем используемые объекты, заполнив рабочий бланк №2.
Теперь, после заполнения всех рабочих бланков для объектов, каждый из них можно рассматривать в качестве основы для создания некоторой таблицы. 2.3 Проектирование базы данных При проектировании базы данных следует придерживаться правил нормализации таблиц: Правило 1: Каждое поле любой таблицы должно быть уникальным. Правило 2: Каждая таблица должна иметь уникальный идентификатор (первичный ключ), который может состоять из одного или нескольких полей таблицы. Правило 3: Для каждого значения первичного ключа должно быть одно и только одно значение любого из столбцов данных, и это значение должно относиться к объекту таблицы. Правило 4: Должна иметься возможность изменять значения любого поля (не входящего в первичный ключ), и это не должно повлечь за собой изменение другого поля.[2] Каждый агрегированный объект будет представлен отдельной таблицей базы данных. Элементы данных будут представлены полями таблиц. Имена таблиц и их полей подберем исходя из имен объектов и элементов данных. В качестве первичного ключа используем табельный номер. Проект базы данных включает в себя 11 таблиц. Опишем базу данных в табличной форме.
Итак, спроектировано 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. В соответствии со значением переменных, управление передается тому или иному модулю.
Модули 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 в 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] и нажмите
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 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_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_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 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
'Выберите запись
и нажмите 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. Опробация базы данных на ОАО «ССЗ «Лотос» показали ее практическую ценность в части облегчения и скорости обработки большого объема данных и составлении необходимых сведений. Рецензент: Петров П.П., ОАО «ССЗ «Лотос», начальник бюро корпусообработки, инженер (ф.и.о.,место работы, должность, звание) Дата_______________ Подпись_______________ |