Реферат: Разработка базы данных учета материально-технического оснащения кабинета специальной технологи
Название: Разработка базы данных учета материально-технического оснащения кабинета специальной технологи Раздел: Рефераты по информатике Тип: реферат | |||||||||||||||||||||||||||||||||||||||||||||
Московский Инженерно-Физический Институт (Государственный университет) Пояснительная записка к курсовому проекту По теме:”Разработка базы данных учета материально-технического оснащения кабинета специальной технологии колледжа №32 г.Москвы” Научный руководитель: Кудрявцев К.Я. Выполнила Студентка группы К7-361 Панова Юлия Москва, 2005 год ОГЛАВЛЕНИЕ Отзыв о работе студента . - 4 - Реляционные базы данных . - 6 - Что должна содержать база данных, чтобы сделать ее макс. эффективной? . - 10 - Практическое выполнение учебно-исследовательской работы. - 12 - Техническое задание на курсовой проект. - 13 - Реляционная модель базы данных. - 14 - Форма “Главная форма ” . - 19 - Форма “Уроки (добавить новый)” . - 21 - Форма “Информация по курсу” . - 22 - Форма “Раздаточные материалы ” . - 23 - Листинги обработчиков . - 30 - МОСКОВСКИЙ ИНЖЕНЕРНО-ФИЗИЧЕСКИЙ ИНСТИТУТ (ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ) Кафедра ИНФОРМАЦИОННЫЕ ТЕХНОЛОГИИ ТЕХНИЧЕСКОЕ ЗАДАНИЕ на учебно-исследовательскую работу и курсовое проектирование Студентки группы К7-361_Пановой Юлии Тема: Разработка базы данных учета материально-технического оснащения кабинета специальной технологии колледжа №32 г.Москвы в среде Visual FoxPro Содержание технического задания:
Приборы для эксперимента: СУБД VisualFoxPro8.0
Место выполнения УИР и КП_____каф.36__________________________ Руководитель________________________(Кудрявцев К. Я.) Дата выдачи задания ”____”__________________200__ г. __________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________ __________________________________________________________________________________________________________________________________________________________ Руководитель__________________________”______”__________________200_г. Теоретическая часть
В 1970 году статья научного сотрудника компании IBM доктора Е. Ф. Коддао реляционной модели данных произвела революцию в подходе к хранению и обработке информации. На основе этой модели в семидесятые годы были разработаны первые реляционные базы данных, а в настоящее время они рассматриваются как стандарт для современных коммерческих СУБД. В реляционных базах данных вся информация сведена в таблицы, строки и столбцы которых называются записями и полями соответственно. Эти таблицы получили название реляций, поэтому модель стала называться реляционной. Записи в таблицах не повторяются. Их уникальность обеспечивается первичным ключом, содержащим набор полей, однозначно определяющих запись. Для быстрого поиска информации в базе данных создаются индексы по одному или нескольким полям таблицы. Значения индексов хранятся в упорядоченном виде и содержат ссылки на записи таблицы. Для автоматической поддержки целостности связанных данных, находящихся в разных таблицах, используются первичные и внешние ключи. Для выборки данных из нескольких связанных таблиц используются значения одного или нескольких совпадающих полей.В реляционных базах данных поля могут иметь разные типы данных (числовой, строковый, типа даты и т. п.), но для каждой записи тип данных поля остается неизменным.Одним из важных требований к базам данных является быстрая выборка хранимой в ней информации. На помощь приходят компьютерные базы данных. Они, несмотря на огромный объем хранящейся в них информации, обеспечивают высокую скорость поиска необходимой информации. В таких базах данных пользователь может выполнить поиск по любому интересующему его параметру. Кроме того, компьютерные базы данных очень компактны. База данных, содержащая несколько тысяч записей, может поместиться на одной дискете. Visual FoxPro - не просто следующая версия одной из наиболее быстрых СУБД для персональных компьютеров. Это совершенно новая программа, которая легко позволяет сделать то, что в предыдущих версиях давалось с величайшим трудом или было просто недоступно. 1. Обеспечение возможности быстрой разработки прикладной программы базируется на включении средств, которые позволяют повысить скорость работы программиста. В первую очередь это средства объективно-ориентировочного программирования, позволяющие пользователю формировать компоненты своего проекта (объекта), которые затем могут многократно использоваться. Кроме того, объекты могут быть созданы с помощью визуальных средств и визуально использоваться в любое время. 2. Обеспечение полного набора средств для управления событиями. 3. Обеспечение мощного набора инструментальных средств для программиста. 4. Обеспечение полной интеграции Visual FoxPro в семейство прикладных программ Micrpоsoft. Единый интерфейс с наиболее популярными прикладными программами Microsoft делает работу в интерактивном режиме интуитивно понятной. Поддержка правой кнопки мыши позволяет избежать долгих путешествий по системе меню и значительно облегчает изучение новых возможностей СУБД. Просто выберите курсором объект и нажмите правую кнопку мыши. На некоторых диалоговых окнах, которые часто используются в работе на полосе заголовка, появился переключатель в виде анимационной пиктограммы (push pin), позволяющий легко включить режим, при котором это окно будет всегда расположено на переднем плане. Visual FoxPro обеспечивает полную поддержку OLE 2.0, что облегчает взаимодействие с другим программным обеспечением в среде WINDOWS. Помимо оставшейся возможности загрузки внешних функций посредством команды SET LIBRARY появилась возможность обращения к функциям динамических DLL библиотек WINDOWS посредством команды DECLARE. 5. Совместимость с ранее разработанным обеспечением в среде FoxPro.
Visual FoxPro состоит из отдельных компонентов, которые используются для хранения информации, ее отображения и редактирования. В Visual FoxPro вся информация хранится в базе данных, которая состоит из таблиц, отношений между таблицами, индексов, триггеров и хранимых процедур. Каждая таблица имеет уникальное имя и хранится в отдельном файле, наименование которого совпадает с именем таблицы. Созданный файл имеет расширение DBF. Каждая создаваемая таблица может иметь связанные с ней индексы, используемые для упорядочения данных и быстрого поиска необходимых записей, причем каждая таблица может иметь несколько индексов. Чрезвычайно удобным и полезным средством доступа к базе данных являются представления данных. Представления данных позволяют объединять данные таблиц и отображать их в более удобном виде. Вы можете выбрать только интересующие вас поля таблиц, объединить несколько полей в одно поле, вычислить итоговые значения и задать новые имена полей таблицы. Как правило, количество представлений в базе данных намного превосходит количество таблиц. По мере эксплуатации базы данных их количество непрерывно растет. Во многих информационных системах доступ к данным, включая просмотр, добавление и редактирование, осуществляется только с помощью представлений данных. Данный подход позволяет осуществить гибкое управление доступом к информации. При использовании представлений для выборки данных в формах, отчетах, при создании запросов и в программах применяются те же правила, что и для таблиц. Редактирование данных, включенных в представление, возможно только при определенных условиях. Например, в том случае, если оно создано на основе только одной таблицы. Для отображения и редактирования данных используются формы, отчеты, запросы и программы. При создании форм, отчетов и запросов применяются конструкторы. Поэтому эти компоненты часто называют конструкторскими объектами. Формы и отчеты являются составными объектами, т. к. они состоят из более мелких объектов (таких как поля, кнопки, диаграммы, рамки, OLE - компоненты и т. п.), которые называются объектами интерфейса. Формы используются для просмотра или ввода данных в таблицы. Данные можно вводить непосредственно в таблицы, но использование формы является более быстрым и более эффективным способом ввода. Форма содержит некоторые или все поля таблиц, в которые вы вводите информацию. Для создания форм вы можете использовать мастер создания форм или конструктор форм. Мастер форм содержит целый ряд шаблонов, которые определяют соотношение между помещаемыми в форму таблицами, вид отображения данных и порядок размещения полей. Для создания сложных форм применяется конструктор форм. Отчеты используются для просмотра и вывода на печать содержащейся в базе данных информации. Примерами отчетов являются прайс-лист товаров, список покупателей, оборотная складская ведомость. Как правило, отчеты создаются в том случае, если информацию необходимо передавать кому-либо в печатном виде. Для создания отчетов в Visual FoxPro, как и для форм, используются мастер и конструктор отчетов. С помощью мастера отчетов вы можете быстро создать собственный отчет на основе имеющихся шаблонов. Применение конструктора отчетов позволяет создавать отчеты произвольной сложности, включая многоуровневую группировку данных и размещение вычисляемых полей. Запросы являются средством выборки данных из одной или нескольких таблиц. В Visual FoxPro для создания запроса вы можете использовать как конструктор запросов, так и специализированный язык Structured Query Language (SQL). Результаты выполнения запроса могут отображаться в форме, выводиться в виде отчетов и диаграмм или сохраняться в указанной вами таблице. Программы, написанные на языке Visual FoxPro, являются объектно-ориентированными. С помощью них вы обрабатываете события в форме, создаете объекты, осуществляете различные вычисления, управляете базой данных. Для удобства работы вы можете объединить программы в библиотеки. Для создания форм в Visual FoxPro можно использовать не только базовые классы, но и создавать собственные. Например, вы можете определить класс форм, в котором задан определенный цвет фона и стандартный набор кнопок для управления данными. Чтобы стандартизировать разработку, полезно иметь один или несколько пользовательских классов для каждого базового класса. Классы, созданные в Visual FoxPro, хранятся в библиотеках классов. Для объединения компонентов создаваемого приложения используется проект, в который включаются все перечисленные выше компоненты. Использование проекта упрощает разработку приложения и его сопровождение. В Visual FoxPro имеется возможность сохранять параметры основного окна Visual FoxPro, настройки таблиц, параметры диалоговых окон и панели инструментов с помощью файла параметров настройки. Каждый компонент хранится в отдельном файле, причем имена файлов, содержащих основные компоненты, вы задаете самостоятельно, а наименования файлов, содержащих объекты, связанные с таблицей, совпадают с именем таблицы. В зависимости от типа содержащегося в нем объекта Visual FoxPro автоматически присваивает каждому файлу расширение, которое помогает в идентификации объекта. Список расширений файлов приведен в табл. 1 Таблица 1. Расширения имен файлов объектов Visual FoxPro
Что должна содержать база данных, чтобы сделать ее максимально эффективной? Существует очень простое понятие БД как большого по объему хранилища, в которое организация помещает все используемые ею данные и из которого различные пользователи могут их получать, используя различные приложения. Такая единая база данных представляется идеальным вариантом, хотя на практике это решение по различным причинам труднодостижимо. Поэтому чаще всего под базой данных понимают любой набор хранящихся в компьютере взаимосвязанных данных. · База данных должна удовлетворять актуальным информационным потребностям организации. Получаемая информация должна по структуре и содержанию соответствовать решаемым задачам. Почему СУБД FoxPro ? FoxPro - одна из наиболее эффективных настольных СУБД. Данный продукт принадлежит компании Microsoft и тесно интегрирован с другими его продуктами. Единый интерфейс с наиболее популярными прикладными программами Microsoft делает работу в интерактивном режиме интуитивно понятной. FoxPro обладает собственным внутренним механизмом управления реляционной БД, тесной взаимосвязью между языком и данными, полноценными возможностями объектно-ориентированного программирования и широким спектром функций VFP 8.0 позволяет создавать производительные, масштабируемые БД-ориентированные решения с поддержкой баз данных с таблицами объемом до 2 Гб. При этом VFP 8.0 выгодно отличается от других инструментов Microsoft умеренными системными требованиями и высокой эффективностью разрабатываемых приложений (производительность, размеры БД и программного кода). Прежде всего VFP остается эффективным инструментом создания универсальных настольных баз данных. Хотя возможности создания баз данных в последних версиях существенно расширены использование VFP для создания мощных систем представляется весьма проблематичным. В качестве таких ограничений можно назвать отсутствие встроенных средств защиты информации (несанкционированный доступ, шифрование данных), обеспечения целостности данных в условиях сбоев, поддержки многопроцессорной обработки и пр. При этом FoxPro был и продолжает оставаться одним из самых популярных инструментальных средств в России (в отличие от западных стран), для изучения которого имеется хорошая информационно-методическая база (книги, специализированные журналы, центры обучения и пр.). Практическое выполнение учебно-исследовательской работы. Техническое задание на курсовой проект. Задача проекта состоит в разработке базы данных по учету материально-технического оснащения кабинета специальной технологии с целью наиболее полной и тщательной подготовки учебного материала. Информационная система предназначена для систематизации и удобного хранения необходимой информации, позволяющая оптимизировать поиск необходимого учебного материала к урокам. Создание проекта стало актуальным в связи с компьютеризацией отдельных кабинетов, включая кабинет специальной технологии, для которого создается база данных. Поскольку московские колледжи жестко конкурируют между собой, автоматизация учебного процесса актуальный процесс. Данная задача определена преподавателем специальной технологии колледжа №32 города Москвы Пановой Е.В.(учебный курс предназначен для поваров-кондитеров) База данных должна отвечать следующим требованиям:
Реляционная модель базы данных. Рис. 1.Реляционная модель базы данных. Реляционная модель базы данных представляет собой совокупность таблиц, представляющих объектные множества, поля (строки) которых представляют собой их атрибуты. Для задания связей между таблицами, необходимо определить дополнительные поля, содержащие коды элементов связанных таблиц. Для связи объектных множеств “Уроки” и ”Кассета”, а также “Уроки” и “Раздаточные материалы” вводится дополнительные таблицы связей “ Уроки-Кассеты” и ”Уроки-Раздаточные материалы”типа многие ко многим, содержащие ключевые поля связанных элементов. В данной модели рассматриваются шесть объектных множеств. Атрибут “ID номер“, присутствующий у каждого объектного множества, необходим для однозначной идентификации каждого элемента множества. 1) Объектное множество “Уроки”
Служит для описания уроков предмета спец. технологии. 2) Объектное множество “Кассеты”
Служит для описания кассет, входящих в состав материально-технического оснащения кабинета. 3) Объектное множество “Раздаточные материалы”
Служит для описания раздаточных материалов, входящих в состав материально-технического оснащения кабинета. 4) Объектное множество “Уроки-Кассеты”
Служит для связи двух объектных множеств “Уроки” и ”Кассеты” (реализация связи многие ко многим). 5) Объектное множество “Уроки-Раздаточные материалы”
Служит для связи двух объектных множеств “Уроки” и ”Раздаточные материалы” (реализация связи многие ко многим). 6) Объектное множество “Курс”
Служит для описания дополнительной информации, относящейся курсу. Между объектными множествами установлены отношения: 1) Объектное множество “Уроки” связано с объектным множеством “Уроки-Кассеты” отношением один ко многим, так как для каждого урока может существовать несколько кассет, относящихся к данному уроку. 2) Объектное множество “Кассеты” связано с объектным множеством “Уроки-Кассеты” отношением один ко многим, так как каждая кассета может относиться к нескольким урокам. 3) Объектное множество “Уроки” связано с объектным множеством “Уроки-Раздаточные материалы” отношением один ко многим, так как для каждого урока может существовать несколько раздаточных материалов, относящихся к данному уроку. 4) Объектное множество “Раздаточные материалы” связано с объектным множеством “Уроки-Раздаточные материалы” отношением один ко многим, так как каждый раздаточный материал может относиться к нескольким урокам. 5) Объектное множество “Курс” связано с объектным множеством “Уроки” отношением один ко многим, так как к каждому курсу относится несколько уроков, тогда как каждый урок однозначно принадлежит определенному курсу. Все таблицы создаются в режиме конструктора. Основные параметры, используемые в таблицах БД: - Название поля - Тип поля - Ширина поля - Наличие индексации поля Основная особенность данной БД заключается в том, что все таблицы являются свободными. Рис. № 2 Вид таблицы “Уроки” в режиме конструктора Рис. №3 Вид таблицы “Кассеты” в режиме конструктора Рис. № 4 Вид таблицы “Раздаточные материалы” в режиме конструктора Рис. №5 Вид таблицы “Курс ” в режиме конструктора Рис. № 6 Вид таблицы “Уроки-кассеты ” в режиме конструктора Рис. №7 Вид таблицы “Уроки-Раздаточные материалы ” в режиме конструктора Задание данных может быть осуществлено непосредственным занесением данных в таблицы, формы создаются для задания базы данных с дружелюбным и удобным интерфейсом, а также для простого занесения данных одновременно в несколько связанных таблиц. В данной работе была выделена основная форма, через которую осуществляется доступ ко всем остальным формам. В базе данных участвуют как простые формы, основанные на одной таблице, так и сложные, основанные на нескольких связанных таблицах. Форма “ Главная форма ” Рис. №8 Форма “Главная форма” При запуске программы перед пользователем появляется “Основная форма”, показывающая ссылки (кнопки) на основные компоненты БД и позволяющая быстро переместится в интересующую его область. Кнопки формы:
Форма “ Уроки ”
Рис. №9 Форма “Уроки” Форма “Уроки” является простой однотабличной формой (основанной на таблице “Уроки”), созданной в режиме конструктора. Служит для удобного просмотра необходимой информации по урокам. Требование к виду и типу информации приведены ранее в техническом задании к учебно-исследовательской работе. Форма позволяет:
Кнопки формы:
- по кассетам: выводит список кассет, относящихся к данному уроку. - по раздаточным материалам: выводит список раздаточных материалов, относящихся к уроку - список уроков за месяц: выводит список уроков, проведенных за месяц. Форма “Уроки (добавить новый)” Рис. №10 Форма “Уроки (добавить новый)” Форма “Уроки (добавить новый)” является простой однотабличной формой (основанной на таблице “Уроки”), созданной в режиме конструктора. Форма позволяет:
Поля формы:
Кнопки формы:
Рис. №11 Форма “Информация по курсу” Форма “ Информация по курсу” является простой однотабличной формой (основанной на таблице “Курс”), созданной в режиме конструктора. Форма позволяет:
Кнопки формы:
Форма “ Раздаточные материалы ” Рис. №12 Форма “Раздаточные материалы” Данная конструкция основана на понятии набора форм ( FormSet). Использование набора необходимо для синхронизации форм “Раздаточные материалы” и “Таблица уроков” . В конструкции используются три таблицы “Уроки”, “Раздаточные материалы” и “Уроки-Раздаточные материалы”. Набор создается в режиме конструктора. Требование к виду и типу информации приведены ранее в техническом задании к учебно-исследовательской работе. Форма “Раздаточные материалы” позволяет:
Поля формы
Кнопки формы:
Форма “Таблица уроков” позволяет:
Кнопки формы:
Рис. №13 Форма “Кассеты” Данная конструкция аналогична конструкции раздаточных материалов. В наборе форм используются три таблицы “Уроки”, “Кассеты” и “Уроки-Кассеты”. Рис. №14 запрос“Поиск” Рис. №15 запрос “Удаление урока” Рис. №16 запрос “Список уроков за месяц” Рис. №17 запрос“Прикрепление и открепления урока от материала” Рис. №18 запрос “Список уроков за курс” Для получения информации по материально-техническому оснащению урока (просмотр списка относящихся к уроку раздаточных материалов и кассет), для удаления желаемого урока, для просмотра информации об уроках за месяц, для прикрепления или открепления кассет и раздаточных материалов от уроков, необходимо ввести идентификационный номер урока. После осуществление проверки на корректность внесенной записи, происходит одно из выше перечисленных действий. Для получения информации по урокам за курс, вводится номер курса, и после соответствующей проверки, выдается отчет. Для поиска урока в соответствующие поле вводиться тема урока или ее начальные символы.
Все отчеты создавались в режиме конструктора. Данные отчета отвечают требованиям запросов. Каждый отчет дополнительно содержит номера страниц. Отчет “Количество уроков проведенных за месяц” содержит вычисляемое поле “Количество уроков” Рис. №19 Отчет “Список кассет, относящихся к данному уроку” Рис. №20 Отчет “Список раздаточных материалов, относящихся к данному уроку” Рис. №21 Отчет “Количество уроков проведенных за месяц” Рис. №22 Отчет “Список уроков за курс” Обработчик кнопки “Выход” основной формы. IF MESSAGEBOX('Выйти из программы?', 4 + 32 + 256, 'Выход')=6 _screen.ActiveForm.Release() CLEAR EVENTS QUIT ELSE _screen.ActiveForm.Refresh() ENDIF Обработчик события сортировки данных таблицы формы “Уроки”. IF this.Value=1 then thisform.DataEnvironment.cursor1.order='kurs_id' ELSE thisform.DataEnvironment.cursor1.order='num_lesson' ENDIF thisform.grid1.Refresh Обработчик события кнопки “Поиск” формы “Уроки”. PUBLIC found_lesson with thisform found_lesson =INPUTBOX('Введите тему урока или ее начало','Поиcк') IF NOT EMPTY(found_lesson) &&Задает правила, согласно которым Visual FoxPro сравнивает две строки разной длины &&OFF(По умолчанию) Указывает, что выражения будут эквивалентны, если они совпадают посимвольно вплоть до конца выражения, расположенного справа. SET EXACT OFF s=RECNO() LOCATE FOR Uir_tab_lesson.nam_lesson= found_lesson IF NOT FOUND() THEN && все хорошо и запись (и) найдены messagebox('Поиск не дал результатов',48) && Возврат к записи с которой был начат поиск GO s .Command7.Enabled=.f. ELSE .command7.Enabled=.t. ENDIF ENDIF .grid1.setfocus ENDWITH Обработчик события кнопки “Далее” формы “Уроки”. SET EXACT OFF s=RECNO() && Поиск следующей, отвеч. строке поиска записи CONTINUE IF NOT FOUND() GO s This.Enabled= .F. ENDIF ThisForm.Grid1.SetFocus Обработчик события кнопки “Обновить” формы “Уроки”. _screen.ActiveForm. refresh() IF thisform.Optiongroup1.Value=1 then thisform.DataEnvironment.cursor1.order='kurs_id' ELSE thisform.DataEnvironment.cursor1.order='num_lesson' ENDIF thisform.grid1.Refresh Обработчик события кнопки “Показать” формы “Уроки”. IF Thisform.Optiongroup2.Option1.Value=1 uuu=INPUTBOX('Введите ID урока','Заявка') t=val(uuu) IF EMPTY(uuu)=.f. then SELECT Uir_tab_kasseta.name_kas, Uir_tab_kasseta.time_kas; FROM ; uir_tab_lk INNER JOIN uir_tab_kasseta ; ON Uir_tab_lk.kass_id = Uir_tab_kasseta.kass_id; WHERE Uir_tab_lk.lesson_id = t; INTO TABLE time_tab7 REPORT FORM uir_report7 preview SELECT time_tab7 DELETE ALL PACK ELSE thisform.Refresh endif ENDIF IF Thisform.Optiongroup2.Option2.Value=1 uuu=INPUTBOX('Введите ID урока','Заявка') t=val(uuu) IF EMPTY(uuu)=.f. then SELECT Uir_tab_mat.name_mat,Uir_tab_mat.vid_mat; FROM uir_tab_lm INNER JOIN uir_tab_mat ; ON Uir_tab_lm.mat_id = Uir_tab_mat.mat_id; WHERE Uir_tab_lesson.lesson_id = t; INTO TABLE time_tab8 REPORT FORM uir_report8 preview SELECT time_tab8 DELETE ALL Pack ELSE thisform.Refresh Endif ENDIF IF Thisform.Optiongroup2.Option3.Value=1 PUBLIC uuu_mes uuu_mes=INPUTBOX('Введите месяц','Заявка') IF EMPTY(uuu_mes)=.f. then SELECT Uir_tab_lesson.kurs_id, Uir_tab_lesson.num_lesson,; Uir_tab_lesson.nam_lesson; FROM uir_tab_lesson; WHERE Uir_tab_lesson.mes_id = uuu_mes; INTO TABLE time_tab1 REPORT FORM uir_report4 preview SELECT time_tab1 DELETE ALL PACK ELSE thisform.Refresh Endif ENDIF Обработчик события кнопки “Удалить” формы “Уроки”. uuuz=INPUTBOX('Введите ID урока, который желаете удалить','Удаление записи из таблицы') IF EMPTY(uuuz)=.f. then DO WHILE Type(uuuz)!='N' MESSAGEBOX('Вы ввели некорректное значение (ID числовое значение)') uuuz=INPUTBOX('Введите ID урока, который желаете удалить','Удаление записи из таблицы') ENDDO tu=val(uuuz) LOCAL ARRAY ss1(20) SELECT Uir_tab_lesson.nam_lesson; FROM uir_tab_lesson; WHERE Uir_tab_lesson.lesson_id =tu; INTO ARRAY ss1 If EMPTY(ss1) MESSAGEBOX('Такого значения ID нет в списке данных') else SELECT Uir_tab_lesson DELETE; FROM Uir_tab_lesson; WHERE uir_tab_lesson.lesson_id = tu PACK SELECT Uir_tab_lm DELETE; FROM Uir_tab_lm; WHERE uir_tab_lm.lesson_id = tu PACK SELECT Uir_tab_lk DELETE; FROM Uir_tab_lk; WHERE uir_tab_lk.lesson_id = tu PACK _screen.ActiveForm.Release() DO FORM uir_les_form8 ENDIF ELSE Thisform.Refresh ENDIF Обработчик события кнопки “Первая” формы “Раздаточные материалы”. IF !BOF() GO TOP ENDIF _screen.ActiveForm.Refresh() ee1=thisform.Text1.Value SELECT Uir_tab_lesson.nam_lesson; FROM uir_tab_mat INNER JOIN uir_tab_lm ; ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ; INNER JOIN uir_tab_lesson ; ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id; WHERE Uir_tab_mat.mat_id =ee1; INTO ARRAY less1 IF ISNULL(less1) less1[1]=' ' ENDIF thisform.List1.Refresh Обработчик события кнопки “Следущая” формы “Раздаточные материалы”. IF !EOF() SKIP ENDIF _screen.ActiveForm.Refresh() ee1=thisform.Text1.Value SELECT Uir_tab_lesson.nam_lesson; FROM uir_tab_mat INNER JOIN uir_tab_lm ; ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ; INNER JOIN uir_tab_lesson ; ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id; WHERE Uir_tab_mat.mat_id =ee1; INTO ARRAY less1 IF ISNULL(less1) less1[1]=' ' ENDIF thisform.List1.Refresh Обработчик события кнопки “Предыдущая” формы “Раздаточные материалы”. IF !BOF ( ) SKIP - 1 ENDIF _screen. ActiveForm. Refresh () ee1=thisform.Text1.Value SELECT Uir_tab_lesson.nam_lesson; FROM uir_tab_mat INNER JOIN uir_tab_lm ; ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ; INNER JOIN uir_tab_lesson ; ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id; WHERE Uir_tab_mat.mat_id =ee1; INTO ARRAY less1 IF ISNULL(less1) less1[1]=' ' ENDIF thisform.List1.Refresh Обработчик события кнопки “Последняя ” формы “Раздаточные материалы”. IF !EOF() GO BOTTOM ENDIF _screen.ActiveForm.Refresh( ) ee1=thisform.Text1.Value SELECT Uir_tab_lesson.nam_lesson; FROM uir_tab_mat INNER JOIN uir_tab_lm ; ON Uir_tab_mat.mat_id = Uir_tab_lm.mat_id ; INNER JOIN uir_tab_lesson ; ON Uir_tab_lm.lesson_id = Uir_tab_lesson.lesson_id; WHERE Uir_tab_mat.mat_id =ee1; INTO ARRAY less1 IF ISNULL(less1) less1[1]=' ' ENDIF thisform.List1.Refresh Обработчик события кнопки “Добавить ” формы “Раздаточные материалы”. PUBLIC new_mat_id as Integer SET ORDER TO mat_id CALCULATE MAX(mat_id) TO new_mat_id new_mat_id=new_mat_id+1 CLEAR SELECT uir_tab_mat APPEND BLANK ThisForm.Text1.Value=new_mat_id ee=thisform.Text1.Value RELEASE less1 DIMENSION less1(20) thisform.List1.Refresh _screen.ActiveForm.Refresh( ) thisform.Command4.Visible= .T. thisform.Command2.Enabled= .f. thisform.Commandgroup1.Command1.Enabled= .F. thisform.Commandgroup1.Command2.Enabled= .F. thisform.Commandgroup1.Command3.Enabled= .F. thisform.Commandgroup1.Command4.Enabled= .F. thisform.Commandgroup1.Command5.Enabled= .F. thisform.Commandgroup1.Command8.Enabled= .F. Обработчик события кнопки “Удалить” формы “Раздаточные материалы”. tu=thisform.Text1.value IF MESSAGEBOX('Вы уверены, что хотите стереть запись?', 4 + 32 + 256, 'Выход')=6 SELECT uir_tab_mat SET EXCLUSIVE ON DELETE pack SELECT uir_tab_lm SET EXCLUSIVE ON DELETE; FROM Uir_tab_lm; WHERE Uir_tab_lm.mat_id = tu PACK _screen.ActiveForm.Release() DO FORM uir_form21 MESSAGEBOX('Данные удалены из таблицы!') ELSE _screen.ActiveForm.Refresh() Endif Обработчик события кнопки “Открепить от урока” формы “Раздаточные материалы”. tu=thisform.Text1.value uuu=INPUTBOX('Введите ID урока','Заявка') IF EMPTY(uuu)=.f. then DO WHILE Type(uuu)!='N' MESSAGEBOX('Вы ввели некорректное значение (ID числовое значение)') uuu=INPUTBOX('Введите ID урока','Заявка') ENDDO ttz=val(uuu) LOCAL ARRAY ss7(20) SELECT Uir_tab_lm.mat_id; FROM uir_tab_lm; WHERE Uir_tab_lm.mat_id = ttz; INTO ARRAY ss7 If EMPTY(ss7) MESSAGEBOX('Данная кассета не содержится в списке') ELSE SELECT uir_tab_lm DELETE; FROM Uir_tab_lm; WHERE Uir_tab_lm.lesson_id =ttz and Uir_tab_lm.mat_id=tu PACK THISFORMset.forms(2).visible=.f. _screen.ActiveForm.Release() DO FORM uir_form20 MESSAGEBOX('Связь разорвана!') endif ELSE thisform.Refresh endif Обработчик события кнопки “Прикрепить к уроку” формы “Раздаточные материалы”. SELECT uir_tab_lm uuu=INPUTBOX('Введите ID урока','Заявка') IF EMPTY(uuu)=.f. then DO WHILE Type(uuu)!='N' MESSAGEBOX('Вы ввели некорректное значение (ID числовое значение)') uuu=INPUTBOX('Введите ID урока','Заявка') ENDDO tz=val(uuu) LOCAL ARRAY ss6(20) SELECT Uir_tab_lesson.nam_lesson; FROM uir_tab_lesson; WHERE Uir_tab_lesson.lesson_id =tz; INTO ARRAY ss6 If EMPTY(ss6) MESSAGEBOX('Такого значения ID нет в списке данных') ELSE LOCAL ARRAY ss5(20) SELECT Uir_tab_lm.mat_id; FROM uir_tab_lm; WHERE Uir_tab_lm.lesson_id = tz; INTO ARRAY ss5 If EMPTY(ss5)=.f. MESSAGEBOX('Такая кассета уже есть в списке') else y=thisform.Text1.Value INSERT INTO uir_tab_lm VALUES (tz,y) THISFORMset.forms(2).visible=.f. _screen.ActiveForm.release DO FORM uir_form21 endif endif ELSE thisform.Refresh endif Обработчик события кнопки “Сохранить” формы “Уроки (добавить новый)”. LOCAL qt as Character; yy as Integer; rt as Integer; wu=ThisForm.Text5.Value yy=ThisForm.Text4.Value qt=ThisForm.Combo2.Value rt=ThisForm.Combo1.Value wt=VAL(yy) t=new_lesson_id IF EMPTY(wu) IF EMPTY(yy) IF EMPTY (qt) IF EMPTY(rt) MESSAGEBOX('Данные не были введены!') ELSE INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu) MESSAGEBOX('Данные добавлены в таблицу!') Thisform.Command1.Enabled= .f. _screen.ActiveForm.Release() DO FORM uir_form12 ENDIF ELSE INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu) MESSAGEBOX('Данные добавлены в таблицу!') Thisform.Command1.Enabled= .f. _screen.ActiveForm.Release() DO FORM uir_form12 ENDIF ELSE INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu) MESSAGEBOX('Данные добавлены в таблицу!') Thisform.Command1.Enabled= .f. _screen.ActiveForm.Release() DO FORM uir_form12 ENDIF ELSE INSERT INTO uir_tab_lesson VALUES (t,rt,qt,wt,wu) MESSAGEBOX('Данные добавлены в таблицу!') Thisform.Command1.Enabled= .f. _screen.ActiveForm.Release() DO FORM uir_form12 ENDIF
Целью учебно-исследовательской работы являлось:
Курсовой проект посвящен разработке базы данных для учета материально-технического оснащения кабинета специальной технологии колледжа №32 г.Москвы В ходе УИР и КП создана база данных, отвечающая техническому заданию на курсовой проект, с использованием средств FoxPro 8.0. Проект позволил автоматизировать работу по подбору необходимого материала к урокам и систематизировать хранение информации. Задача автоматизации учебного процесса актуальна и имеет хорошую перспективу дальнейшего развития. ЛИТЕРАТУРА
|