Будь умным!


У вас вопросы?
У нас ответы:) SamZan.net

ВВЕДЕНИЕ В настоящее время несмотря на повышение компьютеризации общества в сфере образования до сих по

Работа добавлена на сайт samzan.net:


ВВЕДЕНИЕ

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

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

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

Действительно, процессы обработки информации имеют общую природу и опираются на описание фрагментов реальности, выраженное в виде совокупности взаимосвязанных данных. Базы данных являются эффективным средством представления структур данных и манипулирования ими. Концепция баз данных предполагает использование интегрированных средств хранения информации, позволяющих обеспечить централизованное управление данными и обслуживание ими многих пользователей. При этом БД должна поддерживаться в среде ЭВМ единым программным обеспечением, называемым системой управления базами данных (СУБД). СУБД вместе с прикладными программами называют банком данных.

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


1. ОБЩАЯ ЧАСТЬ

  1.  Цель разработки

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

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

1.2. Анализ средств программирования

1.2.1. Обзор методов решения

Есть много языков программирования, на которых можно было бы написать эту программу:  Visual Basic, Delphi, C++. Для этого дипломного проекта выбран язык програмированния Delphi, потому что это достаточно легкий и понятный язык.

Дипломный проект написан на Delphi 7 с помощью СУБД Access.

1.2.2. Описание языка

1.2.2.1.Общие сведения

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

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

Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.

Delphi – современная система программирования. Назначение Delphi – быстрая разработка приложений. С ее помощью можно быстро и качественно создавать любые программы: от простейшего калькулятора до многоуровневой системы управления предприятием.

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

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

Одним из достоинств среды программирования Delphi – это система подсказок. В процессе набора текста программы редактор кода выводит справочную информацию. Например, если на форме располагается компонент кнопка Button1 и, когда пользователь в окне кода программы напишет Button1 и поставит точку, то появится окно с параметрами процедур и функций, свойствами и методами объектов. Система подсказок существенно облегчает процесс подготовки текста программы, избавляет от рутины. Кроме того, если во время набора программы подсказка не появилась, это значит, что программист допустил ошибку: скорее всего, неверно набрал имя процедуры или функции.

1.2.2.2. Способы структурирования программы

Любой проект имеет, по-крайней мере, шесть файлов, связанных с ним. Три из них относятся к управлению проектом из среды и напрямую программистом не меняются. Вот эти файлы:

  •  Главный файл проекта, изначально называется PROJECT1.DPR
  •  Первый модуль программы /unit/, который автоматически появляется в начале работы. Файл называется UNIT1.PAS по умолчанию, но его можно назвать любым другим именем, вроде MAIN.PAS.
  •  Файл главной формы, который по умолчанию называется UNIT1.DFM, используется для сохранения информации о внешнем виде главной формы.
  •  Файл PROJECT1.RES содержит иконку для проекта, создается автоматически.
  •  Файл, который называется PROJECT1.OPT по умолчанию, является текстовым файлом для сохранения установок, связанных с данным проектом. Например, установленные Вами директивы компилятора сохраняются здесь.
  •  Файл PROJECT1.DSK содержит информацию о состоянии рабочего пространства.

Разумеется, если сохранить проект под другим именем, то изменят название и файлы с расширением RES, OPT и DSK.

После компиляции программы получаются файлы с расширениями:

DCU - скомпилированные модули

EXE - исполняемый файл

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

~PA, ~DP - backup файлы Редактора.

1.2.2.3. Дополнительные средства языка

Дипломный проект был реализован с помощью следующих компонент:

Закладка DataControls:

  •  DBGrid

Закладка DataAccess:

  •  DataSource

Закладка ADO:

  •  ADOConnection;
  •  ADOTable.

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

  1.  Настройка соединения с сервером базы данных. Сделать это возможно двумя способами.
    1.  Через инспектор объектов. Для этого необходимо дважды щелкнуть мышкой по свойству Connetionstring или же по самому объекту. После этого появится окно в котором необходимо выбрать: использовать специальный файл (Use data link file) или использовать строку подключения (Use Connection String).

Мы будем рассматривать строку подключения, тем более мы отчасти разбирали ее при создании базы данных. Приступим к созданию строки подключения. Для этого необходимо нажать кнопку Build, после этого на появившейся вкладке «Поставщик данных» необходимо выбрать драйвер подключения (Microsoft Jet 4.0.OLE DB Provider) и нажать кнопку «далее». На следующей вкладке «Подключение» надо указать имя базы данных, с которой мы хотим соединится (вводится полный путь). Если при создании базы данных было задано имя пользователя и пароль. То их необходимо указать чуть ниже. После проделанных действий нажмите на кнопку «Проверить подключение» и, если все указано верно, то появится сообщение «Проверка соединения выполнена».

На этом соединение с базой можно считать законченным и закрыть окно.

  1.  Настройка соединения программным способом. Для этого необходимо добавить в программу строчку кода:

Adoconnection.connectionstring := ‘Provider=Microsoft.jet.oledb.4.0;

DataSource=c:\first.mdb;

persist security info=false’;

Первые два свойства нам знакомы, это имя драйвера и путь. К подключаемой базе данных. А третье свойство persist security – означает сохранять информацию о безопасности или нет. В принципе, эта строка не играет особого значения и следует оставить значение false.

  1.  Включение соединения с базой данных. Для этого необходимо выставить свойство connection в true через инспектор объектов или же выполнить программно, для этого в программе следует написать следующую строку:

Adoconnection.conтected := true;

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

ADOTable. Он то по сути и будет связываться с таблицей БД. Минимальные настройки заключаются в:

  1.  Укажем в свойстве Connection компонента ADOTable созданный нами, компонент соединения с базой дынных. Сделать это можно как в инспекторе объектов, так и программно. Дл я того что бы сделать это программно необходимо написать в коде программы следующую строку:

Adotable1.connection := adoconnection1

  1.  Так как у базы данных может быть много таблиц, нам необходимо указать с какой конкретно таблицей мы хотим соединится. За это отвечает свойство Tablename. Так же как и предыдущее свойство его можно задать программным путем.

Adotable.tablename :=’Справочник’;

  1.  Необходимо активизировать соединение. Для этого надо выставить свойство Active в true в инспекторе объектов или же программно:

Adotable.active:=true;

Datasource Этот компонент является как бы контейнером данных, полученных от компонентов ADOTable и ADOQuerry. Исходя из этого можно догадаться что ему просто необходимо указать данные какой таблицы или запроса он будет отображать. Сделать это можно выбрав в свойстве Dataset необходимую таблицу (ADOtable)

На этом необходимые настройки можно считать законченными и можно переходить к непосредственной работе с базой данных.

Компонент DBGrid. Этот компонент представляет собой двумерную таблицу, в которой строки представляют собой записи, а столбцы — поля определенной таблицы из базы данных.

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

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

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

1.2.2.4. Средства обмена данными

В Delphi программа реализована в виде таблиц. Для создания таблиц использовалось приложение Microsoft Access. База данных  «Школа» состоит из нескольких таблиц, которые содержат информацию об учениках, преподавателях и техническом персонале.

Таблицы можно посмотреть на рисунке 1.

Рис.1. Таблицы
2. СПЕЦИАЛЬНАЯ ЧАСТЬ

2.1. Постановка задачи

2.1.1.Назначение задачи

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

2.1.2. Технико-математическое описание задачи

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

2.1.3. Требования к программе 

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

2.1.3.1. Требования к функциональным характеристикам

Программа должна:

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


2.1.3.2. Требования к аппаратным и программным средствам

Требования:

  •  Операционная система Microsoft Windows XP sp3 или выше;
  •  Процессор Intel Pentium® IV 1.7 GHz или AMD Athlon™ от 1.5GHz;
  •  Оперативная память 1Gb;
  •  Устройства ввода: клавиатура и мышь;
  •  Устройства вывода: принтер и монитор.

2.1.3.3. Требования к надежности

Программа состоит из:

  •  SchoolProject.exe – одного запускаемого файла;
  •  SchoolDataBase.mdb – файла базы данных;

Корректное функционирование программы обеспечивается путем выполнения следующих рекомендаций:

  •  Все файлы и папки должны находиться в одной папке
  •  Не следует менять имена файлов и папок, находящиеся в папке с базой данных;
  •  Нельзя удалять файлы и папки, находящиеся в папке с базой данных


2.2. Описание алгоритма


Программная часть:

Блок схема работы процедуры поиска по фамилии


2.3. Описание программы

 Исходный текст программы находится в ПРИЛОЖЕНИИ 1.

2.3.1. Описание структуры программы

 Программа состоит из тринадцати модулей. Все модули связаны с формами.

  •  UserForm(UserUnit.pas) – форма отвечающая за доступ и авторизацию к программе. Форма ввода пароля
  •  StudentForm(StudentUnit.pas) – Следующая форма программы, на которой  содержится информация о учениках, а так же возможность перемещатся по другим разделам БД(Рис.2)

Рис.2.

  •  PrepodForm(PrepodUnit.pas) – Форма программы содержащая информацию о преподователях, а так же возмаожность их сортеровки.

(Рис.3)

(Рис.3)

  •  PersonalForm (PersonalUnit.pas) – Форма просмотра и изменения служащего персонала.

  •  UsersForm(Unit.pas) – Форма пользователей БД, в кторой позволено создавать, изменять , наделять правами учетных ползователей программы.

2.3.2. Выходные и входные данные

Входными данными являются:

  •  Файл базы данных SchoolDataBase.Mdb;
  •  Текстовые данные, вводимые пользователем;
  •  Файл фона.

Выходными данными являются:

  •  Текстовая информация в виде форм и в виде таблица Еxcell;
  •  Файл базы данных SchoolDataBase.Mdb;
  •  Печатные документы.

2.3.3. Организация данных в программе

 В данном проекте основные данные представлены в виде записей таблицы

Каждое поле в таблице имеет свой тип данных. Программные названия полей и их типы данных были описаны в процессе создания базы данных SchoolDataBase.mdb MS Access(Рисунки 6-7). Остальные таблицы услуг похожи по своей стурктуре.


2.4. Инструкция пользователя

 Программа состоит из нескольких модулей со своим окном. Исполняемым файлом к программе является файл SchoolProject.exe

2.4.1. Форма ввода пароля

При запуске программы появляется форма ввода пароля

После ввода неверного пароля выводится сообщение об ошибке.

2.4.2. Окно базы данных

При правильно введенных логине и пароле откроется окно базы данных «Ученики»()

Также с нее  можно перемещатся по другим таблицам базы данных:

Преподаватели()

Технический персонал()

2.4.3. Панель управления записями баз данных

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

2.4.4. Открытие  в Excel

Программа имеет возможность выводить таблицы базы данных в формате Excel

2.4.5. Пользователи

На этой форме можно изменять/добавлять/удалять данные для входа программы и назначать права.

2.4.6. Прочие функции

Поиск по фамилии в таблице БД

Сортировка данных

 

Сортировка по Фамилии в таблицах БД «Преподаватели» и «Технический персонал», а в таблице «Ученики» сортировка производится по фамилии и классу.

Информация о таблице

2.5. Анализ результатов

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

Реализованы основные действия с базами данных, а именно: просмотр, редактирование, поиск и сортировка по различным полям

Программа снабжена простым и интуитивным интерфейсом, но, тем не менее, реализованы все необходимые операции с таблицами баз данных.

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


3. ЭКОНОМИЧЕСКАЯ ЧАСТЬ

Расчет предполагаемой прибыли от реализации созданного программного продукта

3.1 Описание продукта

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

3.2 Работа программы

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

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

  •  Удалять старые записи;
  •  Добавлять новые записи;
  •  Просмотреть информацию о таблице;
  •  Производить сортировку по Фамилии и классу;
  •  Осуществлять печать информации об учениках или персонале;


3.3 Описание и расчет затрат на выполнение проекта

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

Определение трудоёмкости.

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

Форма расположения работ по этапам:

1.Разработка технического задания (ТЗ):

- получение ТЗ;

2. Подготовительный этап:

-сбор информации;

-определение возможных направлений решения заданий;

-выбор объектного построения программы;

-разработка общей методики создания продукта;

-подготовка промежуточного отчета;

3. Основной этап:

- Разработка основного алгоритма;

-Создание интерфейса;

-Отладка;

4. Завершающий этап:

-Подготовка технической документации;

-сдача продукта.

Определим трудоёмкость нашего проекта


Таблица 1 – Расчет трудоёмкости по проекту

№ п/п

Виды работ

Трудоёмкость

1

Получение ТЗ

1

2

Сбор информации и ознакомление с предметной областью

33

3

Определение возможных направлений решения заданий

17

4

Выбор объектного построения программы

14

5

Разработка общей методики создания продукта

9

6

Подготовка промежуточного отчета

5

7

Разработка основного алгоритма

93

8

Создание интерфейса

20

9

Отладка

16

10

Подготовка технической документации

21

11

Сдача продукта

1

Итого

230

Суммарная трудоемкость составила 230 чел.\час.

Расчет расходов на заработную плату

На основе данных о трудоемкости и средней заработной плате по отрасли  рассчитывается основная заработная плата. Допустим, что заработная плата программиста без опыта работы составляет 24 000 тыс. руб. в месяц. (21 рабочий день, 8 часовой рабочий день) или 142,86 руб./час.

Таким образом, расходы на заработную плату по данному проекту составляют:

ЗП = 142,86*230 = 32857,8руб.

Отчисления на ЗП (Пенсионный Фонд, Фонд соц. страхования, Фонд обязательного мед. страхования, территориальные фонды мед. страхования) составляют 26% (20,0+2,9+1,1+2,0 соответственно). В денежном выражении составляют:

32857,8 *0,26=8543руб.

Расходные материалы

Материалы, затраченные на создание  проекта, приведены в Таблице 2.

Таблица 2 - Материалы, затраченные на создание  проекта

Расходные материалы:

Количество:

Цена за единицу:

Сумма (руб.):

1)Бумага для принтера

1 упаковка

120

120

2)Картридж для принтера

1 штука

354

354

3)Интернет

1 месяц

550 руб/мес

550

4)CD-R

1 штука

12

12

5)Канцелярия

Папка+файлы

132

132

6) Клавиатура

1 штука

159

159

Итого

1327

Расчет амортизации

Стоимость компьютера 60 тыс. руб. Используется он в течение 5 лет (60 мес.). Годовая амортизация составит в месяц  1000 руб. В час: 5.95 руб. Умножая на трудоёмкость:

АО= 5,95*230= 1368,5 руб.

Расчет электроэнергии

ПК в среднем употребляет 0,6 Квт/час. 0,6*230=138 КВт. Примерная стоимость 1 Квт/ч около 1,97  руб.

Итого: 138 *1,97=271,86 руб.


Все результаты расчета затрат приведены в таблице 3.

Таблица 3  - Результаты расчетов

Наименование статей затрат

Сумма, руб.

Расходные материалы

1327

Основная заработная плата

32857,8

Расходы на  электроэнергию

271,86

Амортизационные отчисления

1368,5

Отчисления на ЗП

8543

Итого:

35856,21

Таким образом, суммарная стоимость затрат на создание данного программного продукта составляет 44368,16 рублей, следовательно, продать программу ниже этой стоимости невыгодно.

В ОБЩЕМ КОМУ НЕОБХОДИМ  СОЗДАННЫЙ ПРОГРАММНЫЙ ПРОДУКТ.

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

  •  Удобный в эксплуатации;
  •  Просмотр подробностей записи;
  •  Печать подробностей о клиенте на бумаге;
  •  Создан удобный интерфейс.

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

Предполагаемая прибыль составляет 5631,84руб.

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

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


ЗАКЛЮЧЕНИЕ

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

Достоинства программы:

  •  Простой и понятный интерфейс;
  •  Занимает небольшое пространство на жестком диске;
  •  Обеспечивает быстрый поиск и сортировку данных таблиц;
  •  Для работы приложения требуется компьютер со средними  системными характеристиками;

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

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


СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

  1.   Фаронов В.В. Программирование баз данных в Delphi 7. – СПб.: Питер, 2006.
  2.  http://www.delphiexpert.ru/ - сайт с множеством интересных уроков и полезных статей
  3.   http://www.beluch.ru/progr/100comp.htm - Электронная книга "100 компонентов общего назначения библиотеки Delphi 5" А. Я. Архангельского


ПРИЛОЖЕНИЕ 1.

Исходный текст программы

unit DataModule

interface

uses

SysUtils, Classes;

type

TDataModule2 = class(TDataModule)

private

{ Private declarations }

public

{ Public declarations }

end;

var

DataModule2: TDataModule2;

implementation

{$R *.dfm}

end.

unit DataModuleUnit

interface

uses

 SysUtils, Classes, DB, ADODB;

type

 TDataModule1 = class(TDataModule)

   ADOConnection1: TADOConnection;

   StudentTable: TADOTable;

   StudentDataSource: TDataSource;

   StudentTableDSDesigner: TWideStringField;

   StudentTableDSDesigner2: TWideStringField;

   StudentTableDSDesigner3: TWideStringField;

   StudentTableDSDesigner4: TWideStringField;

   StudentTableDSDesigner5: TWideStringField;

   StudentTableKey1: TAutoIncField;

   PrepodDataSource: TDataSource;

   PrepodTable: TADOTable;

   PrepodTableKey1: TAutoIncField;

   PrepodTableDSDesigner: TWideStringField;

   PrepodTableDSDesigner2: TWideStringField;

   PrepodTableDSDesigner3: TWideStringField;

   PrepodTableDSDesigner4: TWideStringField;

   PrepodTableDSDesigner5: TWideStringField;

   UsersDataSource: TDataSource;

   PersonalTable: TADOTable;

   PersonalDataSource: TDataSource;

   PersonalTableKey1: TAutoIncField;

   PersonalTableDSDesigner: TWideStringField;

   PersonalTableDSDesigner2: TWideStringField;

   PersonalTableDSDesigner3: TWideStringField;

   PersonalTableDSDesigner4: TWideStringField;

   PersonalTableDSDesigner5: TWideStringField;

   UsersTable: TADOTable;

   UsersTableKey1: TAutoIncField;

   UsersTableDSDesigner: TWideStringField;

   UsersTableDSDesigner2: TWideStringField;

   UsersTableDSDesigner3: TBooleanField;

   procedure StudentTableAfterOpen(DataSet: TDataSet);

   procedure PrepodTableAfterOpen(DataSet: TDataSet);

   procedure PersonalTableAfterOpen(DataSet: TDataSet);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 DataModule1: TDataModule1;

implementation

uses Unit2, PrepodUnit, StudentUnit, Unit1, UserUnit;

{$R *.dfm}

procedure TDataModule1.StudentTableAfterOpen(DataSet: TDataSet);

begin

DataModule1.StudentTable.IndexFieldNames:='Фамилия';

end;

procedure TDataModule1.PrepodTableAfterOpen(DataSet: TDataSet);

begin

DataModule1.StudentTable.IndexFieldNames:='Фамилия';

end;

procedure TDataModule1.PersonalTableAfterOpen(DataSet: TDataSet);

begin

DataModule1.PersonalTable.Sort:='Фамилия';

end;

end.

unit PersonalUnit

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, ExtCtrls, DBCtrls, StdCtrls, Menus, ToolWin, ComCtrls, Grids,

 DBGrids,ComObj;

type

 TPersonalForm = class(TForm)

   DBGrid1: TDBGrid;

   ToolBar1: TToolBar;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   Excel1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   N5: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N9: TMenuItem;

   N10: TMenuItem;

   N11: TMenuItem;

   Label1: TLabel;

   FilterFamEdit: TEdit;

   DBNavigator1: TDBNavigator;

   procedure FilterFamEditKeyPress(Sender: TObject; var Key: Char);

   procedure N8Click(Sender: TObject);

   procedure N3Click(Sender: TObject);

   procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure N6Click(Sender: TObject);

   procedure N5Click(Sender: TObject);

   procedure Excel1Click(Sender: TObject);

   procedure N2Click(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 PersonalForm: TPersonalForm;

implementation

uses DataModuleUnit, PrepodUnit, StudentUnit;

{$R *.dfm}

procedure TPersonalForm.FilterFamEditKeyPress(Sender: TObject;

 var Key: Char);

begin

If Length(FilterFamEdit.Text)>0 then

  DataModule1.PersonalTable.Filtered:=True

else DataModule1.PersonalTable.Filtered:=False;

DataModule1.PersonalTable.Filter:='Фамилия>'''+FilterFamEdit.Text+'''';

end;

procedure TPersonalForm.N8Click(Sender: TObject);

begin

DataModule1.PersonalTable.Sort:='Фамилия';

end;

procedure TPersonalForm.N3Click(Sender: TObject);

begin

Close;

end;

procedure TPersonalForm.FormClose(Sender: TObject;

 var Action: TCloseAction);

begin

StudentForm.Close;

end;

procedure TPersonalForm.N6Click(Sender: TObject);

begin

StudentForm.Show;

PersonalForm.Hide;

end;

procedure TPersonalForm.N5Click(Sender: TObject);

begin

PrepodForm.Show;

PersonalForm.Hide;

end;

procedure TPersonalForm.Excel1Click(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:Integer;

begin

XLApp:= CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Школа-Технический персонал';

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Технический персонал'].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Технический персонал'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets['Школа-Технический персонал'];

Sheet.Cells[1,2]:='Школа';

Sheet.Cells[2,1]:='Фамилия';

Sheet.Cells[2,2]:='Имя';

Sheet.Cells[2,3]:='Должность';

Sheet.Cells[2,4]:='Адрес';

Sheet.Cells[2,5]:='Телефон';

index:=3;

DataModule1.PersonalTable.First;

for i:=0 to DataModule1.PersonalTable.RecordCount-1 do

begin

  Sheet.Cells[index,1]:=DataModule1.PersonalTable.Fields.Fields[1].AsString;

  Sheet.Cells[index,2]:=DataModule1.PersonalTable.Fields.Fields[2].AsString;

  Sheet.Cells[index,3]:=DataModule1.PersonalTable.Fields.Fields[3].AsString;

  Sheet.Cells[index,4]:=DataModule1.PersonalTable.Fields.Fields[4].AsString;

  Sheet.Cells[index,5]:=DataModule1.PersonalTable.Fields.Fields[5].AsString;

  Inc(index);

  DataModule1.PersonalTable.Next;

end;

end;

procedure TPersonalForm.N2Click(Sender: TObject);

var

s:integer;

i:integer;

begin

s:=0;

for i:=0 to DataModule1.PersonalTable.RecordCount-1 do

s:=s+1;

ShowMessage('Название таблицы: '+Datamodule1.PersonalTable.TableName+#13+'Количество записей: '+IntToStr(s));

end;

end.

unit PrepodUnit

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, Grids, DBGrids, ToolWin, ComCtrls, Menus, StdCtrls, ExtCtrls,

 DBCtrls,ComObj;

type

 TPrepodForm = class(TForm)

   DBGrid1: TDBGrid;

   ToolBar1: TToolBar;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   Label1: TLabel;

   FilterFamEdit: TEdit;

   Sort: TMenuItem;

   N5: TMenuItem;

   PrepodNavigator: TDBNavigator;

   ExelItem: TMenuItem;

   Cghfdrf1: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N9: TMenuItem;

   N10: TMenuItem;

   procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure N4Click(Sender: TObject);

   procedure FilterFamEditChange(Sender: TObject);

   procedure N5Click(Sender: TObject);

   procedure ExelItemClick(Sender: TObject);

   procedure N6Click(Sender: TObject);

   procedure N2Click(Sender: TObject);

   procedure N7Click(Sender: TObject);

   procedure N8Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 PrepodForm: TPrepodForm;

implementation

uses DataModuleUnit, StudentUnit, UserUnit, Unit1;

{$R *.dfm}

procedure TPrepodForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin

StudentForm.Close;

end;

procedure TPrepodForm.N4Click(Sender: TObject);

begin

PrepodForm.Hide;

StudentForm.Show;

end;

procedure TPrepodForm.FilterFamEditChange(Sender: TObject);

begin

If Length(FilterFamEdit.Text)>0 then

  DataModule1.PrepodTable.Filtered:=true

else DataModule1.PrepodTable.Filtered:=false;

DataModule1.PrepodTable.Filter:='Фамилия>'''+FilterFamEdit.Text+'''';

end;

procedure TPrepodForm.N5Click(Sender: TObject);

begin

DataModule1.PrepodTable.IndexFieldNames:='Фамилия ASC';

end;

procedure TPrepodForm.ExelItemClick(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:Integer;

begin

XLApp:= CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Школа-Преподаватели';

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Преподаватели'].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Преподаватели'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets['Школа-Преподаватели'];

Sheet.Cells[1,2]:='Школа';

Sheet.Cells[2,1]:='Фамилия';

Sheet.Cells[2,2]:='Имя';

Sheet.Cells[2,3]:='Должность';

Sheet.Cells[2,4]:='Адрес';

Sheet.Cells[2,5]:='Телефон';

index:=3;

DataModule1.PrepodTable.First;

for i:=0 to DataModule1.PrepodTable.RecordCount-1 do

 begin

  Sheet.Cells[index,1]:=DataModule1.PrepodTable.Fields.Fields[1].AsString;

  Sheet.Cells[index,2]:=DataModule1.PrepodTable.Fields.Fields[2].AsString;

  Sheet.Cells[index,3]:=DataModule1.PrepodTable.Fields.Fields[3].AsString;

  Sheet.Cells[index,4]:=DataModule1.PrepodTable.Fields.Fields[5].AsString;

  Sheet.Cells[index,5]:=DataModule1.PrepodTable.Fields.Fields[4].AsString;

  Inc(index);

  DataModule1.PrepodTable.Next;

 end;

end;

procedure TPrepodForm.N6Click(Sender: TObject);

begin

MessageDlg('Школа'#10#13'© 2006 Игорь Филиппов'#10#13'Версия 1.001',

mtInformation,[mbok],0);

end;

procedure TPrepodForm.N2Click(Sender: TObject);

begin

Close;

end;

procedure TPrepodForm.N7Click(Sender: TObject);

var

s:integer;

i:integer;

begin

s:=0;

for i:=0 to DataModule1.PrepodTable.RecordCount-1 do

s:=s+1;

ShowMessage('Название таблицы: '+Datamodule1.PrepodTable.TableName+#13+'Количество записей: '+IntToStr(s));

end;

procedure TPrepodForm.N8Click(Sender: TObject);

begin

PersonalForm.Show;

PrepodForm.hide;

end;

procedure TPrepodForm.FormCreate(Sender: TObject);

begin

if login='admin' then N9.Visible:=true

 else n9.Visible:=false;

  if Dostup=false then begin

DBGrid1.Enabled:=false;

PrepodNavigator.VisibleButtons:=[nbFirst,nbNext,nbPrior,nbLast,nbRefresh];

DbGrid1.Font.Style:=[fsBold];

end;

end;

end.

unit ProgrammInfoUnit

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, jpeg, ExtCtrls;

type

 TProgrammInfoForm = class(TForm)

   Label1: TLabel;

   Label2: TLabel;

   Label3: TLabel;

   Image1: TImage;

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 ProgrammInfoForm: TProgrammInfoForm;

implementation

{$R *.dfm}

end.

unit StudentUnit

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, DB, ADODB, Grids, DBGrids, Menus, ToolWin, ComCtrls, StdCtrls,

 ExtCtrls, DBCtrls,ComObj;

type

 TStudentForm = class(TForm)

   DBGrid1: TDBGrid;

   MainMenu1: TMainMenu;

   FileItem: TMenuItem;

   ExitItem: TMenuItem;

   CategoryItem: TMenuItem;

   SortItem: TMenuItem;

   ByFamItem: TMenuItem;

   ByClassItem: TMenuItem;

   ToolBar1: TToolBar;

   Label1: TLabel;

   FilterFamEdit: TEdit;

   StudentNavigator: TDBNavigator;

   HelpItem: TMenuItem;

   ProgrammInfo: TMenuItem;

   CategoryPrepod: TMenuItem;

   ExelItem: TMenuItem;

   TableInfoItem: TMenuItem;

   N1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   ToolButton1: TToolButton;

   procedure ByFamItemClick(Sender: TObject);

   procedure ByClassItemClick(Sender: TObject);

   procedure ExitItemClick(Sender: TObject);

   procedure FilterFamEditChange(Sender: TObject);

   procedure ProgrammInfoClick(Sender: TObject);

   procedure CategoryPrepodClick(Sender: TObject);

   procedure HelpMeItemClick(Sender: TObject);

   procedure ExelItemClick(Sender: TObject);

   procedure TableInfoItemClick(Sender: TObject);

   procedure N1Click(Sender: TObject);

   procedure N2Click(Sender: TObject);

   procedure FormActivate(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 StudentForm: TStudentForm;

implementation

uses DataModuleUnit, PrepodUnit, UserUnit, Unit1, Unit2;

{$R *.dfm}

procedure TStudentForm.ByFamItemClick(Sender: TObject);

begin

DataModule1.StudentTable.Sort:='Фамилия';

end;

procedure TStudentForm.ByClassItemClick(Sender: TObject);

begin

DataModule1.StudentTable.Sort:='Класс';

end;

procedure TStudentForm.ExitItemClick(Sender: TObject);

begin

Close;

end;

procedure TStudentForm.FilterFamEditChange(Sender: TObject);

begin

If Length(FilterFamEdit.Text)>0 then

  DataModule1.StudentTable.Filtered:=True

else DataModule1.StudentTable.Filtered:=False;

DataModule1.StudentTable.Filter:='Фамилия>'''+FilterFamEdit.Text+'''';

end;

procedure TStudentForm.ProgrammInfoClick(Sender: TObject);

begin

MessageDlg('Программа "База Данных "Школа"'#10#13' Создана Колобовым Ильёй,'#10#13' Студентом колледжа информационных технологий'#10#13'(484 группа)"'#10#13' 2012',

mtInformation,[mbok],0);

end;

procedure TStudentForm.CategoryPrepodClick(Sender: TObject);

begin

StudentForm.Hide;

PrepodForm.Show;

end;

procedure TStudentForm.HelpMeItemClick(Sender: TObject);

begin

//winhelp(StudentForm.Handle,'ШКОЛАH.hlp',HELP_CONTEXT,0);

end;

procedure TStudentForm.ExelItemClick(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:Integer;

begin

XLApp:= CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add(-4167);

XLApp.Workbooks[1].WorkSheets[1].Name:='Школа-Ученики';

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Ученики'].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Ученики'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets['Школа-Ученики'];

Sheet.Cells[1,2]:='Школа';

Sheet.Cells[2,1]:='Фамилия';

Sheet.Cells[2,2]:='Имя';

Sheet.Cells[2,3]:='Класс';

Sheet.Cells[2,4]:='Адрес';

Sheet.Cells[2,5]:='Телефон';

index:=3;

DataModule1.StudentTable.First;

for i:=0 to DataModule1.StudentTable.RecordCount-1 do

begin

  Sheet.Cells[index,1]:=DataModule1.StudentTable.Fields.Fields[1].AsString;

  Sheet.Cells[index,2]:=DataModule1.StudentTable.Fields.Fields[2].AsString;

  Sheet.Cells[index,3]:=DataModule1.StudentTable.Fields.Fields[3].AsString;

  Sheet.Cells[index,4]:=DataModule1.StudentTable.Fields.Fields[5].AsString;

  Sheet.Cells[index,5]:=DataModule1.StudentTable.Fields.Fields[4].AsString;

  Inc(index);

  DataModule1.StudentTable.Next;

end;

end;

procedure TStudentForm.TableInfoItemClick(Sender: TObject);

var

s:integer;

i:integer;

begin

s:=0;

for i:=0 to DataModule1.StudentTable.RecordCount-1 do

s:=s+1;

ShowMessage('Название таблицы: '+Datamodule1.StudentTable.TableName+#13+'Количество записей: '+IntToStr(s));

end;

procedure TStudentForm.N1Click(Sender: TObject);

begin

PersonalForm.Show;

end;

procedure TStudentForm.N2Click(Sender: TObject);

begin

UsersForm.Show;

end;

procedure TStudentForm.FormActivate(Sender: TObject);

begin

If login='admin' then N2.Visible:=true

 else n2.Visible:=false;

end;

procedure TStudentForm.FormCreate(Sender: TObject);

begin

if Dostup=false then begin

DBGrid1.Enabled:=false;

StudentNavigator.VisibleButtons:=[nbFirst,nbNext,nbPrior,nbLast,nbRefresh];

DbGrid1.Font.Style:=[fsBold];

end;

end;

end.

unit Unit1

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, ExtCtrls, DBCtrls, StdCtrls, Menus, ToolWin, ComCtrls, Grids,

 DBGrids,ComObj;

type

 TPersonalForm = class(TForm)

   DBGrid1: TDBGrid;

   ToolBar1: TToolBar;

   MainMenu1: TMainMenu;

   N1: TMenuItem;

   Excel1: TMenuItem;

   N2: TMenuItem;

   N3: TMenuItem;

   N4: TMenuItem;

   N5: TMenuItem;

   N6: TMenuItem;

   N7: TMenuItem;

   N8: TMenuItem;

   N9: TMenuItem;

   N11: TMenuItem;

   Label1: TLabel;

   FilterFamEdit: TEdit;

   DBNavigator1: TDBNavigator;

   N12: TMenuItem;

   N13: TMenuItem;

   procedure FilterFamEditKeyPress(Sender: TObject; var Key: Char);

   procedure N8Click(Sender: TObject);

   procedure N3Click(Sender: TObject);

   procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure N6Click(Sender: TObject);

   procedure N5Click(Sender: TObject);

   procedure Excel1Click(Sender: TObject);

   procedure N2Click(Sender: TObject);

   procedure N11Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 PersonalForm: TPersonalForm;

implementation

uses DataModuleUnit, PrepodUnit, StudentUnit, Unit2, UserUnit;

{$R *.dfm}

procedure TPersonalForm.FilterFamEditKeyPress(Sender: TObject;

 var Key: Char);

begin

If Length(FilterFamEdit.Text)>0 then

  DataModule1.PersonalTable.Filtered:=True

else DataModule1.PersonalTable.Filtered:=False;

DataModule1.PersonalTable.Filter:='Фамилия>'''+FilterFamEdit.Text+'''';

end;

procedure TPersonalForm.N8Click(Sender: TObject);

begin

DataModule1.PersonalTable.Sort:='Фамилия';

end;

procedure TPersonalForm.N3Click(Sender: TObject);

begin

Close;

end;

procedure TPersonalForm.FormClose(Sender: TObject;

 var Action: TCloseAction);

begin

StudentForm.Close;

end;

procedure TPersonalForm.N6Click(Sender: TObject);

begin

StudentForm.Show;

PersonalForm.Hide;

end;

procedure TPersonalForm.N5Click(Sender: TObject);

begin

PrepodForm.Show;

PersonalForm.Hide;

end;

procedure TPersonalForm.Excel1Click(Sender: TObject);

var

XLApp,Sheet,Colum:Variant;

index,i:Integer;

begin

XLApp:= CreateOleObject('Excel.Application');

XLApp.Visible:=true;

XLApp.Workbooks.Add;

XLApp.Workbooks[1].WorkSheets[1].Name:='Школа-Технический персонал';

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Технический персонал'].Columns;

Colum.Columns[1].ColumnWidth:=20;

Colum.Columns[2].ColumnWidth:=20;

Colum.Columns[3].ColumnWidth:=20;

Colum.Columns[4].ColumnWidth:=20;

Colum.Columns[5].ColumnWidth:=20;

Colum:=XLApp.Workbooks[1].WorkSheets['Школа-Технический персонал'].Rows;

Colum.Rows[2].Font.Bold:=true;

Colum.Rows[1].Font.Bold:=true;

Colum.Rows[1].Font.Color:=clBlack;

Colum.Rows[1].Font.Size:=14;

Sheet:=XLApp.Workbooks[1].WorkSheets['Школа-Технический персонал'];

Sheet.Cells[1,2]:='Школа';

Sheet.Cells[2,1]:='Фамилия';

Sheet.Cells[2,2]:='Имя';

Sheet.Cells[2,3]:='Должность';

Sheet.Cells[2,4]:='Адрес';

Sheet.Cells[2,5]:='Телефон';

index:=3;

DataModule1.PersonalTable.First;

for i:=0 to DataModule1.PersonalTable.RecordCount-1 do

begin

  Sheet.Cells[index,1]:=DataModule1.PersonalTable.Fields.Fields[1].AsString;

  Sheet.Cells[index,2]:=DataModule1.PersonalTable.Fields.Fields[2].AsString;

  Sheet.Cells[index,3]:=DataModule1.PersonalTable.Fields.Fields[3].AsString;

  Sheet.Cells[index,4]:=DataModule1.PersonalTable.Fields.Fields[4].AsString;

  Sheet.Cells[index,5]:=DataModule1.PersonalTable.Fields.Fields[5].AsString;

  Inc(index);

  DataModule1.PersonalTable.Next;

end;

end;

procedure TPersonalForm.N2Click(Sender: TObject);

var

s:integer;

i:integer;

begin

s:=0;

for i:=0 to DataModule1.PersonalTable.RecordCount-1 do

s:=s+1;

ShowMessage('Название таблицы: '+Datamodule1.PersonalTable.TableName+#13+'Количество записей: '+IntToStr(s));

end;

procedure TPersonalForm.N11Click(Sender: TObject);

begin

MessageDlg('Школа'#10#13'© 2006 Игорь Филиппов'#10#13'Версия 1.001',

mtInformation,[mbok],0);

end;

procedure TPersonalForm.FormCreate(Sender: TObject);

begin

if login='admin' then n12.Visible:=true

 else N12.Visible:=false;

    if Dostup=false then begin

DBGrid1.Enabled:=false;

DbNavigator1.VisibleButtons:=[nbFirst,nbNext,nbPrior,nbLast,nbRefresh];

DbGrid1.Font.Style:=[fsBold];

end;

end;

end

unit Unit2;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls, ToolWin, ComCtrls;

type

 TUsersForm = class(TForm)

   DBGrid1: TDBGrid;

   ToolBar1: TToolBar;

   Label1: TLabel;

   LoginEdit: TEdit;

   DBNavigator1: TDBNavigator;

   ToolButton1: TToolButton;

   procedure LoginEditKeyPress(Sender: TObject; var Key: Char);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 UsersForm: TUsersForm;

implementation

uses UserUnit, DataModuleUnit;

{$R *.dfm}

procedure TUsersForm.LoginEditKeyPress(Sender: TObject; var Key: Char);

begin

If Length(LoginEdit.Text)>0 then

  DataModule1.UsersTable.Filtered:=True

else DataModule1.UsersTable.Filtered:=False;

DataModule1.UsersTable.Filter:='Логин>'''+LoginEdit.Text+'''';

end;

end.

unit UserUnit;

interface

uses

 Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

 Dialogs, StdCtrls, Mask, DBCtrls, Grids, DBGrids, DB, ADODB;

type

 TUserForm = class(TForm)

   Button1: TButton;

   Label1: TLabel;

   Label2: TLabel;

   Button2: TButton;

   LoginEdit: TEdit;

   PasswordEdit: TEdit;

   UserQuery: TADOQuery;

   ADOConnection1: TADOConnection;

   Button3: TButton;

   procedure Button2Click(Sender: TObject);

   procedure Button1Click(Sender: TObject);

   procedure Button3Click(Sender: TObject);

   procedure FormCreate(Sender: TObject);

 private

   { Private declarations }

 public

   { Public declarations }

 end;

var

 UserForm: TUserForm;

 Login:string;

 Dostup:boolean;

 

implementation

uses DataModuleUnit, StudentUnit;

{$R *.dfm}

procedure TUserForm.Button2Click(Sender: TObject);

begin

Application.Terminate;

end;

procedure TUserForm.Button1Click(Sender: TObject);

begin

If (LoginEdit.Text<>'') and (PasswordEdit.Text<>'') then //поля не пустые

 begin

UserQuery.Active:=false;

UserQuery.Parameters.ParamByName('log').Value:=LoginEdit.Text;

UserQuery.Active:=true;

  If UserQuery.RecordCount<>0 then

    begin

     If UserQuery.FieldByName('Пароль').AsString=PasswordEdit.Text then begin

        login:=LowerCase(LoginEdit.Text);

        If UserQuery.FieldByName('Доступ').AsString='True' then  Dostup:=true//есть доступ

           else Dostup:=false;

            Close;

      end

         else Showmessage('Пароль неверный!');

    end;

end

   else ShowMessage('Введите имя пользователя и пароль!');//пустые поля

end;

procedure TUserForm.Button3Click(Sender: TObject);

begin

Messagedlg('Введите Ваши имя пользователя и пароль!',mtinformation,[mbOk],0);

end;

procedure TUserForm.FormCreate(Sender: TObject);

begin

Brush.Bitmap := TBitMap.Create;

 Brush.Bitmap.LoadFromFile('1.bmp');

 

end;

end.
ПРИЛОЖЕНИЕ 2.

Результат работы программы

Программа “База Данных “Школа”” позволяет вам просматривать и редактировать информацию об учениках, преподавателях и пр.

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

Для навигации по разделам Базы Данных используйте меню Категория.

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

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

меткой Фамилия.

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

  •  переход к первой записи;
  •  переход к последней записи;
  •  переход к предыдущей записи;
  •  переход к следующей записи;
  •  редактировать запись;
  •  принять изменения;
  •  отменить изменения;
  •  обновить;
  •  добавить запись;
  •  удалить запись.

PAGE  33


Проект

Интерфейсная часть

Программная часть

UserUnit

DataModule

PersonalUnit

PrepodUnit

StudentUnit

Начало

StudentForm. FilterFamEditChange

Length>0

Входными данными являются обьекты базы данных

DataModule1.StudentTable.filtered:=true

ataModule1.StudentTable.filtered:=false

Выходными данными является искомая информация

Конец




1. ВВЕДЕНИЕ Любое предприятие находится и функционирует в среде.html
2. Понятие рабочего времени
3. Романтическое мироотношение в творчестве Вашингтона Ирвинга
4. на тему- Сказочные перчатки Краснодарский край г
5. 2. Диагностика предприятия с помощью баланса и отчета о прибыли 1.html
6. тема РФ КСэто совокупность элементов которая призвана реализовать свойства характерные доя кредита а име
7. Тема- Трудове право Лекція- Трудове право План Сучасне трудове право України
8. Временное хранение товаров
9. - Физические и юридические лица - Участники ОО наделенные субъективными трудовыми правами и обязанностями
10. тема. Сетевая операционная система NOS Network Operting System это программное обеспечение применяемое на каждом по
11. Тема- ФІНАНСУВАННЯ ОСВІТИ Мета- навчитися розраховувати загальну кількість дітоднів; витрати дитячого са
12. Дорога жизни
13. а по распространенности элементом- на его долю приходится 167 от общего числа атомов земной коры
14. ориентационного единства ЦОЕ изучаемого коллектива
15. . Еволюція неокласичних ідей у ХХ ст
16. Пожаробезопасные кабельные системы
17. Руководство пользователя 09928
18. Mkers willing to grpple with the issues
19. Выбор таможенного представителя
20.  Приватне підприємство ldquo;Перестаrdquo;