Электронный диспетчер

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

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 03.07.2015
Размер файла 3,4 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Рисунок 18. Панели добавления дисциплины

При удалении дисциплины из таблицы расписания произойдёт обратный расчет и группе вернутся часы, которые небыли проведены.

При удалении группы, группа удаляется только с таблицы расписания, если же вернуть группу нажатием кнопки «добавить группу» или «Все группы» группа вернется вмести с составленным на день расписанием.

Из составленного расписания на день программа позволяет сформировать отчет в виде HTM файла. Для формирования отчета нужно выбрать в нижней части окна день недели, который необходимо преобразовать и нажать в меню «правка» кнопку «сформировать отчет» после чего начинает формироваться файл HTM который будет содержать таблицу с расписанием взятым из формы. Результирующий файл сохраняется в той же директории где и программа (…\DispeCH\RASPIS), после сохранения файла программа открывает его для демонстрации в соответствии с рисунком 19.

Рисунок 19. Таблица отчетного HTM файла.

Кроме формирования отчета в виде HTM файла, также берётся во внимание и то, что почти на каждом персональном компьютере (кроме игровых клубов) установлен пакет прикладных программ Microsoft Office. Многие привыкли работать в приложении Excel, для удобства этих пользователей имеется возможность преобразовать составленное расписание пар (уроков) в Excel файл, для этого необходимо выбрать день недели с необходимым расписанием и нажать на кнопку «в Excel» в меню правка, после чего на экране появится отчет в таблице Excel в соответствии с рисунком 20. Сформированный отчет можно вывести на печать или сохранить и в дальнейшим хранить в электронном виде.

Рисунок 20. Сформировавшийся файл Excel

Каждое окно программы для более удобной работы имеет своё главное меню в соответствии с рисунком 21, которое располагается в самой верхней части окна и открывается по щелчку левой кнопки мыши. Все кнопки, которые содержит главное меню, соответствуют кнопкам на форме. И выполняют соответствующие функции. Также в главном меню имеется вкладка «Упорядочить по…» где можно выбрать по каким данным отсортировать таблицу.

Рисунок 21. Примеры главного меню окон

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

Рисунок 22. Примеры контекстного меню из разных окон.

Пятая кнопка - выход - самая последняя кнопка, с помощью которой завершается работа программы.

6. Охрана труда в организации на рабочем месте

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

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

Воздействие опасного производственного фактора на человека приводит к несчастному случаю. Воздействие вредного производственного фактора на человека приводит к профессиональному заболеванию.

Требование безопасности на рабочем месте.

Конструкция ВТ обеспечивает защиту от ионизирующих излучений. Рентгеновское излучение от дисплея не должно превышать 100мкР/ч на расстоянии 5 см от экрана, напряжённость электростатистического поля не более 15 килоВольт/метр.

Для полов используют покрытие поливинилхлоридное двухслойное антистатистическое.

Радиаторы и трубопроводы оборудуют диэлектрическими ограждениями.

Окна должны выходить на север, северо-восток, северо-запад, окна иметь жалюзи.

Площадь из расчёта 6 метров в квадрате на рабочее место.

Питание средств ВТ осуществляется от распределённых щитов токоведущей части, которая надёжно ограждается.

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

Для обеспечения электробезопасности необходимо устройство защитного заземления. Запрещается последовательное включение заземляющих проводников нескольких электроприёмников.

Необходимо 1 раз в год осуществлять размеры: рентгеновского излучения, напряжённости электростатистического поля, сопротивления, заземления, изоляцию.

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

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

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

Вопросы, относящиеся к обеспечению охраны труда при работе за компьютером, регулируются Федеральным законом от 17 июля 1999 г. № 181-ФЗ <Об основах охраны труда в Российской Федерации> (далее - Закон об охране труда) и Санитарными правилами и нормами СанПиН 2.2.2.542-96 <Гигиенические требования к видеодисплейным терминалам, персональным электронно-вычислительным машинам и организации работы>.

В соответствии с СанПиН 2.2.2.542-96 помещения для работы на компьютерах должны иметь естественное и искусственное освещение.

Естественное освещение должно осуществляться через светопроемы, ориентированные преимущественно на север и северо-восток, и обеспечить коэффициент естественной освещенности (КЕО) не ниже 1,2% в зонах с устойчивым снежным покровом и не ниже 1,5 % на остальной территории. Указанные значения КЕО нормируются для зданий, расположенных в третьем световом климатическом поясе.

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

Площадь на одно рабочее место для взрослых пользователей должна быть не менее 6 м2, а объем - не менее 23 м3

Для внутренней отделки помещений должны использоваться диффузно-отражающие материалы с коэффициентом отражения от потолка - 0,7 - 0,8; для стен 0,5 - 0,6; для пола - 0,3 - 0,5. Полимерные материалы для внутренней отделки должны быть разрешены для применения органами и учреждениями Госсанэпиднадзора.

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

В производственных помещениях, в которых установлены компьютеры, микроклимат должен соответствовать следующим санитарным нормам:

температура воздуха в теплый период года - не более 23-25 0С, в холодный - 22-24о С;

относительная влажность воздуха - 40-60%;

скорость движения воздуха - 0,1м/с.

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

Уровень положительных и отрицательных аэрофонов в воздухе помещений должен соответствовать <Санитарно-гигиеническим нормам допустимых уровней ионизации воздуха производственных и общественных помещений>.

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

Освещенность поверхности стола в зоне размещения рабочего документа должна составлять 300 - 500 лк.

Источники освещения следует устанавливать таким образом, чтобы они не ослепляли, при этом яркость светящихся поверхностей (окна, светильники и др.), находящихся в поле зрения, должна быть не более 200 кд/м2.

В качестве источников света при искусственном освещении должны применяться преимущественно люминесцентные лампы типа ЛБ. При устройстве отраженного освещения допускается применение металлогалогенных ламп мощностью до 250 Вт, а в светильниках местного освещения - ламп накаливания.

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

Расстояние между рабочими столами с мониторами (в направлении тыла поверхности одного монитора и экрана другого) должно быть не менее 2 м, а между боковыми поверхностями мониторов - не менее 1,2 м.

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

Желательно, чтобы высоту рабочей поверхности стола можно было регулировать в пределах 680-800 мм, а при отсутствии такой возможности она должна быть равна 725 мм. Модульными размерами рабочей поверхности компьютерного стола, на основании которых рассчитывают конструктивные размеры, следует считать: ширину 800, 1000, 1200 и 1400 мм; глубину 800 и 1000 мм.

Рабочий стол должен иметь пространство для ног высотой не менее 600 мм, шириной - не менее 500 мм, глубиной на уровне колен - не менее 450 мм, а на уровне вытянутых ног - не менее 650 мм.

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

Рабочий стул (кресло) должен быть подъемно- поворотным, его высота и углы наклона сиденья и спины, а также расстояние спинки от переднего края сиденья должны независимо и легко регулироваться и иметь надежную фиксацию. размеры рабочего стула приведены в СанПиН 2.2.2.542-96.

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

Экран монитора должен находится от глаз пользователя на оптимальном расстоянии 600-700 мм, но не ближе 500 мм с учетом размеров алфавитно-цифровых знаков и символов.

В помещении с компьютерами должна проводиться ежедневная влажная уборка. Они должны быть оснащены аптечкой первой помощи и углекислотными огнетушителями.

СанПиН 2.2.2.542-96 устанавливает категории тяжести и напряженности работы на компьютерах, которые определяются: для группы А - по суммарному числу считываемых знаков за рабочую смену, но не более 60 тыс. знаков за смену; для группы Б - по суммарному числу считываемых или вводимых знаков за рабочую смену, но не более 40 тыс. знаков за смену.

Время регламентированных перерывов в течение рабочей смены устанавливается в зависимости от продолжительности рабочей смены, вида и категории трудовой деятельности:

Виды трудовой деятельности разделяются на три группы:

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

группа Б - работа по вводу информации;

группа В - творческая работа в режиме диалога с ЭВМ.

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

Вид трудовой деятельности, тяжесть и напряженность работ устанавливается на основе аттестации рабочих мест по условиям труда. Как правило, работа сотрудников отделов кадров относится к группам А и Б.

При восьмичасовой рабочей смене и работе на компьютере регламентированные перерывы следует устанавливать:

для I категории работ - через 2 часа от начала рабочей смены и через 2 часа после обеденного перерыва продолжительностью по 15 мин.;

для II категории работ - через 2 часа от начала рабочей смены и через 1,5 - 2 часа после обеденного перерыва продолжительностью по 15 мин. или через каждый час работы продолжительностью по 10 мин.

Во время регламентированных перерывов с целью снижения нервно-эмоционального напряжения, уменьшения утомления глаз, устранения гиподинамии и гипокинезии целесообразно выполнять комплексы упражнений, изложенных в СанПиН 2.2.2.542-96.

Курить в помещениях строго запрещается.

Безопасность труда на рабочем месте диспетчера.

Рентгеновское излучение от дисплея не замеряется.

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

Радиаторы и трубопроводы оборудованы диэлектрическими ограждениями.

Площадь из расчёта на рабочее место около 12 метров в квадрате.

Питание средств ВТ осуществляется от распределённых щитов токоведущей части, которая надёжно ограждается.

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

Необходимые замеры размером: рентгеновского излучения, напряжённости электростатистического поля, сопротивления, заземления, изоляцию не осуществляют.

Естественное освещение осуществляется через светопроемы, значения КЕО не замеряются.

Температура воздуха в теплый период года - не более 21-240С, в холодный - 19-21ОС. В холодный период времени, температура измеряется ежедневно;

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

Расстояние между рабочими столами с мониторами (в направлении тыла поверхности одного монитора и экрана другого) 5,5 м.

Оконные проемы оборудованы регулируемыми жалюзи.

Высоту рабочей поверхности стола 750 мм не имеет возможности регулироваться. Модульные размерами рабочей поверхности компьютерного стола: ширина 2300 мм; глубина 1000 мм.

Экран монитора находится от глаз диспетчера на оптимальном расстоянии 600 мм.

В помещении проводиться ежедневная влажная уборка. Кабинет оснащен аптечкой первой помощи и углекислотными огнетушителями.

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

Заключение

Целью дипломного проекта стало: создать программную оболочку «Электронный диспетчер», составить характеристику автоматизированного рабочего места диспетчера по составлению расписания колледжа.

В чем же все-таки заключается основное преимущество автоматизированного рабочего места диспетчера перед "ручными" методами?

Анализ основной информации показал, что в учебном заведении постоянное расписание существует на семестр, но данное расписание корректируется каждый день (отсутствие преподавателей, перенос занятий и т.п.) и занимает достаточно большое количество времени.

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

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

В процессе выполнения дипломного проекта были получены следующие результаты:

1. Рассмотрены основные элементы и правила организации автоматизированного рабочего места.

2. Изучены правила ведения расписания колледжа.

3. Рассмотрены функциональные обязанности и задачи диспетчера колледжа по составлению расписания.

4. Разработана модель программного продукта, соответствующая условию заказчика (справочная система, с возможностью формирования текущего расписания).

5. Построена диаграмма прецедентов, которая определяет действия пользователей по направлениям операций.

6. Создана программная оболочка «Электронной диспетчер», функциональное назначение которой - введение, изменение данных по в справочниках по направлениям Преподаватель, Группа, Дисциплина и формирование текущего расписания.

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

7. Рассмотрены вопросы охрана труда в учебном заведении.

Цель дипломного проекта достигнута.

Программная оболочка «Электронный диспетчер» стала составной частью организации работы диспетчера колледжа по составлению расписания и вошла в структуру АРМ диспетчера колледжа.

Программная оболочка был апробирован в течении месяца в ГККП «Житикаринский политехнический колледж», что подтверждено актом о внедрении.

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

Список использованной литературы

Дзагуров Л. Опыт автоматизации промышленных предприятий / Бухгалтерский учет. - 1998 - № 2.

Вендров А.М. Проектирование программного обеспечения экономических систем.- М.: Наука, 2000 - с.257.

Гайдамакин Н.А. Автоматизированные информационные системы, базы и банки данных. Вводный курс: Учеб.пособие.М.:Гелиос, 2002 - с.368.

Глушков В. М.Человек и вычислительная техника.-М.:Наука, 2000 - с.269.

Кантарь И. Л. Автоматизированные рабочие места управленческого аппарата.- М.: Наука, 1998 - с.320.

Садердинов А.А., Трайнев В.А. Построение комплексных программно- технических проектов интегрированных систем организационного управления.- М.: Юнити, 2001 - с.412.

Перегудов Ф. И. Информационные системы для руководителей.- М.: Финансы и статистика, 1989 - с.367.

Глазунов Л.П. Основы теории надежности автоматических систем управления. - М.: Энергоатомиздат, 1999 - с.458.

.Бройдо В. Л., Крылова В. С. Научные основы организации управления и построения АСУ.-М.: Высшая школа, 1998 - с.339

Леонтьев В.П. Персональный компьютер. Карманный справочник.-М.: ОЛМА-ПРЕСС, 2004 - с.928.

Глушков В. М. Основы безбумажной информатики.- М.: Наука, 1999 - с.552.

Вильямс А.. Системное программирование в Windows 2000.- СПб. Питер, 2001 - с.335.

Андреев А., Кокрева О., Чекмарев А., Юрченко Л. Microsoft ® Windows XP: Home Edition и Professional. Русская версия/ Под общ.ред. А.Н.Чекмарева - СПб: БХВ-Петербург, 2004 - с.640.

Шитов В.Н. Excel. Единый справочник - М.: ГроссМедиа, 2005 - с.504.

Пасько В.П. Самоучитель работы на персональном компьютере, 6-е изд., переработанное. - СПб: Питер; Киев: Издательская группа BHV, 2005 - с.654.

Яснев Ю.Д. Базы данных Access. Учебное пособие для студентов 2 курса экономических специальностей. - Челябинск, 2000 - с.55.

Аппак М.А. Автоматизированные рабочие места на основе персональных ЭВМ.- М.: Радио и связь, 1989 - с.176

Яворский В.В., Яворская Г.М. Введение в информационные технологии. - Издательство «Фолиант»: Астана - 2007 - с.255.

Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения: Учебное пособие - («Высшее образование») - М.: ИД «ФОРУМ» - ИНФРА-М, 2008 - с. 400.

Яворский В.В., Томилова Н.И. Технология разработки программного обеспечения. - Астана: Фолиант, 2007 - с.376.

Автоматизированные информационные технологии в экономике: Учебник М.И.Семенов, И.Т.Трубилин, В.М. Лойко, Т.П.Барановская; под общей ред. И.Т.Трубилина. - М.: Финансы и статистика, 2001 - с.368

Автоматизированное рабочее место для статистической обработки данных/В.В. Шураков, Д.М. Дайитбегов, С.В. Мизрохи, С.В. Ясеновский. - М.: Финансы и статистика, 1990 - с.190.

Климова Л.М. Delhi7. Основы программирования. Решение типовых задач. - М.: КУДИЦ-ОБРАЗ, 2006 - с.480.

Культин Н.Б. Delhi в задачах и примерах. - С.-П.: БХВ - Петербург, 2007 - с.247.

Культин Н.Б. Delhi.NET в задачах и примерах. - С.-П.: БХВ - Петербург, 2006 - с.384.

Нил Дж. Рубенкинг Язык программирования Delphi для "чайников". Введение в Borland Delphi 2006. - М.: «Диалектика», 2007 - с.336

Лямец В.И., Тевяшев А.Д. Системный анализ. - Харьков: ХТУРЭ, 1998 - с.252.

Приложение

unit Unit1;

var

d:byte; Put,Put2:string; Form1: TForm1;

implementation

{$R *.DFM}

function ExecuteFile(const FileName, Params, DefaultDir: string; ShowCmd: Integer): THandle;

var zFileName, zParams, zDir: array[0..79] of Char;

begin

Result := ShellExecute(Application.MainForm.Handle, nil, StrPCopy(zFileName, FileName), StrPCopy(zParams, Params),StrPCopy(zDir, DefaultDir), ShowCmd);end;

procedure ponedelnik;

var z,fff:integer;

begin // подсчет часы на будущию неделю

if form1.peg5.TabIndex=0 then // если суббота // по всем группам

for z:=1 to form1.StringGrid1.ColCount-1 do

begin form1.Table2.Active:=false; //база дисцеплин группы 1

form1.Table2.DatabaseName:=put+'\BDE\GRUPP';

form1.Table2.TableName:=form1.StringGrid1.Cells[z,0]+'.db';

form1.Table2.Active:=true; // открытие БД дистциплин группы

form1.Table2.First; // Table2.FieldByName('Q').Value:=0;

while not form1.Table2.Eof do begin form1.Table2.Edit; //по всем парам 2

form1.Table2.FieldByName('_N').Value:=form1.Table2.FieldByName('_N').Value+form1.Table2.FieldByName('N').Value;

if (form1.Table2.FieldByName('_N').Value>0) then //если часы остались

begin form1.Table2.FieldByName('A').Value:=trunc(form1.Table2.FieldByName('_N').Value/2); //3 form1.Table2.FieldByName('VO_N').Value:=trunc(form1.Table2.FieldByName('A').Value/6)+1;end //3

else begin form1.Table2.FieldByName('VO_N').Value:=0; {form1.Table2.FieldByName('A').Value:=0} end;

form1.Table2.Next; end;{2}fff:=0;

form1.Table2.First; while not form1.Table2.eof do begin fff:=fff+form1.Table2.FieldByName('_N').Value; form1.Table2.Next; end; form1.Table2.First; while not form1.Table2.eof do begin form1.Table2.Edit; form1.Table2.FieldByName('Q').Value:=trunc(fff/12)+1; form1.Table2.Next;end;

end; { //1 //конец подсчет часы на будущию неделю } end;

procedure TForm1.BitBtn1Click(Sender: TObject); // нажата кнопка д.у преподователя

begin form1.Menu:=MainMenu1; form1.Table1.DatabaseName:=put+'\BDE\DANNI'; form1.Table1.TableName:='PREPODOVATELI.DB';

form1.Table1.Active:=true; FORM1.DBGri1.DataSource:=DataSource1; form1.Notebook1.ActivePage:='EditPrepodovateli';

end;

procedure TForm1.BitBtn2Click(Sender: TObject); // нажата кнопка д.у предмет

begin form1.Menu:=MainMenu2; form1.Table1.DatabaseName:=put+'\BDE\DANNI'; form1.Table1.TableName:='Predmeti.db';

form1.Table1.Active:=true; FORM1.DBGri2.DataSource:=DataSource1; form1.Notebook1.ActivePage:='EditPredmeti';

end;

procedure TForm1.BitBtn3Click(Sender: TObject); // нажата кнопка д.у группу

begin form1.Menu:=MainMenu3; form1.Table1.DatabaseName:=put+'\BDE\DANNI'; form1.Table1.TableName:='Gruppi.db';

form1.Table1.Active:=true; FORM1.DBGri3.DataSource:=DataSource1; form1.Notebook1.ActivePage:='EditGruppi';

end;

procedure TForm1.Nazed2Click(Sender: TObject);

begin form1.Table1.IndexName:=''; form1.Menu:=MainMenu; FORM1.DBGri2.DataSource.Edit;

form1.Table1.Active:=false; form1.Notebook1.ActivePage:='титульный';

end;

procedure TForm1.Nazed3Click(Sender: TObject);

begin form1.Table1.IndexName:=''; form1.Menu:=MainMenu; FORM1.DBGri3.DataSource.Edit;

form1.Table1.Active:=false; form1.Notebook1.ActivePage:='титульный';

end;

procedure TForm1.ADD1Click(Sender: TObject);

begin form1.Panel1_1.Enabled:=false; form1.Panel1.Visible:=false; form1.Panel1_3.Visible:=true; form1.DBGri1.Enabled:=false;

end;

procedure TForm1.ADD2Click(Sender: TObject);

begin form1.Panel2_4.Visible:=false; form1.Panel2_1.Visible:=true; form1.Panel2.Enabled:=false; form1.DBGri2.Enabled:=false;

end;

procedure TForm1.ADD3Click(Sender: TObject);

begin Panel3_5.Visible:=false; form1.Panel3.Visible:=true; panel3_3.Enabled:=false; form1.DBGri3.Enabled:=false;

end;

procedure TForm1.Delete1Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN FORM1.Table1.Delete end ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0)

end;

procedure TForm1.Delete2Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN FORM1.Table1.Delete end

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.Delete3Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.db'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG0'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG0'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.PX'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG1'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG1'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG2'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG2'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG3'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG3'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG4'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG4')); FORM1.Table1.Delete; END

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.Locat3Click(Sender: TObject);

var i:string;

begin IF not form1.Table1.IsEmpty THEN BEGIN case form1.RadioGroup3.ItemIndex of 0:i:='INDEX'; 1:i:='NAME';end;

if Table1.Locate(i, Edit3.Text,[loCaseInsensitive, loPartialKey]) then else

application.MessageBox('Поиск не дал результата','Внимание',0); form1.Edit3.Text:='';END ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0); Edit3.Text:=''; end;

procedure TForm1.Locat1Click(Sender: TObject);

VAR I:STRING;

BEGIN IF not form1.Table1.IsEmpty THEN BEGIN case form1.RadioGroup1.ItemIndex of 0:i:='TAB';1:i:='PREPOD';end;

if Table1.Locate(i, Edit1.Text,[loCaseInsensitive, loPartialKey]) then else

application.MessageBox('Поиск не дал результата','Внимание',0);Edit1.Text:='';end

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.Locat2Click(Sender: TObject);

VAR I:STRING;

BEGIN IF not form1.Table1.IsEmpty THEN

BEGIN case form1.RadioGroup2.ItemIndex of 0:i:='KOD'; 1:i:='PREDMET'; end;

if Table1.Locate(i, Edit2.Text,[loCaseInsensitive, loPartialKey]) then else

application.MessageBox('Поиск не дал результата','Внимание',0); form1.Edit2.Text:=''; end

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.Edit1Change(Sender: TObject);

begin if edit1.Text='' then locat1.Enabled:=false else locat1.Enabled:=true; end;

procedure TForm1.Edit2Change(Sender: TObject);

begin if edit2.Text='' then locat2.Enabled:=false else locat2.Enabled:=true; end;

procedure TForm1.Edit3Change(Sender: TObject);

begin if edit3.Text='' then locat3.Enabled:=false else locat3.Enabled:=true; end;

procedure TForm1.EditPar3Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN

form1.Menu:=MainMenu4;form1.Table1.IndexName:='';form1.Notebook1.ActivePage:='Список предметов'; //свясь с базой нагрузки <группа>.db

form1.Table2.DatabaseName:=put+'\BDE\GRUPP'; form1.Table2.TableName:=form1.Table1.FieldByName('Name').Text+'.db';

form1.Table2.Active:=true; Label14.Caption:='Группа '+Table1.FieldByName('Name').AsString; //свясь с базой PREDMETI.db

form1.Table1.Active:=false; form1.Table1.DatabaseName:=put+'\BDE\DANNI'; form1.Table1.TableName:='PREDMETI.db';

form1.Table1.Active:=true; //свясь с БД Prepodovateli.db

form1.Table3.DatabaseName:=put+'\BDE\DANNI'; form1.Table3.TableName:='Prepodovateli.db'; form1.Table3.Active:=true;

form1.DBGri4.DataSource:=DataSource2;form1.DBComboBox4.DataSource:=DataSource2; form1.DBComboBox4.ListSource:=DataSource1;

form1.DBComboBox4.DataField:='PREDMET';form1.DBComboBox4.KeyField:='predmet';form1.DBComboBox4_4.DataSource:=DataSource2;

form1.DBComboBox4_4.ListSource:=DataSource3;form1.DBComboBox4_4.DataField:='prepod';form1.DBComboBox4_4.KeyField:='prepod';

form1.DBEdit4.DataSource:=DataSource2;form1.DBEdit4.DataField:='VV';form1.DBEdit4_4.DataSource:=DataSource2;

form1.DBEdit4_4.DataField:='N'; END ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.Nazad4Click(Sender: TObject);

begin

form1.Table2.IndexName:='';form1.Menu:=MainMenu3;form1.DBEdit4.DataField:='';form1.DBEdit4.DataSource.Edit;form1.DBEdit4_4.DataField:='';

form1.DBEdit4_4.DataSource.Edit;fORM1.DBGri4.DataSource.Edit;form1.DBComboBox4.DataField:=''; form1.DBComboBox4.KeyField:=''; form1.DBComboBox4.DataSource.Edit; form1.DBComboBox4.ListSource.Edit;form1.DBComboBox4_4.DataField:=''; form1.DBComboBox4_4.KeyField:=''; form1.DBComboBox4_4.DataSource.Edit; form1.DBComboBox4.ListSource.Edit;form1.Notebook1.ActivePage:='EditGruppi';

form1.Table1.Active:=false; form1.Table1.TableName:=''; form1.Table1.DatabaseName:='';form1.Table2.Active:=false;

form1.Table2.DatabaseName:=''; form1.Table2.TableName:='';form1.Table3.Active:=false; form1.Table3.DatabaseName:='';

form1.Table3.TableName:='';form1.Table1.DatabaseName:=put+'\BDE\DANNI';form1.Notebook1.ActivePage:='EditGruppi';

form1.Table1.TableName:='Gruppi.db';form1.Table1.Active:=true;FORM1.DBGri3.DataSource:=DataSource1; end;

procedure TForm1.ADD3_1Click(Sender: TObject);

var z:integer;

begin if not fileexists(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.db') then begin

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.db'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.db'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.XG0'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.XG0'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.YG0'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.YG0'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.PX'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.PX'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.XG1'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.XG1'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.YG1'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.YG1'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.XG2'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.XG2'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.YG2'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.YG2'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.XG3'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.XG3'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.YG3'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.YG3'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.XG4'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.XG4'),true);

windows.CopyFile(pchar(put+'\BDE\GRUPP\BOL\BOLVANKA.YG4'),pchar(put+'\BDE\GRUPP\'+edit3_3_3.Text+'.YG4'),true);

for z:=1 to 6 do FORM1.Table1.Insert; form1.Table1.FieldByName('index').Value:=strtoint(edit3_3.Text);

form1.Table1.FieldByName('NAME').Value:=edit3_3_3.Text; form1.Table1.Next; form1.Table1.Prior;panel3.Visible:=false;

edit3_3_3.Text:='';edit3_3.Text:='';panel3_3.Enabled:=true;Panel3_5.Visible:=true;form1.DBGri3.Enabled:=true;end

else application.MessageBox(' Группа уже существует ','В н и м а н и е',0) end;

procedure TForm1.Nazad1Click(Sender: TObject);

begin

FORM1.DBGri1.DataSource.Edit;form1.Table1.Active:=false; form1.Table1.IndexName:='';

form1.Notebook1.ActivePage:='титульный';form1.Menu:=MainMenu; end;

procedure TForm1.CenclClick(Sender: TObject);

begin

Panel3_5.Visible:=true;panel3.Visible:=false;panel3_3.Enabled:=true;

form1.DBGri3.Enabled:=true; end;

procedure TForm1.Editen3Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN Panel3_5.Visible:=false;

edit3_2.Text:=form1.Table1.FieldByName('Name').Text; edit3_1.Text:=form1.Table1.FieldByName('index').Text;

form1.Panel3_2.Visible:=true; panel3_3.Enabled:=false;

form1.DBGri3.Enabled:=false; END

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.EditBtn3_1Click(Sender: TObject);

begin Panel3_5.Visible:=true;panel3_2.Visible:=false;panel3_3.Enabled:=true;

form1.DBGri3.Enabled:=true; end;

procedure TForm1.EditBtn3Click(Sender: TObject);

begin Panel3_5.Visible:=true;

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.db'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.db'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG0'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.XG0'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG0'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.YG0'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.PX'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.PX'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG1'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.XG1'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG1'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.YG1'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG2'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.XG2'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG2'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.YG2'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG3'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.XG3'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG3'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.YG3'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG4'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.XG4'));

windows.MoveFile(pchar(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG4'),pchar(put+'\BDE\GRUPP\'+edit3_2.Text+'.YG4'));

FORM1.Table1.Edit; form1.Table1.FieldByName('Name').Value:=edit3_2.Text; form1.Table1.FieldByName('index').Value:=strtoint(edit3_1.Text);

panel3_2.Visible:=false;panel3_3.Enabled:=true;form1.DBGri3.Enabled:=true; end;

procedure TForm1.ADD4Click(Sender: TObject);

begin form1.Panel4.Enabled:=false;form1.DBGri4.Enabled:=false;

form1.Panel4_4.Visible:=true;form1.Table2.Insert; end;

procedure TForm1.AddBtn4Click(Sender: TObject);

begin form1.Table2.FieldByName('VP').Value:=form1.Table2.FieldByName('VV').Value;

form1.Table2.FieldByName('_N').Value:=form1.Table2.FieldByName('N').Value;

form1.Table2.FieldByName('VO_N').Value:=0; try form1.Table2.Next;

form1.Panel4_4.Visible:=false; form1.Table2.Prior;

form1.Panel4.Enabled:=true; form1.DBGri4.Enabled:=true;

except application.MessageBox('Повторение дисцеплины','Внимание',0) end; end;

procedure TForm1.DelBtn4Click(Sender: TObject);

begin form1.Panel4.Enabled:=true; form1.DBGri4.Enabled:=true; form1.Table2.Delete;

form1.Panel4_4.Visible:=false; end;

procedure TForm1.Delete4Click(Sender: TObject);

begin IF not form1.Table2.IsEmpty THEN BEGIN form1.Table2.Delete; end

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.Edit4Click(Sender: TObject);

begin IF not form1.Table2.IsEmpty THEN BEGIN form1.Table3.First;

while not form1.Table3.Eof do

begin form1.DBCombo4.Items.Add(form1.Table3.FieldByName('PREPOD').Text);

form1.Table3.Next

end; form1.Panel4.Enabled:=false; form1.DBGri4.Enabled:=false;

form1.DBCombo4.Text:=form1.Table2.FieldByName('PREPOD').Text;

Form1.Edit4_3.Text:=form1.Table2.FieldByName('VV').Text;

Form1.Edit4_4.Text:=form1.Table2.FieldByName('N').Text;

Form1.Panel4_1.Visible:=true; end ELSE

application.MessageBox('Таблица не содержит никаких данных','Внимание',0)

end;

procedure TForm1.ADD4_1Click(Sender: TObject);

begin form1.Panel4.Enabled:=true; form1.DBGri4.Enabled:=true; form1.Table2.Edit;

form1.Table2.FieldByName('PREPOD').Value:=Form1.DBCombo4.Text;

form1.Table2.FieldByName('VV').Value:=Form1.Edit4_3.Text;

form1.Table2.FieldByName('N').Value:=Form1.Edit4_4.Text;

form1.Table2.FieldByName('VP').Value:=form1.Table2.FieldByName('VV').Value;

form1.Table2.FieldByName('_N').Value:=form1.Table2.FieldByName('N').Value;

form1.Table2.FieldByName('VO_N').Value:=0; Form1.Panel4_1.Visible:=false; end;

procedure TForm1.Cencl4_1Click(Sender: TObject);

begin form1.Panel4.Enabled:=true; form1.DBGri4.Enabled:=true;

Form1.Panel4_1.Visible:=false; end;

procedure TForm1.DelAll4Click(Sender: TObject);

begin IF not form1.Table2.IsEmpty THEN BEGIN form1.Table2.First;

if iDOK=application.MessageBox('Все данные которые содержатся в этой тоблице будут'+#13+'У Н И Ч Т О Ж Е Н Ы','В Н И М А Н И Е',1) then

while not form1.Table2.IsEmpty do begin form1.Table2.Delete; end end

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.DelAll3Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN form1.Table1.First;

if iDOK=application.MessageBox('Все данные которые содержатся в этой тоблице будут'+#13+'У Н И Ч Т О Ж Е Н Ы','В Н И М А Н И Е',1) then

while not form1.Table1.IsEmpty do

begin DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.db'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG0'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG0'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.PX'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG1'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG1'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG2'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG2'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG3'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG3'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.XG4'));

DeleteFile(string(put+'\BDE\GRUPP\'+form1.Table1.FieldByName('Name').Text+'.YG4'));

FORM1.Table1.Delete; end END ELSE

application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.CenclBtn2Click(Sender: TObject);

begin edit2_1.Text:='';edit2_2.Text:=''; form1.Panel2_1.Visible:=false;form1.Panel2.Enabled:=true;

form1.DBGri2.Enabled:=true;form1.Panel2_4.Visible:=true; end;

procedure TForm1.AddBtn2Click(Sender: TObject);

begin FORM1.Table1.Insert; form1.Table1.FieldByName('KOD').Value:=edit2_1.Text;

form1.Table1.FieldByName('PREDMET').Value:=edit2_2.Text; edit2_1.Text:='';edit2_2.Text:='';

form1.Panel2_1.Visible:=false; form1.Panel2.Enabled:=true; form1.DBGri2.Enabled:=true;

form1.Table1.Next; form1.Table1.Prior; form1.Panel2_4.Visible:=true; end;

procedure TForm1.EditBtn2Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN

edit2_3.Text:=form1.Table1.FieldByName('KOD').Text;

edit2_4.Text:=form1.Table1.FieldByName('PREDMET').Text;

form1.Panel2_2.Visible:=true; form1.Panel2_4.Visible:=false; END ELSE

application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.EdBtn2Click(Sender: TObject);

begin FORM1.Table1.Edit; form1.Table1.FieldByName('KOD').Value:=edit2_3.Text;

form1.Table1.FieldByName('PREDMET').Value:=edit2_4.Text; edit2_3.Text:='';edit2_4.Text:='';

form1.Panel2_2.Visible:=false; form1.Panel2.Enabled:=true; form1.DBGri2.Enabled:=true;

form1.Table1.Next; form1.Table1.Prior; form1.Panel2_4.Visible:=true;end;

procedure TForm1.CenBtn2Click(Sender: TObject);

begin edit2_3.Text:='';edit2_4.Text:='';form1.Panel2_2.Visible:=false;form1.Panel2.Enabled:=true;

form1.DBGri2.Enabled:=true;form1.Panel2_4.Visible:=true;end;

procedure TForm1.DelBtn2Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN form1.Table1.First;

if iDOK=application.MessageBox('Все данные которые содержатся в этой тоблице будут'+#13+'У Н И Ч Т О Ж Е Н Ы','В Н И М А Н И Е',1) then begin

while not form1.Table1.IsEmpty do FORM1.Table1.Delete; end END

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.BitBtn6Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN form1.Panel1_4.Visible:=true;

form1.Panel1_1.Enabled:=false;form1.Panel1.Visible:=false;form1.DBGri1.Enabled:=false;

form1.Edit1_4.Text:=form1.Table1.FieldByName('TAB').Text;

form1.Edit1_5.Text:=form1.Table1.FieldByName('PRepod').Text end

ELSE application.MessageBox('Таблица не содержит никаких данных','Внимание',0)end;

procedure TForm1.DelAll1Click(Sender: TObject);

begin IF not form1.Table1.IsEmpty THEN BEGIN

if iDOK=application.MessageBox('Все данные которые содержатся в этой тоблице будут'+#13+'У Н И Ч Т О Ж Е Н Ы','В Н И М А Н И Е',1) then while not form1.Table1.IsEmpty do FORM1.Table1.Delete;end ELSE

application.MessageBox('Таблица не содержит никаких данных','Внимание',0) end;

procedure TForm1.AddBtn1Click(Sender: TObject);

begin FORM1.Table1.Insert; form1.Table1.FieldByName('TAB').Value:=editAdd1_1.Text;

form1.Table1.FieldByName('PRepod').Value:=editAdd1_2.Text;

editAdd1_1.Text:='';editAdd1_2.Text:=''; form1.Panel1.Visible:=true;

form1.Panel1_3.Visible:=false; form1.DBGri1.Enabled:=true; form1.Table1.Next;

form1.Table1.Prior; form1.Panel1_1.Enabled:=true;end;

procedure TForm1.CenclBtn1Click(Sender: TObject);

begin form1.Panel1_1.Enabled:=true;form1.Panel1.Visible:=true;form1.Panel1_3.Visible:=false;

form1.DBGri1.Enabled:=true; end;

procedure TForm1.EditBtn1_5Click(Sender: TObject);

begin FORM1.Table1.Edit; form1.Table1.FieldByName('TAB').Value:=edit1_4.Text;

form1.Table1.FieldByName('PRepod').Value:=edit1_5.Text;form1.Panel1_4.Visible:=false;

form1.Panel1_1.Enabled:=true;form1.Panel1.Visible:=true;form1.DBGri1.Enabled:=true;end;

procedure TForm1.BitBtn1_5Click(Sender: TObject);

begin form1.Panel1_4.Visible:=false; form1.Panel1_1.Enabled:=true;form1.Panel1.Visible:=true;

form1.DBGri1.Enabled:=true; end;

procedure TForm1.N11Click(Sender: TObject);

begin form1.Table1.IndexName:='t'; end;

procedure TForm1.N12Click(Sender: TObject);

begin form1.Table1.IndexName:='P'; end;

procedure TForm1.MenuItem10Click(Sender: TObject);

begin form1.Table1.IndexName:='k'; end;

procedure TForm1.MenuItem11Click(Sender: TObject);

begin form1.Table1.IndexName:='p'; end;

procedure TForm1.MenuItem21Click(Sender: TObject);

begin form1.Table1.IndexName:='ind'; end;

procedure TForm1.MenuItem22Click(Sender: TObject);

begin form1.Table1.IndexName:=''; end;

procedure TForm1.MenuItem32Click(Sender: TObject);

begin form1.Table2.IndexName:='pt'; end;

procedure TForm1.MenuItem33Click(Sender: TObject);

begin form1.Table2.IndexName:='pd'; end;

procedure TForm1.N14Click(Sender: TObject);

begin form1.Table2.IndexName:='v'; end;

procedure TForm1.N15Click(Sender: TObject);

begin form1.Table2.IndexName:='NN'; end;

// нажаа кнопка расписание

procedure TForm1.BitBtn5Click(Sender: TObject);

var q:integer;

begin //Связ с базой дат

form1.Date_Table.Active:=false;form1.Date_Table.DatabaseName:=put+'\BDE\DANNI';

form1.Date_Table.TableName:='Data.DB';form1.Date_Table.Active:=true;

form1.Table2.DatabaseName:=put+'\BDE\DANNI';form1.Table2.TableName:='GRUPPI.db';

form1.Table2.Active:=true; IF not form1.Table2.IsEmpty THEN BEGIN form1.Menu:=MainMenu5; form1.peg5.TabIndex:=-1;

form1.StringGrid1.ColWidths[0]:=60; form1.StringGrid1.Cells[0,0]:='Группы';

form1.StringGrid1.Cells[0,1]:='1 пара'; form1.StringGrid1.Cells[0,2]:='2 пара';

form1.StringGrid1.Cells[0,3]:='3 пара'; form1.StringGrid1.Cells[0,4]:='4 пара';

form1.StringGrid1.Cells[0,5]:='5 пара'; form1.StringGrid1.Cells[0,6]:='6 пара';

form1.StringGrid1.Cells[0,7]:='7 пара'; form1.StringGrid1.Cells[0,8]:='8 пара';

// осуществления доступа к базе GRUPPI.DB

form1.Table1.Active:=false; form1.Table1.DatabaseName:=put+'\BDE\DANNI';

form1.Table1.TableName:='Gruppi.db'; Table1.IndexName:=''; form1.Table1.Active:=true; form1.StringGrid1.ColCount:=1;{form1.Table1.RecordCount+1; }q:=1;

//заполнения таблици группами учащихся

While not form1.Table1.Eof do BEGIN Table2.Active:=false;

Table2.DatabaseName:=put+'\BDE\GRUPP';

Table2.TableName:=form1.Table1.FieldByName('NAME').Text+'.db'; Table2.Active:=true; if not form1.Table2.IsEmpty then begin form1.StringGrid1.ColCount:=form1.StringGrid1.ColCount+1;

form1.StringGrid1.Cells[q,0]:=form1.Table1.FieldByName('NAME').Text; q:=q+1;

end;form1.Table1.Next;END; // осуществления доступа к базе DEN_?.DB

form1.Table1.Active:=false;form1.Notebook1.ActivePage:='РАСПИСАНИЕ';END

ELSE begin application.MessageBox('Нет не одной группы','Внимание',0);

form1.Table2.Active:=false;end;end;

procedure TForm1.Nazad5Click(Sender: TObject);

var q,w:integer;

begin N47.Enabled:=false; N48.Enabled:=false; form1.RASPRED5.Enabled:=FALSE;

form1.Del5.Enabled:=false; form1.Creat5.Enabled:=false; form1.peg5.TabIndex:=-1;

form1.Menu:=MainMenu; form1.Table1.Active:=false; form1.Notebook1.ActivePage:='титульный'; form1.Table2.Active:=false;

for q:=1 to form1.StringGrid1.ColCount-1 do begin for w:=1 to 8 do

form1.StringGrid1.Cells[q,w]:=''; end; end;

// выбор дня недели

procedure TForm1.peg5Change(Sender: TObject);

var q,w:integer;

begin N47.Enabled:=true; N48.Enabled:=true; form1.Del5.Enabled:=true; form1.Creat5.Enabled:=TRUE; q:=0; form1.Table1.Active:=false; form1.Table1.DatabaseName:=put+'\BDE\DNI_nedeli';

form1.Table1.TableName:='DEN_'+inttostr(form1.peg5.TabIndex+1)+'.DB';

form1.Table1.Active:=true; //Пишит дату

form1.Date_Table.First; for w:=1 to form1.peg5.TabIndex do form1.Date_Table.Next;

Dat.Caption:='Составленное на '+Date_Table.FieldByName('Ч').AsString;

//заполнение таблици

IF not form1.Table1.IsEmpty THEN for q:=1 to form1.StringGrid1.ColCount-1 do

begin if form1.Table1.Locate('GRUPPI',form1.StringGrid1.Cells[q,0],[]) then for w:=1 to 8 do

form1.StringGrid1.Cells[q,w]:=form1.Table1.FieldByName('p_'+inttostr(w)).Text+'/'+form1.Table1.FieldByName('pr_'+inttostr(w)).Text else for w:=1 to 8 do form1.StringGrid1.Cells[q,w]:='';

end else begin for q:=1 to form1.StringGrid1.ColCount-1 do begin for w:=1 to 8 do form1.StringGrid1.Cells[q,w]:=''; end; end;if form1.peg5.TabIndex=0 then q:=6 else q:=form1.peg5.TabIndex;

// разрешить составить расписание на другой день

if ((Table4.FieldByName('Q'+inttostr(form1.peg5.TabIndex)).Value=0)

and (Table4.FieldByName('Q'+inttostr(q-1)).Value=1 )

and(Date_Table.FieldByName('Ч').AsDateTime<Date)) or (q=6)

and(Table4.FieldByName('Q0').Value=0) nd(Table4.FieldByName('Q1').Value=0)

and(Table4.FieldByName('Q2').Value=0) nd(Table4.FieldByName('Q3').Value=0)

and(Table4.FieldByName('Q4').Value=0) nd(Table4.FieldByName('Q5').Value=0)

then begin form1.RASPRED5.Enabled:=true; form1.Bit.Enabled:=true end else begin form1.Bit.Enabled:=false; form1.RASPRED5.Enabled:=false; end; end;

procedure clears;

var q,w:integer;

begin form1.Table1.First; for q:=1 to form1.StringGrid1.ColCount-1 do begin

for w:=1 to 8 do begin form1.StringGrid1.Cells[q,w]:=''; form1.Table1.Edit;

form1.Table1.FieldByName('PR_'+inttostr(w)).Text:=''; form1.Table1.FieldByName('P_'+inttostr(w)).Text:=''; end; end; form1.Table1.Next; end; // составить расписание на текущий день

procedure TForm1.RASPRED5Click(Sender: TObject);

label opn,wq;

var D:TDateTime; x:integer;//ошибки ввода

m:integer;//номер пары

n:integer;//пршло пар у группы

i,q,w,u,p,l,z:integer; //q = группа в таблици

fff:real; //остаток пар на неделю

begin // если начало недели добавить часы

if form1.peg5.TabIndex=0 then ponedelnik; // если понедельник// запомнить дату

form1.Date_Table.Prior; d:=Date_Table.FieldByName('Ч').AsDateTime;

form1.Date_Table.Next; form1.Date_Table.Edit;

if form1.peg5.TabIndex=0 then begin form1.Date_Table.Last;

d:=Date_Table.FieldByName('Ч').AsDateTime; form1.Date_Table.First;

form1.Date_Table.Edit;form1.Date_Table.FieldByName('Ч').AsDateTime:=D+2 end else begin form1.Date_Table.Prior;d:=Date_Table.FieldByName('Ч').AsDateTime;

form1.Date_Table.Next; form1.Date_Table.Edit;

form1.Date_Table.FieldByName('Ч').AsDateTime:=D+1;

end; form1.Date_Table.Post; // обновляет на дисплее

form1.Date_Table.First;for w:=1 to form1.peg5.TabIndex do form1.Date_Table.Next;

Dat.Caption:='Составленное на '+Date_Table.FieldByName('Ч').AsString;

// Конец запоменания даты //начало очистки тикущего дня Table1

while not form1.Table1.IsEmpty do begin form1.Table1.Delete; end;

//конец очистки тикущего дня Table1 // открытие БД дисциплин группы

wq:for q:=1 to form1.StringGrid1.ColCount-1 do //Начало большого цикло

begin {1} Table2.Active:=false; //база дисцеплин группы

form1.Table2.IndexName:=''; Table2.DatabaseName:=put+'\BDE\GRUPP'; Table2.TableName:=StringGrid1.Cells[q,0]+'.db';

Table2.Active:=true; { открытие БД дистциплин группы} // fff:=0;

Table1.Insert; Table1.FieldByName('GRUPPI').Text:=StringGrid1.Cells[q,0];

//подсчет чисов в недели и в день ко всем парам группы

if not form1.Table2.IsEmpty then while not Table2.eof do //пройтись по всем парам 1-?

begin Table2.Edit;Table2.FieldByName('W').Value:=0; Table2.Next; end;

//Конец подсчета чисов в недели и в день

form1.Table2.Filter:='_N>1';form1.Table2.Filtered:=true;

//form1.Table2.IndexName:='VO'; //упорядочить БД группы

Table2.First; x:=0; m:=1; n:=0; Table2.Edit; //fff:=0;

while not form1.Table2.eof do begin form1.Table2.Edit; form1.Table2.FieldByName('A').Value:=trunc((Table2.FieldByName('_N').Value/2)/(6-form1.peg5.TabIndex))+1; form1.Table2.Next;end; Table2.First;

opn:while (n<Table2.FieldByName('Q').Value)and(m<(par.ItemIndex+3)) do

begin if (Table2.FieldByName('_N').Value>=2) and (form1.Table2.FieldByName('A').Value>0)and(not(Table2.FieldByName('VP').Value<2)) and //если пара подходит

(Table2.FieldByName('W').Value<Table2.FieldByName('VO_N').Value)

and not Table1.Locate('PR_'+inttostr(m),Table2.FieldByName('PREPOD').Text,[]) then try begin form1.Table1.Edit;

Table1.FieldByName('PR_'+inttostr(m)).Text:=Table2.FieldName('PREPOD').Text;


Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.