|
Разработка прикладной информационной системы
Разработка прикладной информационной системы
ФЕДЕРАЛЬНОЕ АГЕНСТВО ПО АТОМНОЙ ЭНЕРГИИСАРОВСКИЙ ГОСУДАРСТВЕННЫЙ ФИЗИКО-ТЕХНИЧЕСКИЙ ИНСТИТУТ (СарФТИ)ФАКУЛЬТЕТ ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ И ЭЛЕКТРОНИКИКАФЕДРА ВЫЧИСЛИТЕЛЬНОЙ И ИНФОРМАЦИОННОЙ ТЕХНИКИЗАДАНИЕна курсовое проектированиепо курсу: Базы данныхнаименование дисциплиныСтудент Коптелов Алексей Юрьевич фамилия, имя, отчествоГруппа ВТ-43диндекс группы Руководитель проекта Логунова Елена Сергеевнадолжность, ученая степень, звание, фамилия, имя, отчествоСАРОВ, 2007Наименование темы Разработка прикладной информационной системы “Курсовые работы кафедры ВИТ” средствами СУБД Microsoft VFP 9.0 Место выполнения СарФТИ ФИТЭ кафедра ВИТ Исходные данные Intel Celeron 4 2.4 Gz, 256 MB ОЗУ, HDD 80GB, клавиатура, мышь, MS Windows XP, Microsoft Visual Fox Pro 9.0Содержание работы 1. Постановка задачи. 2. Уяснение поставленной задачи, формирование ТЗ, заполнение задания на курсовую работу. 3. Выбор и обоснование инструментальных и программных средств. 4. Разработка модели представления данных. 5. Разработка структуры интерфейса. 6. Проектирование входных и выходных форм. 7. Программирование приложения. 8. Проверка функциональности на контрольном примере. 9. Оформление пояснительной записки, разработка руководства пользователя, сдача системы в опытную эксплуатацию. 10. Сдача курсовой работы.Экспериментальная часть 1. Освоение инструментальных средств. 2. Программная и интерактивная реализация разделов системы. 3. Формирование контрольного примера. Допуск к защитеК защите представляется:пояснительная записка страницчертежно-графический материал листовиллюстрационный материал листовэкспериментальные макеты шт.приложение страницСтудент ВТ-43Д Коптелов Алексей Юрьевич допущен к защитеиндекс группы, фамилия, имя, отчествоРуководитель (Макарец А.Б.) дата, подписьРабота защищена с оценкойАннотация Назначение данной курсовой работы - это разработка и реализация прикладной информационной системы «Курсовые работы кафедры ВИТ», позволяющей автоматизировать процессы учета курсовых работ. Система имеет удобный интерфейс, что обеспечивает быстрый доступ к необходимым данным, позволяет хранить, добавлять и удалять различные данные о курсовой работе. Доступ к объектам системы осуществляется весьма просто, с помощью кнопок на формах. Все необходимые данные хранятся в настоящей базе данных в виде таблиц, к которым имеется доступ в любой момент времени. Данная работа выполнена средствами СУБД Visual FoxPro 9.0 на основании технического задания. Содержание Введение 1.Постановка задачи Общие сведения 1.2. Входные данные представляют собой 1.3.Требования к программному обеспечению 2. Выбор и обоснование инструментальных средств 3. Практическая часть 3.1. Определение этапов разработки программного обеспечения 3.2. Принципы реализации программного обеспечения 3.3. Руководство пользователя Список литературы Заключение Приложение1.Разработка и реализация модели представления данных Приложение2. Листинг программы Введение В процессе учета курсовых работ часто требуется быстро найти информацию о курсовой работе и о студенте, выполнившем её. База данных, представленная в данной работе, позволит автоматизировать работу по ведению учета за курсовой работой, что значительно экономит время. Ввод информации, ее редактирование будут осуществляться достаточно быстро и эффективно. Также, данная программа будет позволять выявлять совпадение тем курсовых работ. Таким образом, данная база данных позволит руководителям выдавать неповторяющиеся темы курсовых работ. Для реализации базы данных будет использована СУБД Visual FoxPro 9.0. Это одна из наиболее популярных систем разработки приложений баз данных, мощный продукт, позволяющий применять при разработке приложений баз данных всю гибкость объектно-ориентированного программирования. 1.Постановка задачи 1.1.Общие сведения. Полное наименование работы: создать прикладную информационную систему по вводу и редактированию информации о курсовых работах кафедры ВИТ. Результатом работы должен быть законченный работоспособный программный продукт, который будет использоваться для получения, хранения и редактирования информации о курсовой работе кафедры ВИТ.
1.2 Входные данные представляют собой: Группа ФИО студента Предмет Тема Оценка Дата сдачи ФИО преподавателя Ученая степень 1.3 Требования к программному обеспечению. Программное обеспечение должно осуществлять выполнение следующих функций: 1. Ведение списка курсовых работ кафедры ВИТ 2. Добавление, удаление информации о курсовых работах 3. Создание необходимых отчетов 4. Просмотр отчетов на экране и вывод на печать. 2. Выбор и обоснование инструментальных средств Системы СУБД позволяют быстро и эффективно разработать самые разнообразные приложения. Они имеют развитые возможности по созданию пользовательского интерфейса, широкий набор функций, методов и свойств для решения прикладных задач. Данный курсовой проект выполнен на СУБД Visual FoxPro 9.0. Visual FoxPro является объектно-ориентированным, визуально программируемым языком, управляемым по событиям и в полной мере соответствует требованиям, предъявляемым к современным средствам проектирования. Visual FoxPro 9.0 является системой управления реляционными базами данных, которые в настоящее время являются наиболее распространенными, и фактически стали промышленным стандартом. Visual FoxPro позволяет использовать SQL-операторы и функции поддержки OLE-технологии. Наряду с традиционным хранением данных в виде отдельных DBF-файлов в Visual FoxPro поддерживается хранение данных в базе данных. База данных содержит все включенные в нее таблицы, их индексы, постоянные связи между таблицами, длинные имена таблиц, комментарии и заголовки полей, хранимые процедуры и триггеры, правила проверки и многое другое. Обеспечивается поддержка значения NULL для полей базы данных, что является очень важным при работе с SQL-базами данных. Используются четыре типа индексов: первичный, кандидат, уникальный и простой, отвечающие производственным стандартам работы с базами данных. Представлены средства переноса базы данных Visual FoxPro на SQL-сервер. Можно вводить для полей элементы управления, маску ввода и формат, которые будут использованы по умолчанию для отображения значений этих полей. Одновременно с сохранением возможности процедурного пошагового программирования Visual FoxPro предоставляет средства разработки объектно-ориентированных приложений. Класс содержит информацию о внешнем виде и поведении объекта. Управление объектом осуществляется посредством обрабатываемых им событий. В настоящей версии дополнительно Visual FoxPro предлагает полноценную модель управления событиями, включая обработку событий Windows. Дальнейшее развитие графического интерфейса пользователя привело к созданию гибкого и мощного инструментария, обеспечивающего в любой момент времени взаимнооднозначное соответствие программного кода и разрабатываемых экранных форм. Совершенно новый подход к организации проекта с применением диспетчера проекта, представляющего весь проект в виде иерархического дерева, позволяет разработчику переключаться между различными компонентами приложения и средствами разработки этих компонент по простому щелчку мыши. Свое дальнейшее развитие получило применение мастеров и построителей. В настоящей версии Visual FoxPro графический интерфейс пользователя включает в себя: поддержку технологии перемещения таблиц и полей данных в экранные формы непосредственно из диспетчера проекта или из окна проектирования базы данных; использование контекстного меню; всеобъемлющий характер наборов инструментария и многое другое. Visual FoxPro поддерживает работу с OLE-объектами, позволяя как встраивать такие объекты в экранные формы, так и сохранять их в полях базы данных. Дополнительно Visual FoxPro предоставляет библиотеку OLE-объектов. Версия Visual FoxPro 9.0 обладает рядом новых возможностей: - Более удобная работа с проектом и управлением базой данных. - Упрощены процедуры проектирования таблиц и расширены возможности словаря базы данных. Введено создание для видов внешних соединений; определение псевдонимов для столбцов таблицы базы данных; назначения полям элементов управления, маски ввода и формата. - Расширены возможности построения запросов и проектирования видов. - Упрощено проектирование форм и значительно расширены функциональные возможности. Поддерживается применение MDI (Multiple Document Interface) и SDI (Single Document Interface) интерфейсов для управления оконными формами. Добавлено средство проектирования контекстного меню (Shortcut Menu Designer). Новый редактор облегчает программирование, обеспечивая форматирование программного кода и выделение цветом. - Введены новые мастера и дополнены старые. Новый мастер Application Wizard позволяет создавать рабочее пространство проекта. - Продвинуто внедрение OLE-технологии. Поддерживается работа с новыми элементами управления ActiveX, являющимися OLE-объектами. - Улучшен отладчик. - Введены новые команды и функции. 3. Практическая часть 3.1 Определение этапов разработки программного обеспеченияВ процессе обучения мной были получены навыки проектирования задач, что и было применено в данной курсовой работе. Таким образом, задача была разбита на следующие этапы:ь Разработка модели представления данныхь Разработка структуры интерфейсаь Проектирование входных и выходных формь Программирование приложенияь Проверка функциональности на контрольном примере.3.2 Принципы реализации программного обеспеченияПри создании программного обеспечения был применен принцип разделения, то есть все функционально разные части вынесены в отдельные клиентские формы.Программирование производилось путем описания методов и событий активных элементов форм.Доступ к данным, хранимым в базе данных, осуществлялся через SQL - запросы.SQL - команды позволили осуществить добавление и удаление данных из базы.3.3 Руководство ПользователяПосле запуска проекта на экране появляется главное окно программы, с которого начинается дальнейшая работа. Данная форма «Учет курсовых работ кафедры ВИТ» содержит информацию о студенте и о курсовой работе. Для получения необходимой информации, в списке «Группа» выбираем любую группу кафедры ВИТ. После выбора группы в поле «ФИО» появляются все студенты, принадлежащие данной группе. При выборе студента происходит вывод информации предмете: в списке «Предмет» появляется название предмета (или предметов), по которому проводится курсовая работа. При дальнейшем выборе предмета из списка происходит заполнение следующей информации о курсовой работе: тема курсовой работы, оценка, дата сдачи и преподаватель.
При нажатии на кнопку «Добавить» появляется форма «Добавление информации о студенте и курсовой работе» с пустыми полями, в которые необходимо заполнить, чтобы занести информацию о студенте и о его курсовой работе в нашу базу данных: В разделе «Информация о студенте» можем добавить группу с помощью кнопки «Добавить группу». Вводим название группы, нажимаем кнопку «Добавить группу», это поле автоматически очищается для дальнейшего добавления групп, а только что добавленная группа мгновенно заносится в наш список групп в поле «Группа», выбрав которую вбиваем информацию о студенте. Аналогичным образом работают кнопки «Добавить предмет» и «Добавить уч.степень» (Добавить ученую степень преподавателя). Информация заносится в списки «Предмет» и «Ученая степень» соответственно.
Дальше идет заполнение полей: «Тема курсовой работы» - вводим тему; «Оценка» - выбираем из списка оценок (3,4,5) нужную нам оценку; «Дата сдачи» - при нажатии на кнопку ( ) появляется форма «Выберите дату» в виде календарика:
В ней при помощи кнопки «Выбрать» выбираем необходимую нам дату сдачи курсовой работы и заполняем информацию о преподавателе (ФИО, ученая степень).
Нажимаем основную кнопку «Добавить», и информация о студенте и курсовой работе заносится в нашу базу данных. При нажатии на кнопку «Добавить», также происходит проверка на выявление совпадения темы курсовой работы. Если вводимая тема совпадает с уже существующей темой, то выводится сообщение:
и вводимые данные не добавляются. В противном случае выводится сообщение:
и вводимые данные успешно заносятся в базу данных. Если мы хотим перед вводом темы курсовой работы просмотреть кокой - нибудь предмет на наличие ранее выдававшихся тем по этому предмету, то в списке «Предмет» выбираем нужный нам предмет и нажимаем кнопку «Показать темы». В правой стороне в списке появляются список тем.
Также мы можем удалять студента при помощи кнопки «Удалить» в главном окне программы (при этом тема курсовой работы не удаляется, для последующего выявления уже сданных тем курсовых работ).
Если студент, которого хотим удалить, не выбран, то выводится сообщение:
При выборе студента и нажатии на кнопку «Удалить» происходит удаление студента и выводится сообщение об успешном удалении:
Кнопки «Отчет по студентам» и «Отчет по преподавателям» позволяют просмотреть информацию:
1)о студенте: ФИО, по какому предмету, какую курсовую, на какую оценку, и когда он защитил; 2)о преподавателе: ФИО, ученую степень, предмет, который он вел, и какая тема курсовой работы выдавалась им по данному предмету. Заключение В процессе выполнения курсовой работы мной были освоены средства написания прикладных систем управления базами данных на основе Visual Fox Pro 9.0. С помощью широких возможностей программы Visual FoxPro 9.0 осуществлен удобный интерфейс, легкий доступ к данным и другие возможности, освещенные в данной курсовой работе. Считаю, что возможности Visual Fox Pro 9.0 достаточно широкие, чтобы написать программу любой сложности, но, к сожалению, в Visual Fox Pro 9.0 много недоработок. Поэтому Visual Fox Pro 9.0 совершенно не пригоден для написания серьезных программ. Созданная система имеет удобный интерфейс, обеспечивающий быстрый доступ к необходимым данным. Данный программный продукт позволяет вводить и удалять различные данные. Список литературы: 1. С. Каратыгин, А . Тихонов, Л.Тихонова Visual FoxRro К вершинам мастерства - М.:Восточеная Книжная Компания, 1997. 2. А.М. Вендеров Проектирование программного обеспечения экономических информационных систем: Москва “Финансы и статистика”,2000. 3. Курс лекций Макарец.А.Б Приложение 1. Разработка и реализация модели представления данных. Типовым шагом при разработке таких задач, является оптимизация хранения данных. В реляционной модели наиболее лучшим вариантом является разбиение хранимой информации на категории. В данном проекте информация была разбита на следующие категории : · Основная таблица (courseworks.dbf) · Справочник по предмету (subject.dbf) · Справочник по студенту (student.dbf) · Справочник по группе (group.dbf) · Справочник по преподавателю (professor.dbf) · Справочник по ученой степени преподавателя (degree.dbf) · Справочник по теме курсовой работы (theme.dbf) Список файлов системыcourseworks.exe - запускаемый файлФайлы базы данных.1.dbccourseworks.dbf subject.dbfstudent.dbf group.dbf professor.dbf degree.dbf theme.dbf Файлы форм.form1.scx - главная форма (Учет курсовых работ кафедры ВИТ)form2.scx - форма добавления данныхgetdataform.scx - форма по выбору датыФайлы отчетов.prof.frx - отчет по преподавателямst.frx - отчет по студентамФайлы помощиHelp.hlpФайлы программ.main.prg quit.prgПриложение 2. Листинг программы.Form1 - «Учет курсовых работ кафедры ВИТ»Инициализации формы:SET DELETE onSELECT namegroup FROM group INTO CURSOR group1ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='group.namegroup'Выборе группы из списка (Combo1):gg=TRIM(THISFORM.Combo1.Value)SELECT Group.id_group;FROM 1!group;WHERE TRIM(Group.namegroup)==gg;INTO CURSOR t10SELECT surname,name,patronymic;FROM student;WHERE student.id_group=t10.id_group;INTO CURSOR cliciThisForm.text9.Value=''ThisForm.text11.Value='' ThisForm.text12.Value=''ThisForm.List1.RowSourceType= 2ThisForm.List1.Value=''ThisForm.List1.RowSource='ALLTRIM(clici.surname)+SPACE(1)+ALLTRIM(clici.name)+SPACE(1)+ALLTRIM(clici.patronymic)' ThisForm.List2.RowSourceType= 2ThisForm.List2.RowSource='' Выбор студента (List1):SELECT surname,name,patronymic,id_student FROM student;WHERE ALLTRIM(student.surname)+SPACE(1)+ALLTRIM(student.name)+SPACE(1)+ALLTRIM(student.patronymic)=ALLTRIM(This.Value) AND t10.id_group=student.id_group; INTO CURSOR student3 ThisForm.text9.Value='' ThisForm.text11.Value='' ThisForm.text12.Value='' ThisForm.text1.Value=''SELECT id_professor,id_theme,id_subject,mark,datedelivery,id_student FROM courseworks;WHERE courseworks.id_student=student3.id_student INTO CURSOR cworkSELECT Subject.id_subject, Subject.namesubject, Courseworks.id_student,; Courseworks.id_subject, Courseworks.id_professor,; Courseworks.datedelivery, Courseworks.mark, Courseworks.id_theme; FROM ; 1!subject ; INNER JOIN 1!courseworks ; ON Subject.id_subject = Courseworks.id_subject; INTO CURSOR ccworkSELECT * FROM ccwork;where ccwork.id_student=cwork.id_student INTO CURSOR cccworkThisForm.List2.RowSourceType=2ThisForm.List2.Value=''ThisForm.List2.RowSource='ALLTRIM(cccwork.namesubject)'Выбор предмета(List2): SELECT * FROM cccwork;where ALLTRIM(cccwork.namesubject)=ALLTRIM(this.value) INTO CURSOR ccccworkThisForm.text11.Value=ccccwork.markThisForm.text12.Value=ccccwork.datedeliverySELECT surname,name,patronymic,id_degree FROM professor; WHERE professor.id_professor=ccccwork.id_professor INTO CURSOR professor2SELECT degree,id_degree FROM degree;WHERE degree.id_degree=professor2.id_degree INTO CURSOR degThisForm.text1.Value=ALLTRIM(professor2.surname)+SPACE(1)+ALLTRIM(professor2.name)+SPACE(1)+ALLTRIM(professor2.patronymic)+SPACE(3)+ALLTRIM(deg.degree)SELECT nametheme,id_theme FROM theme; WHERE theme.id_theme=ccccwork.id_theme INTO CURSOR temaThisForm.text9.Value=ALLTRIM(tema.nametheme)Кнопка «Добавить»:SET PATH TO ('FORMS')do FORM FORM2.ScxКнопка «Удалить»:b=TRIM(ThisForm.List1.Value)IF THISFORM.list1.ListIndex!=0 THENSELECT * from Student;WHERE ALLTRIM(student.surname)+SPACE(1)+ALLTRIM(student.name)+SPACE(1)+ALLTRIM(student.patronymic)=b AND t10.id_group=student.id_group;into cursor stu SELECT * from courseworks;WHERE courseworks.id_student=stu.id_student;into cursor courSELECT * from professor;WHERE professor.id_professor=cour.id_professor;into cursor proDELETE FROM Student;WHERE ALLTRIM(student.surname)+SPACE(1)+ALLTRIM(student.name)+SPACE(1)+ALLTRIM(student.patronymic)=b AND t10.id_group=student.id_groupDELETE FROM courseworks;WHERE courseworks.id_student=stu.id_studentDELETE FROM subject;WHERE subject.id_subject=cour.id_subjectDELETE FROM professor;WHERE professor.id_professor=cour.id_professorDELETE FROM degree;WHERE pro.id_degree=degree.id_degreeTHISFORM.List1.InteractiveChange()THISFORM.Combo1.InteractiveChange()MESSAGEBOX(" Студент удален!")ELSEMESSAGEBOX(" Студент не выбран!")ENDIFИ в менеджере проекта Code/Programsmain: ON shutdown do quit.prgSET DELETED ONSET PATH TO('\FORMS')do form form1.scxread eventquit:Clear windowsCLOSE DATABASES ALLSET PATH TO ('DATA\')SET DELETED ONOPEN DATABASE 1PACK courseworksPACK degreePACK groupPACK professorPACK studentPACK subjectPACK themePACK DATABASE CLOSE DATABASES ALLQUITНажатие на кнопку «Отчет по студентам»:SET PATH TO('REPORTS\')REPORT FORM st PREVIEWНажатие на кнопку «Отчет по преподавателям»:SET PATH TO('REPORTS\')REPORT FORM prof PREVIEWForm2 - «Добавление информации о студенте и курсовой работе»Инициализации формы:SELECT namegroup FROM group INTO CURSOR group2ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='group2.namegroup'SELECT namesubject FROM subject INTO CURSOR subject2ThisForm.Combo2.RowSourceType= 2ThisForm.Combo2.RowSource='subject2.namesubject'ThisForm.Combo4.RowSourceType= 2ThisForm.Combo4.RowSource='subject2.namesubject'SELECT degree FROM degree INTO CURSOR degree222ThisForm.Combo5.RowSourceType= 2ThisForm.Combo5.RowSource='degree222.degree' ThisForm.Combo3.AddItem("3")ThisForm.Combo3.AddItem("4")ThisForm.Combo3.AddItem("5")Нажатие на кнопку «Добавить группу»:SELECT MAX(group.id_group) as m_group FROM group INTO CURSOR group_max2 INSERT INTO group(id_group,namegroup); VALUES (group_max2.m_group+1,ALLTRIM(ThisForm.text7.Value)) SELECT namegroup FROM group INTO CURSOR group2ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='group2.namegroup' ThisForm.text7.Value=''Нажатие на кнопку «Добавить предмет»:SELECT MAX(subject.id_subject) as m_subject FROM subject INTO CURSOR subject_max2 INSERT INTO subject(id_subject,namesubject); VALUES (subject_max2.m_subject+1,ALLTRIM(ThisForm.text8.Value)) SELECT namesubject FROM subject INTO CURSOR subject22ThisForm.Combo1.RowSourceType= 2ThisForm.Combo1.RowSource='subject22.namesubject' ThisForm.text8.Value=''Нажатие на кнопку «»:SET PATH TO ('Forms\')DO FORM getdataformНажатие на кнопку «Добавить уч.степень»:SELECT MAX(degree.id_degree) as m_degree FROM degree INTO CURSOR degree_max2 INSERT INTO degree(id_degree,degree); VALUES (degree_max2.m_degree+1,ALLTRIM(ThisForm.text10.Value)) SELECT degree FROM degree INTO CURSOR degree22ThisForm.Combo5.RowSourceType= 2ThisForm.Combo5.RowSource='degree22.degree' ThisForm.text10.Value='' Нажатие на кнопку «Добавить»: SELECT MAX(courseworks.id_student) as m_id_student,MAX(courseworks.id_subject) as m_id_subject,MAX(courseworks.id_professor) as m_id_professor,MAX(courseworks.id_theme) as m_id_theme FROM courseworks INTO CURSOR courseworks_save SELECT * FROM subject INTO CURSOR subject_save SELECT * FROM student INTO CURSOR student_save SELECT * FROM professor INTO CURSOR professor_save SELECT * FROM degree INTO CURSOR degree_save SELECT MAX(degree.id_degree) as m_degree FROM degree INTO CURSOR degree_max SELECT MAX(group.id_group) as m_group FROM group INTO CURSOR group_max SELECT MAX(subject.id_subject) as m_subject FROM subject INTO CURSOR subject_max SELECT MAX(theme.id_theme) as m_theme FROM theme INTO CURSOR theme_max SELECT MAX(student.id_student) as m_student FROM student INTO CURSOR student_max SELECT MAX(professor.id_professor) as m_professor FROM professor INTO CURSOR professor_max SELECT * FROM theme INTO CURSOR theme_save SELECT * FROM group INTO CURSOR group_saveSELECT * FROM group WHERE group.namegroup=ALLTRIM(THISFORM.combo1.Value) INTO CURSOR selectgr SELECT COUNT(*) as ct; FROM 1!theme;WHERE LOWER(TRIM(Theme.nametheme))==LOWER(TRIM(THISFORM.text9.value))INTO CURSOR ttt1IF ttt1.ct!=0 THENMESSAGEBOX(" Такая тема есть!!!")ELSE SELECT * FROM courseworks;where ALLTRIM(courseworks.mark)=ALLTRIM(thisform.Combo3.value);INTO CURSOR wer INSERT INTO student(id_student,surname,name,patronymic,id_group);VALUES (courseworks_save.m_id_student+1,ALLTRIM(ThisForm.text1.Value),ALLTRIM(ThisForm.text2.Value),ALLTRIM(ThisForm.text3.Value),selectgr.id_group) INSERTINTO courseworks(id_student,id_subject,id_professor,datedelivery,mark,id_theme); VALUES (courseworks_save.m_id_student+1,courseworks_save.m_id_subject+1,courseworks_save.m_id_professor+1,(Thisform.text12.Value),wer.mark,courseworks_save.m_id_theme+1) INSERT INTO degree(id_degree,degree); VALUES (degree_max.m_degree+1,ALLTRIM(ThisForm.Combo5.Value)) INSERT INTO professor(id_professor,surname,name,patronymic,id_degree); VALUES (courseworks_save.m_id_professor+1,ALLTRIM(ThisForm.text4.Value),ALLTRIM(ThisForm.text5.Value),ALLTRIM(ThisForm.text6.Value),degree_max.m_degree+1) INSERT INTO theme(id_theme,nametheme); VALUES (courseworks_save.m_id_theme+1,ALLTRIM(ThisForm.text9.Value)) MESSAGEBOX(" готово!!! ")ENDIFНажатие на кнопку «Показать темы»:SELECT * FROM subject; where ALLTRIM(thisform.combo4.value)=ALLTRIM(subject.namesubject) into cursor subfindSELECT theme.id_theme, theme.nametheme, Courseworks.id_student,; Courseworks.id_subject, Courseworks.id_professor,; Courseworks.datedelivery, Courseworks.mark, Courseworks.id_theme; FROM ; 1!theme ; INNER JOIN 1!courseworks ; ON theme.id_theme = Courseworks.id_theme; INTO CURSOR corrwork SELECT * FROM corrwork; WHERE subfind.id_subject=corrwork.id_subject INTO CURSOR corworkThisForm.List1.RowSourceType=2ThisForm.List1.Value=''ThisForm.List1.RowSource='ALLTRIM(corwork.nametheme)'Getdataform - «Выбор даты»Нажатие кнопки «Выбрать»:y=YEAR(THISFORM.olecontrol1.SelEnd)m=MONTH(THISFORM.olecontrol1.SelEnd)ch=DAY(THISFORM.olecontrol1.SelEnd)form2.text12.Value=DATE(y,m,ch)THISFORM.Release
|
|