4751

Разработка автоматизированной информационной системы МРЭО ГАИ

Дипломная

Информатика, кибернетика и программирование

При проектировании программного продукта, было принято решение разработать и автоматизировать работу сотрудников ГИБДД путем внедрения автоматизированной информационной системы. Разработанная автоматизированная информационная система эффективна и пр...

Русский

2012-11-25

3.01 MB

172 чел.

При проектировании программного продукта, было принято решение разработать и автоматизировать работу сотрудников ГИБДД путем внедрения автоматизированной информационной системы.

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


Оглавление

ВВЕДЕНИЕ

1 АНАЛИТИЧЕСКАЯ ЧАСТЬ

1.1 Предметная область исследования

1.2 Основание для разработки

1.3 Назначение разработки

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

1.5 Требования к составу и параметрам технических средств

2 ПРОЕКТНАЯ ЧАСТЬ

2.1 Инструментальная среда разработки

2.2 Описание логической структуры

2.3 Разработка интерактивного интерфейса приложения

2.4 Описание используемых процедур и функций (листинг кода)

2.5 Руководство пользователя

2.5.1 Описание интерфейса программы

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

3.1 Расчет объемов автоматизированных информационных услуг и основной заработной платы

3.2 Расчет себестоимости автоматизированных информационных услуг

3.3 Расчет показателей по труду и заработной плате

3.4 Расчет показателей прибыли, рентабельности и себестоимости

3.5 Расчет уровня налогов от фонда заработной платы

3.6 Сводный план показателей

4 ОХРАНА ТРУДА

4.1 Требования безопасности перед началом работы на ПК

4.2 Требования безопасности во время работы с ПК

4.3 Требования безопасности после окончания работы с ПК

ЗАКЛЮЧЕНИЕ

ПЕРЕЧЕНЬ ПРИНЯТЫХ СОКРАЩЕНИЙ

БИБЛИОГРАФИЧЕСКИЙ СПИСОК

ПРИЛОЖЕНИЕ А (листинг кода) 

Компакт диск CD-R с АИС «МРЭО ГАИ»


ВВЕДЕНИЕ

Темой дипломного проекта является автоматизированная информационная система (АИС) «МРЭО ГАИ». Целью данной работы является создание удобной и простой в использовании системы для автоматизации работы сотрудников ГИБДД (ГАИ).

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

В экономической части дипломного проекта приведен расчет стоимости создания АИС «МРЭО ГАИ».

В разделе «Охрана труда» предусмотрены  требования, которые предъявляются к месту оператора ЭВМ.


1 Аналитическая часть

1.1 Предметная область исследования

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

В данном дипломном проекте необходимо разработать АИС «МРЭО ГАИ». Она должна обеспечивать просмотр, обработку, ввод новых данных, поиск данных по определённому критерию.

1.2 Основание для разработки

Автоматизированная информационная система «МРЭО ГАИ» разрабатывается на основании задания на дипломное проектирование, утвержденного председателем Цикловой Методической Комиссии Невинной Еленой Абдрафиковной. 

1.3 Назначение разработки

ГИБДД занимается выделением учетом номерных знаков на автотранспорт. К автотранспортным средствам относятся: легковые, грузовые автомобили, прицепы, полуприцепы, мотоциклы, тракторы, автобусы, микроавтобусы.

На разные виды транспорта выдаются разные виды номеров и в базу данных заносятся разные характеристики.

Номера могут выделяться как частным владельцам, так и организациям. В БД ТС, выданных организации, дополнительно фиксируется: номер, ФИО владельца, его адрес, марка автомобиля, дата выпуска, объем двигателя, номера двигателя, шасси и кузова, цвет и т.п..

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

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

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

– разрабатываемая программа должна выполнять поиск по всем зарегистрированным записям, в каждой таблице БД отдельно;

– производить регистрацию новых ТС,

– осуществлять перерегистрацию ТС уже внесённых в БД;

– редактировать устаревшую информацию;

– изменять состояние ТС;

– обеспечивать целостность хранимой информации;

– выводить информацию на печать;

– осуществлять защиту логином и паролем;

– обеспечивать блокировку некорректных действий пользователя;

– создание нескольких учетных записей с разными правами доступа;

– программа должна обладать основными функциями по работе с автотранспортом, сотрудниками ГИБДД, автошколами, штрафными санкциями, водительскими удостоверениями, запланированными мероприятиями;

– программа должна иметь простой интуитивно понятный интерфейс.

1.5 Требования к составу и параметрам технических средств

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

На персональном компьютере (ПК) должна быть установлена операционная система фирмы (ОС) Microsoft Windows. Программа рассчитана на разрешение экрана не менее 1280x800 точек, при глубине цвета бита 32.

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

Для корректной работы АИС «МРЭО ГАИ» имеются следующие системные требования:

– Компьютер типа IBM с процессором Intel Pentium III и выше;

– Операционная система не ниже Windows ХР;

– 3D видео-акселератор  с  поддержкой  разрешения  монитора  не  менее 1280x800 пикселей, и графической памятью не менее 32 Мб;

– Оперативная память не менее 256 мб;

– Наличие 25 Мбайт свободного пространства на жестком диске.


2 Проектная часть

2.1 Инструментальная среда разработки

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

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

Данный ПП был разработан в программной среде Delphi 7 от фирмы-производителя Borland – ведущего производителя инструментального программного обеспечения в мире. В Delphi 7 можно реализовать независимое приложение, способное работать на любой платформе семейства Microsoft Windows.

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

Система разработки Borland Delphi присутствует на рынке программного обеспечения более 10 лет. За это время фирмой Borland были реализованы многие функции, которые используют программисты при разработке программного обеспечения. Borland Delphi 7 отличается высокой скоростью работы, надежностью самой системы и созданных программ, возможностью разработки новых компонентов (программных объектов, включающих в себя определенную функциональность), возможностью разрабатывать разные классы приложения, компоненты ActiveX, приложения для работы с базами данных (локальные и серверные), WEB приложения, сервисы Windows NT, консольные приложения Windows и приложения Windows с графическим интерфейсом.

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

2.2 Описание логической структуры

На схеме 1 приведена блок-схема выполнения алгоритма ПП.

Схема 1 – Блок-схема алгоритма ПП.


2.3 Разработка интерактивного интерфейса приложения

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

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

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

– средства отображения информации, отображаемая информация, форматы и коды;

– командные режимы, язык пользователь-интерфейс;

– устройства и технологии ввода данных;

– диалоги, взаимодействие и транзакции между пользователем и компьютером;

– обратная связь с пользователем;

– поддержка принятия решений в конкретной предметной области;

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

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

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

– пользователь должен без труда находить требуемую информацию в БД, не затрачивая особых усилий;

– при просмотре или поиске данных в БД, у пользователя должна быть возможность сортировать запрашиваемую информацию по заданным критериям;

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

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

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

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

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

2. Цветовое оформление – используя цвет в передаче информации на дисплее, следует учитывать:

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

– При длительном цветовом воздействии на глаз снижается его чувствительность к данному цвету. Наибольшее падение чувствительности наблюдается для сине-фиолетового цвета, наименьшее – для зеленого и желтого, т.е. синий цвет наиболее утомляет глаз;

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

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

2.4 Описание используемых процедур и функций (листинг кода)

Unit 1        //Форма авторизации

procedure TForm1.sButton1Click(Sender: TObject); //Кнопка "Вход в систему управления"

var login,password,strl,strp,otkl,otkp:string; //Ввод постоянных переменных

begin

login:='Администратор';                       //Присвоение переменным значений

password:='1991admIN';

strl:='Сотрудник';

strp:='1991STridIK';

otkl:='Отдел кадров';

otkp:='1991OTDelKad';

If (ComboBox1.Text=login) and (sEdit1.Text=password) //Условия проверки подлинности пароля

Then

begin

Form1.Hide;                                            //Скрытие формы входа

Form2.Show;                                            //Показ формы навигации

Form2.sButton1.Enabled:=true;                      //Изменение состояния кнопки

Form2.sButton2.Enabled:=true;

Form2.sButton3.Enabled:=true;

Form2.sButton4.Enabled:=true;

Form2.sButton5.Enabled:=true;

Form2.sButton9.Enabled:=true;

end

Else

If (ComboBox1.Text=strl) and (sEdit1.Text=strp)

Then

begin

Form2.Show;

Form2.sButton1.Enabled:=true;

Form2.sButton2.Enabled:=true;

Form2.sButton3.Enabled:=true;

Form2.sButton4.Enabled:=true;

Form2.sButton5.Enabled:=false;

Form2.sButton9.Enabled:=true;

end

Else

If (ComboBox1.Text=otkl) and (sEdit1.Text=otkp)

Then

begin

Form2.Show;

Form2.sButton1.Enabled:=false;

Form2.sButton2.Enabled:=false;

Form2.sButton3.Enabled:=false;

Form2.sButton4.Enabled:=false;

Form2.sButton5.Enabled:=true;

Form2.sButton9.Enabled:=true;

end

Else

begin

MessageBox(Handle,PChar('Неверное имя пользователя или пароль. Пожалуйста повторите ввод!'),PChar('Ошибка авторизации'),MB_ICONINFORMATION+ MB_OK+MB_DEFBUTTON2);     //Окно с сообщением об ошибке

end

end;

procedure TForm1.sButton2Click(Sender: TObject); //Кнопка "Выход"

begin

Form0.Showmodal;

end;

procedure TForm1.FormShow(Sender: TObject); //Операции выполняемые при показе формы

begin

sEdit1.Text:='';                                //Очистка поля ввода пароля

end;

end.

Unit 2 //Форма навигации

procedure TForm2.sButton6Click(Sender: TObject);  //Кнопка "Смена пользователя"

begin

Form2.Hide;

Form1.Show;

Form1.sEdit1.Text:='';

end;

procedure TForm2.sButton7Click(Sender: TObject); //Кнопка "Выход"

begin

Form0.ShowModal;

end;

procedure TForm2.N2Click(Sender: TObject); //Строка меню "О программе"

begin

XFormF.ShowModal;

end;

procedure TForm2.AltF41Click(Sender: TObject); //Закрытие формы при помощи комбинации клавиш "Alt+F4"

begin

Form0.ShowModal;

end;

procedure TForm2.sButton1Click(Sender: TObject); //Кнопка "Траспортные средства"

begin

Form2.Hide;

Form5.ShowModal;

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction); //Условие закрытия формы

begin

Form0.Show;

end;

procedure TForm2.sButton2Click(Sender: TObject);  //Кнопка "Водительские удостоверения"

begin

Form2.Hide;

Form13.ShowModal;

end;

procedure TForm2.FormCreate(Sender: TObject); //Загрузка логотипа на панели навигации

begin

Image1.Picture.LoadFromFile('Image\logo.jpg'); //Путь кзагружаемому файлу

end;

procedure TForm2.sButton3Click(Sender: TObject);  //Кнопка "Штрафы"

begin

Form2.Hide;

Form24.ShowModal;

end;

procedure TForm2.sButton4Click(Sender: TObject);  //Кнопка "Автошколы"

begin

Form2.Hide;

Form26.Show;

end;

procedure TForm2.sButton9Click(Sender: TObject);  //Кнопка "Запланированные мероприятия"

begin

Form2.Hide;

Form32.ShowModal;

end;

procedure TForm2.sButton5Click(Sender: TObject);   //Кнопка "Сотрудники МРЭО "ГАИ""

begin

Form2.Hide;

Form37.ShowModal;

end;

procedure TForm2.sButton8Click(Sender: TObject);   //Кнопка "Справка"

begin

ShellExecute(Handle, 'open', 'Help.PDF', nil, nil, SW_SHOWNORMAL)  //Открыетие файла справки

end;

procedure TForm2.N1Click(Sender: TObject);    //Строка меню "Настройки"

begin

Form45.ShowModal;

end;

end.

Продолжение приведено в Приложение А.


2.5
Руководство пользователя

2.5.1 Описание интерфейса программы 

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

Появляется форма входа, где запрашивается логин и пароль (Рисунок 1).

Рисунок 1 – Форма входа

Всего существует три учетные записи «Администратор», «Сотрудник» и «Отдел кадров» (Рисунок 2).

Рисунок 2 – Выбор пользователя

При выборе учетной записи необходимо ввести пароль и нажать кнопку авторизации «Вход в систему управления». При вводе неверного пароля появляется сообщение о неверном вводе (Рисунок 3).

Рисунок 3 – Ошибка авторизации

При нажатии на кнопку «Выход», появляется диалоговое окно выхода (Рисунок 4), в случае положительного ответа, работа с программой будет завершена, а в случае отрицательного – программа обнулит введённые пароли и вернётся к форме входа (Рисунок 1).

Рисунок 4 – Диалоговое окно завершения работы программы

При выборе учетной записи «Администратор»  и правильном вводе пароля, открывается панель управления (навигации) (Рисунок 5).

Рисунок 5 – Панель управления

В случае выбора другой учетной записи, становятся не доступными некоторые БД, для каждой учётной записи они свои. Для учётной записи «Сотрудник», будет недоступна лишь БД работы с сотрудниками (Рисунок 6).

Для учётной записи «Отдел кадров» останутся доступны лишь БД мероприятий и сотрудников (Рисунок 7).

Рисунок 6 – Панель управления для учётной записи «Сотрудник».

Рисунок 7 – Панель управления для учётной записи «Отдел кадров».

При нажатии на кнопку «Сменить пользователя», появляется форма входа, где можно поменять учётную запись или завершить работу с программой (Рисунок 1).

При нажатии на кнопку «Справка» открывается руководство пользователя в формате «.pdf».

При нажатии на кнопку «ВЫХОД», появится диалоговое окно завершения работы программы (Рисунок 3).

При нажатии на кнопку «О программе», появляется окно с правами автора ПП (Рисунок 8).

Рисунок 8 Окно «О программе»

Кнопка «Настройки» открывает окно с выбором настроек, касающихся оформления программы (Рисунок 9).

Рисунок 9 – Окно настройки оформления программы.

Здесь можно выбрать тему оформления (стиль) (Рисунок 10).

Рисунок 10 – Окно настройки оформления программы.

После выбора темы, нажмите на кнопку «Сменить». Программа изменит свой внешний вид (Рисунок 11) .

Можно отказаться от оформления вообще и установить стандартную тему путём установке галочки на пункте «Не использовать оформление» (Рисунок 12)

Рисунок 11 – Результат смены темы оформления.

Рисунок 12 – Использование стандартной темы оформления.

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

При  нажатии на кнопку «Транспортные средства» открывается окно, где имеется доступ и управление информацией о зарегистрированных ТС, а также кнопки навигации выполнения различных операций с ТС (Рисунок 13).

Рисунок 13 – «Транспортные средства». Окна управления БД ТС.

На форме расположены кнопки, предназначенные для изменения данных и добавления новых. При нажатии на кнопку «Регистрация нового ТС», откроется окно регистрации нового транспортного средства (Рисунок 14).

Рисунок 14 – Регистрация нового транспортного средства.

При заполнении всех необходимых (в зависимости от типа ТС) полей, требуется произвести регистрацию ТС путём нажатия кнопки «Зарегистрировать транспортное средство». Если основные поля не были заполнены, то программа выдаст сообщение о неверном вводе (Рисунок 15).

Рисунок 15 – Сообщение о неверном вводе.

В случае правильного заполнения и успешной регистрации, на печать выводится свидетельство о регистрации, также появляется окно, с сообщением о возможности загрузки изображения для только что зарегистрированного ТС (Рисунок 16).

Рисунок 16 – Сообщение о возможности загрузки изображения.

Кнопка загрузки изображения становится активной (Рисунок 17). Для загрузки изображения необходимо нажать на кнопку «Загрузить/Изменить фото», тем самым вызвав диалог открытия изображения (Рисунок 18).

 

Рисунок 17 – Кнопка «Загрузить/Изменить фото» активна.

При выполнении всех требуемых операций, необходимо нажать кнопку «Закрыть», форма регистрации будет закрыта и основная форма работы с ТС вновь станет активной (Рисунок 13).

Рисунок 18 – Диалог загрузки изображения в БД.

Для исправления характеристик (в случае опечатки), необходимо воспользоваться кнопкой «Исправить/Изменить», при нажатии на которую откроется окно внесения изменений (Рисунок 19).

Рисунок 19 – Изменение данных у зарегистрированного ТС.

После внесения каких-либо изменений, необходимо нажать на кнопку «Сохранить», в случае если внесённые изменения сохранять не нужно, следует нажать на кнопку «Отмена».

ВНИМАНИЕ! Работа с изображением производится в режиме «сейчас», то есть, при изменении или удалении изображения ТС, кнопка «Отмена» не сможет повлиять на процесс изменения/удаления фото, так же как и кнопка «Сохранить».

После проведения требуемых операций, возвращаемся на основную форму по работе с ТС (Рисунок 13).

Если требуется удалить запись из БД, необходимо щёлкнуть на кнопку «Удалить», после чего, в появившемся диалоговом окне, необходимо подтверждение проведения операции (Рисунок 20).

Рисунок 20 – Окно подтверждения удаления записи из БД.

В случае положительного ответа («Да»), запись будет удалена из БД и диалоговое будет закрыто. Если же ответ был отрицательным («Нет»), то окно просто закроется.

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

Рисунок 21 – Подробная информация о выбранном ТС

При необходимости, полученную информацию можно вывести на печать путём нажатия на кнопку «Печать». Завершаем работу с формой.

Для того чтобы снять ТС с учёта, необходимо нажать на кнопку «Снять ТС с учёта» (Рисунок 13), после чего, в появившемся окне (Рисунок 22), подтвердить проведение операции нажатием на кнопку «Снять с учёта».

Рисунок 22 – Снятие ТС с учёта.

В случае успешного проведения операции, появится сообщение, об удачном снятии ТС с учёта (Рисунок 23).

Рисунок 23 – Сообщение о снятии ТС с учёта.

В зависимости от состояния ТС, возможности работы, с зарегистрированными ТС различны. После снятия ТС с учёта, появляется возможности вновь поставить ТС на учёт, а также списать его. при помощи кнопок «Постановка ТС на учёт» и «Списать ТС», объявить в розыск («Объявить ТС в розыск») (Рисунок 24).

Рисунок 24 – Возможности после снятия ТС с учёта.

Нажав на кнопку списания ТС, открывается форма списания ТС (Рисунок 25)

Рисунок 25 – Форма списания ТС.

При нажатии на кнопку «Отмена» завершается работа с формой, нажав на кнопку «Списать» открывается окно подтверждения выполнения данной операции, предупреждающее о последствиях списания ТС (Рисунок 26).

Рисунок 26 – Подтверждение списания выбранного ТС.

После выполнения операции, повторное списание произвести невозможно, пока состояние автомобиля не будет изменено. В случае попытки повторного списания, программа сообщит об ошибке (Рисунок 27).

Рисунок 27 – Сообщение об ошибке при повторном списании.

В случае если ТС списано, то его можно поставить на учёт и объявить в розыск. Для объявления ТС в розыск, необходимо нажать на соответствующую кнопку «Объявить ТС в розыск». Если ТС объявлено в розыск запись в таблице и текущее состояние ТС будут выделены красным цветом. (Рисунок 28)

Рисунок 28 – Изменения навигации в случае розыска ТС.

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

После обнаружения разыскиваемого ТС и возращения его владельцу, необходимо нажать на кнопку «Данное ТС используется», тем самым транспортному средству будет восстановлено его прежнее состояние.

Чтобы вывести на печать всю информацию о выбранном ТС, необходимо нажать на кнопку «Печать» (Рисунок 28).

Для постановки ТС на учёт, необходимо нажать кнопку «Поставить ТС на учёт», после чего, в открывшемся окне (Рисунок 29), заполнить все требуемые поля и зарегистрировать ТС путём нажатия на кнопку «Зарегистрировать».

В результате новое свидетельство о регистрации ТС выведется на печать и запись будет добавлена в БД. В случае неполного заполнения полей, откроется окно с сообщением об ошибке (Рисунок 15).

 

Рисунок 29 – Окно постановки ТС на учёт.

На всех формах, где отображается изображение зарегистрированной записи, есть возможность увеличения изображения, путём клика мышью по изображению. В открывшейся форме отобразится увеличенное изображение (Рисунок 30).

Рисунок 30 Отображение увеличенного изображения.

В случае если изображение отсутствует, то при его увеличении, откроется окно с сообщением о том, что изображение отсутствует «Нет фото» (Рисунок 31). Внимание! Пропорции фотографий могут быть нарушены.

Рисунок 31 Отсутствие изображения, при увеличении.

В случае утери/порчи свидетельства о регистрации ТС, есть возможность выдачи его дубликата. Для этого необходимо нажать на кнопку «Выдать дубликат свидетельства о регистрации ТС» и, в открывшемся окне, ввести новые данные. После нажатия на кнопку «Выдать», изменения сохранятся в БД, а новое свидетельство о регистрации ТС будет выведено на печать.

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

Рисунок 32 – Поиск. Идентично на всех формах.

На этом работа с ТС заканчивается. Переходим к работе с водительским удостоверениям.

Для этого нажимаем кнопку «Водительские удостоверения» на форме навигации (Рисунок 5), после чего открывается главная формы по работе с ВУ (Рисунок 33).

Рисунок 33 – Главная форма по работе ВУ.

Для выдачи нового ВУ и регистрации водителя в БД, необходимо нажать на кнопку «Выдать новое водительское удостоверение (Рисунок 34).

Рисунок 34 – Регистрация нового водителя и выдача ВУ.

Процесс регистрации очень схож с регистрацией ТС (Рисунок 14), в случае неверного ввода появляется окно с сообщением об ошибки ввода (Рисунок 15).

После успешной регистрации, программа сообщит об успешной регистрации водителя в БД (Рисунок 35)

Рисунок 35 – Сообщение об успешной регистрации водителя в БД.

Также появляется возможность загрузки фото, нажав на кнопку «Загрузить фото» открывается диалоговое окно выбора фотографии (Рисунок 18), после загрузки которой, на печать выводится ВУ.

Для изменения данных о зарегистрированном водителе, необходимо нажать на кнопку «Изменить», расположенную на форме (Рисунок 33).

При нажатии на кнопку «Лишить водительского удостоверения», откроется форма лишения ВУ (Рисунок 36), где необходимо ввести причину лишения и нажать на кнопку «Лишить права управления транспортным средством».

Рисунок 36 – Лишение права управления ТС.

В случае, если причина лишения не была введена, лишить ВУ будет невозможно, об этом сообщит окно с текстом ошибки (Рисунок 37).

Рисунок 37 – Ошибка при лишении ВУ.

Если причина была введена, то после нажатия на кнопку лишения ВУ, программа сообщит об успешном лишении ВУ (Рисунок 38).

Рисунок 38 – Сообщение о выполнении операции лишения.

Для удаления записи нужно нажать «Удалить» и появится окно подтверждения удаления записи из базы данных (Рисунок 20).

При нажатии кнопки «Продлить/Поменять водительское удостоверение» откроется форма замены (продления) ВУ (Рисунок 39).

Рисунок 39 – Замена ВУ.

В случае, если ВУ было изъято, то для возврата его законному владельцу необходимо отметить галочкой «Возврат ВУ», после чего поля «серия», «номер» будут заполнены  и станут неактивными (Рисунок 40), далее необходимо нажать на кнопку «Заменить | Продлить» и вернуть водительское удостоверение.

Рисунок 40 – Продление ВУ.

Для замены необходимо снять галочку «Возврат ВУ», заполнить поля и нажать на кнопку «Заменить | Продлить». После завершения операции, новое ВУ будет выведено на печать.

При нажатии на кнопку «Выдать дубликат», появляется форма, схожая с описанной выше (Рисунок 39). Навигация и управление здесь понятны. После заполнения всех необходимых полей нажимаем на кнопку «Выдать». На этом работа с формой «Водительские удостоверения» окончена.

Переходим на форму работы с БД штрафов. Для этого необходимо нажать на кнопку «Штрафы» на панели навигации (Рисунок 5), после чего будет открыта форма работы с штрафными санкциями (Рисунок 41).

Рисунок 41 – Форма управления штрафными санкциями.

Для того чтобы добавить штраф в БД необходимо провести его регистрацию. Для этого необходимо нажать на кнопку «Зарегистрировать штраф», после чего откроется форма (Рисунок 42) ввода данных о штрафной санкции.

Рисунок 42 – Регистрация штрафной санкции.

После заполнения всех необходимых полей необходимо нажать кнопку «Зарегистрировать штраф», тем самым добавив его БД. В случае корректного ввода, программа запишет данные и перейдёт к основной форме (Рисунок 41), в противном случае появится окно, сообщающие об ошибке ввода данных (Рисунок 15).

Если штрафная санкция была оплачена, необходимо сменить её статус. Для этого необходимо нажать на кнопку «Погасить (Оплатить)», в результате статус будет изменён на «Погашен» и откроется сообщение о том, что штраф был оплачен (Рисунок 43).

Рисунок 43 – Сообщение о смене статуса ШС.

Для того чтобы изменить введённые данные о зарегистрированном штрафе, необходимо нажать кнопку «Изменить». В открывшемся окне, после внесения требуемых изменений необходимо нажать на «Сохранить», если требуется сохранить внесённые изменения, в случае, если изменения не должны быть внесены необходимо нажать на кнопку «Отмена».

На этом работа с формой «Штрафы» окончена.

Дальнейшие описание функций и операций будет происходить в сокращённом виде, так как основной алгоритм работы программы был изложен выше. Действия кнопок «Подробно», «Печать», «Удалить», «Изменить» описываться далее не будут.

Переходим на форму работы с БД автошкол. Для этого необходимо нажать на кнопку «Автошколы» на панели навигации (Рисунок 5), после чего будет открыта форма работы с базой данных автошкол (Рисунок 44).

Рисунок 44 – Форма работы с автошколами

Для регистрации новой автошколы и выдачи ей необходимо нажать на кнопку «Зарегистрировать автошколу и выдать лицензию», откроется форма регистрации автошколы. После заполнения всех необходимых полей, необходимо нажать на кнопку «Зарегистрировать автошколу и выдать лицензию», в случае неверного ввода появляется окно с сообщением об ошибке ввода (Рисунок 15). В другом случае автошкола будет добавлена в БД, лицензия будет на выведена печать.

При нажатии на кнопку «Продлить | Заменить лицензию» открывается форма замены/продления лицензии автошколы.

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

При нажатии на кнопку «Лишить лицензии» появляется окно с предупреждением о производимости данного действия. В случае, если необходимо лишить автошколу лицензии, требуется подтвердить операцию путём нажатия на кнопку «Да, лишить», в противном случае нажать «Нет, отмена» или просто закрыть окно. На этом работа с формой «Автошколы» окончена.

Переходим на форму работы с БД сотрудников. Для этого необходимо нажать на кнопку «Сотрудники МРЭО «ГАИ»» на панели навигации (Рисунок 5), после чего будет открыта форма работы с базой данных сотрудников (Рисунок 45).

Рисунок 45 – Форма работы с сотрудниками

Для принятия нового сотрудника (регистрации его в БД) необходимо нажать на кнопку «Принять сотрудника», после чего откроется форма регистрации сотрудников. Процесс регистрации очень схож с регистрацией ТС (Рисунок 14), в случае неверного ввода появляется окно с сообщением об ошибки ввода (Рисунок 15).

После успешной регистрации сотрудника появляется возможность загрузки фото. Нажав на кнопку «Загрузить фото» открывается диалоговое окно выбора фотографии (Рисунок 18), после загрузки которой, программа сообщает об успешной регистрации и выводит на печать бланк удостоверения.

При нажатии кнопки «Сократить сотрудника», происходит его немедленное увольнение. После чего программа сообщает: «Сотрудник был сокращён. Не забудьте вернуть ему документы, забрать удостоверение и инвентарь».

При нажатии кнопки «Повысить | Понизить сотрудника», открывается окно изменения должности, где необходимо ввести название новой должности и нажать кнопку «Изменить должность».

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

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

Если статус сотрудника «на больничном» или «в отпуске», операции увольнения, изменения должности и т.д. произвести будет невозможно.

Если статус сотрудника необходимо изменить, то для этого требуется нажать на кнопку «Вернуть из отпуска, с больничного», после чего все операции с записями в БД можно будет производить вновь,  сотруднику будет присвоен статус «Работает».

На этом работа с формой «Сотрудники МРЭО «ГАИ»» окончена.

Переходим на форму работы с БД мероприятий. Для этого необходимо нажать на кнопку «Запланированные мероприятия» на панели навигации (Рисунок 5), после чего будет открыта форма работы с базой данных проводимый мероприятий (Рисунок 46).

Для добавления нового мероприятия необходимо нажать на кнопку «Добавить мероприятие», после чего откроется форма регистрации нового мероприятия.

Рисунок 46 – Форма для управления запланированными мероприятиями

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

Кнопки «Мероприятие проводится» и «Мероприятие проведено» служат для изменения текущего состояния. Нажимая на одну из предложенных, статус будет изменён на тот, за который отвечают кнопки. Статусы кнопок видно из их названия.


3 Экономическая часть

3.1 Расчет объемов автоматизированных информационных услуг                        и основной заработной платы

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

Таблица 1 – Проект информационных технологий создания системы  разработка автоматизированной информационной системы (АИС) «МРЭО ГАИ», за апрель 2012 года

Наименование системы ИТ.

Единица измерения

Машинное время в часах

Работа в Access

Час

110

Работа в Word

Час

20

Internet

Час

23

Изучение совершенствования ПО

Час

14

ИТОГО:

167

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

  1.  Календарного периода месяца с учетом выходных и праздничных дней;
  2.  Продолжительности рабочего дня;
  3.  Выбора проекта информационных технологий.

Рассмотрим затраты рабочего времени программиста, исходя из 8 часового рабочего дня.

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

Таблица 2 – Расчет машинного времени по ПК Intel® Corei7 Game Edition

Наименование услуг

Рабочие дни апреля 2012 г

Всего часов

2

3

4

5

6

9

10

11

12

13

16

17

18

19

20

23

24

25

26

27

30

Работа в Access

6

5

7

4

8

4

7

4

6

5

4

5

4

6

8

6

4

5

3

7

3

110

Работа в word

1

1

2

1

2

2

2

1

2

1

2

3

20

Работа в Internet

1

1

2

1

2

2

2

1

2

2

1

2

2

1

1

23

Изучение совершенствования ПО

2

2

1

2

1

2

1

1

1

13

ИТОГО:

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

8

7

167

Составим сводную таблицу расчета машинного времени по элементам услуг  за апрель 2012 года.

Таблица 3 – Расшифровки машинного времени по элементам за апрель 2012 года

Наименование элементов услуг

Intel® Core™ i7 Game Edition

Работа в Access

110

Работа в Word

20

Internet

23

Изучение совершенствования ПО

14

ИТОГО:

167

Для реализации проекта было выбрано компьютерное оборудование Intel® Corei7 Game Edition. Техническую характеристику компьютерного оборудования представим в виде таблицы (Таблица 4).

Таблица 4 – Технические характеристики компьютерного оборудования

Наименование компьютера

Характеристики

Процессор

Память

Винчестер

Видеокарта

Материнская плата

Intel® Core™ i7 Game Edition

Intel® Core™ i7 Extreme Edition

4Гб

500Гб

nVidia GeForce GTX-560

ASUS G74

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

Таблица 5 – Единая тарифная сетка по оплате труда

Разряд

Тарифный коэффициент

Часовая тарифная ставка, руб.

Число рабочих часов

Заработная плата за месяц, руб.

1

1

25,93

167

4330

2

1,3

33,7

167

5627

3

1,69

43,8

167

7314

4

1,91

49,5

167

8266

5

2,16

56

167

9352

6

2,44

63,2

167

10554

7

2,76

71,6

167

11957

8

3,12

80,9

167

13510

9

3,53

91,5

167

15280

10

3,99

103,4

167

17267

11

4,51

116,9

167

19522

12

5,1

132,2

167

22077

13

5,76

149,3

167

24933

14

6,51

168,8

167

28189

15

7,36

190,8

167

31863

16

8,17

211,8

167

35370

17

9,07

235,2

167

39278

18

10,07

261,1

167

43603

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


Таблица 6 – Категории и должности работников

Исполнители

Диапазон

разрядов

I

II

Диспетчер

5

Инспектор

5

Лаборант

5

Техники всех специальностей и наименований

5-8

Бухгалтер

6-11

Инженеры различных специальностей и наименований

6-11

Переводчик

6-11

Психолог

6-11

Редактор

6-11

Товаровед

6-11

Художник

6-11

Экономист

6-11

Архитектор

6-13

Конструктор

6-13

Математик

6-13

Программист

6-13

Технолог

6-13

Дизайнер

6-13

Электронщик

6-13

Рассчитаем калькуляцию машинного времени и основной заработной платы по видам услуг. Для этого определим разряд, профессию, тарифную ставку, определим размер премий и начислим региональный коэффициент. Данные представим в виде таблицы (Таблица 7).

Таблица 7– Расчет калькуляции машинного времени и основной заработной платы

Наименование услуг

Разряд

Профессия

Часовой тариф, руб.

Ср. часовой тариф, руб.

Затраты машин. Времени, час.

з/п  по часовому тарифу, руб.

Премия (25%), руб.

Итого (з/п+премия), руб.

Районный коэффициент., руб.

Всего начислено

Работа в Access

7

Программист

71.6

71.6

110

7876

1969

9845

14767,5

11321,75

Работа в Word

7

Программист

71.6

71.6

20

1432

358

1790

268,5

2058,5

Internet

7

Программист

71.6

71.6

23

1646

411,70

2058,5

308,8

2367,3

Изучение совершенствования ПО

7

Программист

71.6

71.6

14

1002,4

250,6

1253

187,8

1440,95

ИТОГО:

17188,5

3.2 Расчет себестоимости автоматизированных информационных услуг

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

  1.  Стоимость расходных материалов;
  2.  Стоимость эксплуатации компьютерного оборудования:

– затраты на амортизацию;

– затраты на сменяемость комплектующих;

– затраты на электроэнергию.

  1.  Затраты на оплату труда;
  2.  Начисления на заработную плату;
  3.  Накладные расходы и т.д.

Определим затраты на расходные материалы для реализации проекта. Данные представим в виде таблицы (Таблица 8).

Таблица 8 – Расчет стоимости расходных материалов

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

Единица измерения

Количество

Цена

Сумма

Бумага "Снегурочка"

шт.

1

150

150

Картридж EP-G45C

шт.

1

500

500

Канцелярский набор

шт.

1

100

100

Файлы

шт.

100

2

200

Диски CD-R

шт.

1

15

15

ИТОГО:

965

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

Таблица 9 – Расчет стоимости эксплуатации компьютерного оборудования

Марка оборудования ПК

Цена приобретения, руб

Срок службы, лет

Стоимость транспортировки, руб

Стоимость монтажа, руб

Полная  первичная стоимость, руб.

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

Годовые амортизационные отчисления, руб.

Intel® Core™ i7 Extreme Edition

36550

5

500

1000

38050

634,167

7610

Годовую сумму амортизационных отчислений, Σао , руб., определяется по формуле (1) [19, с.33]:

,       (1)

где Спп – полная стоимость, руб;

Рср – средний срок службы, лет.

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

руб.,

Месячная сумма амортизационных отчислений, Σаом, руб., находится по формуле (2) [20, с.133]:

,       (2)

где М – количество месяцев.

руб.,

Затраты на сменяемость комплектующих, Зс, руб., находятся по формуле (3):

,          (3)

где К – комплектующие, руб.;

10% берутся от полной первоначальной стоимости.

Зс=(3805010)/10 = 3805 руб.,

Затраты на сменяемость комплектующих за месяц, Зсм, руб., находятся по формуле (4) [22, с.103]:

      (4)

руб.

Расчет затрат на электроэнергию производится следующим образом:

Стоимость энергии за месяц  Сэм, руб., определяется по формуле (5) [21, с.87]:

Сэм= ЕчЧСт ,             (5)

где Ечрасход энергии за час одним компьютером;

Ч–количество рабочих часов;

Ст–цена 1 КВт/ч, руб.

Сэм=3,2КВт1674,5=2404,8 руб.,

Представим все расчеты в виде таблицы (Таблица 10).

Таблица  10 – Стоимость эксплуатации компьютерного оборудования

Затраты

Сумма, руб.

Затраты на амортизацию оборудования в месяц

634,167

Затраты на сменяемость комплектующих

317,083

Затраты на электроэнергию

2404,8

ИТОГО:

3356,056

Далее рассчитаем стоимость АИУ по договорным ценам с учетом и без учета налогов. Данные приведем в таблице с подробными расчетами и конечными результатами (Таблица 11).

Таблица 11 – Расчет объемов АИУ

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

Нормативы

Расчеты

Сумма, руб.

Зарплата по часовому тарифу

Таблица № 7

Калькуляция затрат машинного времени и основной  з/п по элементам информационных услуг

17188,50

Расходные

материалы

Таблица № 8

Стоимость расходных материалов

965,00

Расходы по эксплуатации компьютерного

оборудования

Таблица № 10

Стоимость эксплуатации компьютерного оборудования

3356,056

Начисления на з/п

27% от з/п по часовому тарифу

17188,5x0.27

4640,895

Накладные расходы

80% от з/п по часовому тарифу

17188,5x0.8

13750,80

Итого себестоимость

Итог всех статей

39901,25

Прибыль

25% от себестоимости

39901,25x25

100

9975,31

Итого объем АИУ без налогов

Себестоимость + Прибыль

49876,56

НДС

18 % от объема АИУ

49876,56x0,18

8977,78

Объем АИУ с налогами

Объем АИУ + НДС

49876,56+8977,78

58854,34

Рассмотрим структуру автоматизированных информационных услуг с налогами и без (Таблица 12 и 13, Рисунок 47 и 48).

Таблица 12 – Расчет структуры услуг АИУ без налогов

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

Сумма, руб.

Расчет уровня затрат, %

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

965,00

2,2

Расходы по эксплуатации компьютерного оборудования

3356,056

6,3

Заработная плата (со всеми начислениями)

17188,50

38,6

Накладные расходы

13750,80

30,9

Прибыль

9975,31

22

ИТОГО:

45235,67

100

Представим получившиеся данные в виде диаграммы (Рисунок 47).

Рисунок 47 – Диаграмма АИУ без налогов


Таблица 13 – Расчет структуры услуг АИУ с налогами

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

Сумма, руб.

Расчет уровня затрат, %

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

965,00

1,8

Расходы по эксплуатации компьютерного оборудования

3356,056

5,2

Заработная плата (со всеми начислениями)

17188,50

32,2

Накладные расходы

13750,80

25,8

Прибыль

9975,31

18,4

НДС

8977,78

16,6

ИТОГО:

54213,45

100

Представим получившиеся данные в виде диаграммы.

Рисунок 48 – Диаграмма АИУ с налогами

3.3 Расчет показателей по труду и заработной плате

Рассмотрим распространенные формы и системы оплаты труда на предприятии, для облегчения восприятия представим их в таблице (Таблица 14).

Таблица 14 – Формы и системы оплаты труда.

Оплата труда

Руководителей и специалистов

Оплата труда рабочих по сдельно- премиальной системе

Оплата труда рабочих на повременно- премиальной оплате

Оплата по штатному расписанию по схеме должностных окладов

+

Премия по положению о премировании

+

Персональные надбавки руководству высокого ранга

+

Доплата по районному коэффициенту(15% от всей з/п за месяц)

З/п по сдельным расценкам за выполненный объем работ

+

Премия за выполнение особо важных заданий

+

Доплата по районному коэффициенту(15% от всей з/п за месяц)

З/п за отработанное время по часовому тарифу согласно установленного разряда

+

Премия по положению об оплате труда

+

Доплата за работу в ночное (40%) и вечернее (25% от час. тарифа x количество вечерних часов) время

+

Доплата по районному коэффициенту(15% от всей з/п за месяц)

 

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

Для этого рассмотрим заработную плату специалиста, рассчитаем налогооблагаемую базу, налог на доходы физического лица (НДФЛ) и получаемую сумму на руки (Таблица 15 и 16).

Таблица 15 – Расчет заработной платы специалиста

Фамилия Имя Отчество

Разряд

Часовой тариф, руб.

Профессия

З/п по часовому тарифу, руб.

Премия 25%, руб.

Итого

Район.коэф-т 15%, руб.,

Итого начислено

Щетинкин Фёдор Анатольевич

7

71,6

Программист

11956,4

2989,1

14945,5

2241,825

17188,5

Таблица 16 – Расчет удержаний из начисленной заработной платы

Ф.И.О.

Начислено за мес., руб.

Расчет налогооблагаемой суммы

НДФЛ

(13%)

Руб.

Заработная плата к выдаче, руб

Налоговый вычет, руб.

Налогооблагаемая сумма, руб.

Щетинкин Фёдор Анатольевич

17188,5

400

16788,5

2182,5

14606

ИТОГО:

2182,5

14606


3.4 Расчет показателей прибыли, рентабельности и себестоимости

Таблица 17 – Расчет основных показателей (формирование финансового плана)

№ п/п

Показатели финансового плана

Норматив расчета

Расчет показателей

Сумма, руб.

I

II

III

IV

V

1

Объем АИУ без налогов

Таблица 11 «Расчет объема АИУ»

-

49876,56

2

Себестоимость

Таблица 11

-

39901,25

3

Прибыль по проекту

25%  от себестоимости

39901,25x25

100

9975,31

4

Задание по снижению себестоимости

3% от объема АИУ

49876,56x0,03

1496,3

5

Балансовая прибыль

Прибыль по проекту + задание по снижению себестоимости

9975,31+1496,3

11471,61

6

Налог на прибыль

20% от балансовой прибыли

11471,61x0,2

2294,3

7

Чистая прибыль

Балансовая прибыль – налог на прибыль

11471,61-2294,3

9177,31

8

Уровень рентабельности

Балансовая прибыль/Объем АИУ без НДСx100

11471,61/49876,56x100

23 %

9

Плановая себестоимость

Объем АИУ без НДС - прибыль по  проекту - задание по снижению себестоимости

49876,56-9975,31-1496,3

38404,95

10

Распределение чистой прибыли

50% в резервный фонд

35% в фонд накопления

15% в фонд потребления

9177,31x0.5

9177,31x0.35

9177,31x0.15

4588,6

3212,06

1376,6

11

Распределение налога на прибыль

2% в федеральный бюджет

18% в бюджет субъектов РФ

11471,61x0,02

229,43

11471,61x0,18

2064,89

Рентабельность – это отношение прибыли к затратам. Рентабельность по проекту составляет 23 %, данный показатель, говорит,  на сколько прибыльна деятельность компании, т.е. демонстрирует долю чистой прибыли в объеме продаж предприятия.

3.5 Расчет уровня налогов от фонда заработной платы

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

Таблица 18 –  Расчет налогов от фонда заработной платы

Наименование налога

Норматив %

Расчет

Сумма, руб.

Начислен фонд з/п за месяц

     

 -

-

17188,5

НДФЛ

13% от фонда з/платы

17188,5x0,13

2234,5

Страховые взносы во внебюджетные фонды

34% от фонда з/платы

17188,5x0,34

5844,09

в том числе:

- налог в пенсионный фонд РФ

26% от фонда з/платы

17188,5x0,26

4469,01

- фонд социального страхования

2,9% от фонда з/платы

17188,5x0,029

498,46

- федеральный фонд обязательного медицинского страхования

3,1% от фонда з/платы

17188,5x0,031

532,84

- территориальный фонд обязательного медицинского страхования

2% от фонда з/платы

17188,5x0,02

343,77

3.6 Сводный план показателей

Таблица 19 – Сводный план показателей

Наименование показателей

Ед.

измерения

Количество

Сумма, руб

Объем АИУ без НДС

Руб.

-

49876,56

Объем АИУ С НДС

Руб.

-

58854,34

Затраты машинного времени

Час.

167

-

Численность работающих

Чел

1

-

Начислено в фонд з/п

Руб.

-

17188,5

Среднемесячная з/п

Руб.

-

17188,5

Производительность труда на 1 работающего (Объемы АИУ без НДС/ Число работающих)

Руб.

49876,56/1

49876,56

Плановая прибыль

Руб.

-

9975,31

Балансовая прибыль

Руб.

-

11471,61

Рентабельность

%

23

-

Себестоимость

Руб.

-

39901,25

Налоги:

НДС

Руб.

18%

8977,78

НДФЛ

Руб.

13%

2234,5

ПФР

Руб.

26%

4469,01

ФСС

Руб.

2,9%

498,46

ФФОМС

Руб.

3,1%

532,84

ТФОМС

Руб.

2%

343,77


4. ОХРАНА ТРУДА

4.1 Требования безопасности  перед началом работы на ПК

Пользователь при работе с ПК обязан:

– Осмотреть и привести в порядок рабочее место.

– Отрегулировать освещенность на рабочем месте, убедиться в достаточности освещенности, отсутствии отражений на экране.

– Проверить правильность подключения оборудования в электросеть.

– Проверить исправность проводящих проводов и отсутствие оголённых участков проводов.

– Убедиться в наличии защитного заземления.

– Протереть салфеткой поверхность экрана и защитного фильтра.

– Убедиться в отсутствии дискет в дисководах ПК.

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

Пользователю запрещается приступать к работе с ПК при:

– Отсутствии защитного экранного фильтра класса «полная защита».

– Отсутствии специальной вилки с подключением заземления.

– Обнаружении неисправности оборудования.

– При размещении ПК в ряд на расстоянии менее 1,2 м, при расположении рабочих мест с компьютерами в колонку на расстоянии менее 2,0 м, при рядном расположении дисплеев экранами друг к другу.

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

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

– Работник не должен разрешать работать лицам, не имеющим допуска к работе с опасным оборудованием или с ПК. [24]

4.2 Требования безопасности во время работы с ПК

Работник организации во время работы обязан:

  •  Выполнять ту работу, которая определена его должностной инструкцией. Которая ему была поручена, и по которой он был проинструктирован.
  •  В течение всего рабочего времени содержать в порядке и чистоте рабочее место.
  •  Держать открытыми вентиляционные отверстия, которыми оборудованы приборы и ПК.
  •   Не загромождать оборудование посторонними предметами, которые снижают теплоотдачу.
  •   При необходимости прекращения работы на некоторое время корректно закрыть все активные задачи.
  •   Выполнять санитарные нормы и соблюдать режимы работы и отдыха.
  •   Соблюдать правила эксплуатации электрооборудования или другого оборудования в соответствии с инструкциями по эксплуатации.
  •   При работе с текстовой информацией выбирать наиболее физиологичный режим представления черных символов на белом фоне.
  •   Соблюдать расстояние от глаз до экрана в пределах 60-70 см, но не ближе 50 см, с учетом размеров алфавитно-цифровых знаков и символов.
  •   Во всех случаях обнаружения обрыва проводов питания, неисправности заземления и других повреждений электрооборудования, появления запаха гари немедленно отключить питание и сообщать об аварийной ситуации руководителю и дежурному электромеханику.
  •   При любых случаях сбоя в работе технического оборудования или ПО немедленно вызвать специалиста.
  •   В случаях появления рези в глазах, резком ухудшении видимости – невозможности сфокусировать взгляд или навести его на резкость, появлении боли в пальцах и кистях рук, усилении сердцебиения немедленно покинуть рабочее место, сообщить руководителю.
  •   Не приступать к работе на ПК до устранения неисправности.
  •   При получении травм или при внезапном заболевании немедленно известить своего руководителя, организовать первую доврачебную помощь или вызвать скорую медицинскую помощь по телефону 03.
  •   При обнаружении человека, попавшего под напряжение, немедленно отключить электропитание и освободить его от действия тока, оказать доврачебную помощь или вызвать скорую медицинскую помощь по телефону 03.

Работнику при работе на ПК запрещается:

  •   Касаться одновременно экрана монитора и клавиатуры.
  •   Прикасаться к задней панели системного блока при включенном питании.
  •   Переключать разъёмы интерфейсных кабелей периферийных устройств при включенном питании.
  •   Допускать попадание влаги на поверхность системного блока, монитора, рабочую поверхность клавиатуры, дисководов, принтеров и др. устройств.
  •   Производить самостоятельное вскрытие и ремонт оборудования.
  •   Работник обязан отключить ПК от электросети:

а) при обнаружении неисправности,

б) при внезапном снятии напряжения электросети,

в) во время чистки и уборки оборудования. [24]

4.3 Требования безопасности после окончания работы с ПК

Работник обязан соблюдать следующую последовательность выключения ПК:

– Произвести закрытие всех активных задач.

– Выполнить парковку считывающей головки жесткого диска

– Убедиться, что в дисководе нет дискет.

– Выключить питание системного блока.

– Выключить питание всех периферийных устройств.

– Отключить блок питания.

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

– Работник обязан по окончанию работы или, уходя с работы, вынуть исправную вилку из исправной розетки. [24]


ЗАКЛЮЧЕНИЕ

В данном дипломном проекте была спроектирована и протестирована программа АИС «МРЭО ГАИ». Сначала был проведен анализ предметной области, на основании чего был сделан вывод, что лучшим способом хранения данных в данном случае является база данных, затем был разработан алгоритм действия программы.

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

Для программной реализации данного проекта были выбраны база данных Access (для хранения данных) и мощный язык программирования Delphi 7.Данная программа снабжена всей необходимой документацией для установки и работы.

С помощью этой автоматизированной информационной системы значительно облегчится работа сотрудников организации ГИБДД.

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

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

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


ПЕРЕЧЕНЬ ПРИНЯТЫХ СОКРАЩЕНИЙ

АИС – автоматизированная информационная система.

АИУ – автоматизация и управление.

БД – база данных.

БДД - безопасность дорожного движения.

ВУ - водительское удостоверение.

НДФЛ - налог на доходы физического лица.

НДС  - налог на добавленную стоимость.

ПК – персональный компьютер.

ПП – программный продукт.

ПФР - пенсионный фонд России.

ПЭВМ - персональная электронная вычислительная машина.

СанПиН – санитарные правила и нормы.

ТС – транспортное средство.

ТФОМС - территориальный фонд обязательного медицинского страхования.

ФСС - фонд социального страхования.

ФФОМС - федеральный фонд обязательного медицинского страхования.

Ф.И.О. - фамилия, имя, отчество.

ШС – штрафная санкция.

ЭВМ – электронная вычислительная машина.


БИБЛИОГРАФИЧЕСКИЙ СПИСОК

  1.  ГОСТ 7.32-2001 «Отчет о научно-исследовательской работе. Структура и правила оформления».
  2.  ГОСТ 2.105-95 «Общие требования к текстовым документам»
  3.  ГОСТ Р 7.0.5-2008 «Библиографическая ссылка. Общие требования и правила составления»
  4.  ГОСТ 7.1-2003 «Библиографическая запись. Библиографическое описание. Общие требования и правила составления»
  5.  ГОСТ 7.80-2000. «Библиографическая запись. Заголовок. Общие требования и правила составления»
  6.  Архангельский А.Я. Приемы программирования в Delphi/ А.Я. Архангельский. – М.: Изд-во Бином-Пресс, 2006. – 944 с.
  7.  Бескоровайный И.В. Азбука Delphi: программирование с нуля/ И.В. Бескоровайный. – Сибирское универс. изд-во, 2008. – 112 с.
  8.  Бобровский С.И. Delphi 7 : учеб. курс / С.И.  Бобровский. – СПб. : Изд-во Питер, 2005. – 736 с.
  9.  Василий Корняков - Программирование документов и приложений MS Office в Delphi
  10.  Желонкин А.А. Основы программирования в интегрированной среде Delphi  / А.А. Желонкин. – СПб.: Бином. Лаборатория знаний, 2004. – 236 с.
  11.  Керман М.К. Программирование и отладка в Delphi: учеб.  курс : пер. с англ.  / М.К. Керман. – М. : Вильямс, 2004. – 720 с.
  12.  Семакин И.Г., Шестаков А.П. Основы программирования. Учебник. М., «Мастерство», 2000.
  13.  Тампе Л. –  Введение в тестирование программнного обеспечения м.:Вильямс,2003
  14.  Фаронов В.В. Delphi, язык и среда программирования: учеб. курсы / В.В. Фаронов. – СПб.: Изд-во Питер, 2003. – 640 с.
  15.  Фленов М. Библия Delphi 7 / М. Фленов. – Минск: Изд-во BHV, 2007. – 800 с.
  16.  Хомоненко. Основы современных компьютерных технологий. С-П., «Корона принт», 1998.
  17.  Чижов Б.А., Шомов Е.М. Особенности оплаты труда сезонных и временных работников // Главбух № 10 - 2008, с. 50-57.
  18.  Грузинов В.П., Грибов В.Д. Экономика предприятия. – М.: Финансы и статистика, 2009. – 208 с.
  19.  Заработная плата/Барышников Н.П. – М.: «Филинъ», 2003. – 496 с.
  20.  Организация и нормирование  труда -  Под ред. В.В. Адамчука. - М.:Финстатинформ, 2007. – 304 с.
  21.  Раицкий К.А. Экономика предприятия. – М.: «Маркетинг», 2006. – 693 с.
  22.  Экономика предприятия. - Под ред. В.Я.Горфинкеля, В.А. Швандара. – М.: Банки и Биржи, ЮНИТИ, 2008. – 742 с.
  23.  Экономика предприятия - Под ред. О.И. Волкова. – М.: ИНФРА-М, 2008. – 416 с.
  24.  http://ru.wikipedia.org/wiki/Охрана_труда_за_компьютером - Охрана труда.


ПРИЛОЖЕНИЕ А (листинг кода)

Unit 3

procedure TForm0.sButton1Click(Sender: TObject); //Кнопка "Нет"

begin

Form1.Close;

end;

procedure TForm0.sButton2Click(Sender: TObject); //Кнопка "Да"

begin

Form0.Close;

Form1.Show;

Form2.Close;

Form1.sEdit1.Text:='';

end;

end.

Unit 5

procedure TForm5.sButton1Click(Sender: TObject); //Кнопка "Выход"

begin

Form5.Close;

end;

procedure TForm5.DataSource1DataChange(Sender: TObject; Field: TField); //Условие при выборе данных в таблице

begin

If sDBText12.Caption='Используется' Then begin

sButton10.Enabled:=false;

sButton9.Enabled:=true;

sButton6.Enabled:=false;

sButton11.Enabled:=True;

end;

begin

if sDBText12.Caption='Списан' Then begin

sButton10.Enabled:=true;

sButton4.Enabled:=true;

sButton9.Enabled:=false;

sButton6.Enabled:=false;

sButton11.Enabled:=False;

end;

begin

if sDBText12.Caption='Снят с учёта' Then begin

sButton9.Enabled:=false;

sButton10.Enabled:=true;

sButton6.Enabled:=true;

sButton4.Enabled:=true;

sButton11.Enabled:=False;

end;

begin

if sDBText12.Caption='ВНИМАНИЕ!!! В УГОНЕ!' Then

begin

sDBText12.Font.Color:=clred;

sButton4.Enabled:=False;

sButton5.Enabled:=True;

sButton9.Enabled:=False;

sButton10.Enabled:=False;

sButton6.Enabled:=False;

sButton11.Enabled:=False;

end

else begin

sDBText12.Font.Color:=clBlack;

sButton5.Enabled:=false;

end;

end;

end;

end;

end;

procedure TForm5.sButton4Click(Sender: TObject); //Кнопка "Объявить ТС в угон"

begin

ADOQuery1.Edit;                                                          //Открытие процедуры редактирования БД

ADOQuery1.FieldByName('Прежнее состояние').AsString:=sDBText12.Caption;  //Внесение изменений в БД

ADOQuery1.FieldByName('Состояние').AsString:='ВНИМАНИЕ!!! В УГОНЕ!';

ADOQuery1.FieldByName('ТС Было в угоне').AsString:='Да';

ADOQuery1.Post;                                                          //Сохранение изменений в БД

end;

procedure TForm5.sButton5Click(Sender: TObject);  //Кнопка "ТС возвращено владельцу"

begin

ADOQuery1.Edit;

ADOQuery1.FieldByName('Состояние').AsString:=sDBText22.Caption;

ADOQuery1.Post;

end;

procedure TForm5.sButton6Click(Sender: TObject);  //Кнопка "Списать ТС"

begin

FormCTS.ShowModal;

end;

procedure TForm5.sButton7Click(Sender: TObject); //Кнопка "Изменить"

begin

Form8.ShowModal;

end;

procedure TForm5.FormShow(Sender: TObject);   //Текущее врямя и дата

begin

sLabel19.Caption:=DateTimeToStr(Now);         //Показ текущего времени и даты

end;

procedure TForm5.ADOQuery1AfterScroll(DataSet: TDataSet);  //Отображение изображения хранящегося в БД

var                                                        //Процедура показа изображения из БД

 Stream: TMemoryStream;

 Jpg: TJpegImage;

 GraphType: TGraphType;

begin

 Jpg := nil;

 Stream := nil;

 try

   Stream := TMemoryStream.Create;

   TBlobField(ADOQuery1.FieldByName('image_i')).SaveToStream(Stream);

   if Stream.Size > 0 then

   begin

     Stream.Position := 0;

     Stream.Read(GraphType, 1);

     case GraphType of

       gtBitmap:   Image1.Picture.Bitmap.LoadFromStream(Stream);

       gtIcon:     Image1.Picture.Icon.LoadFromStream(Stream);

       gtMetafile: Image1.Picture.Metafile.LoadFromStream(Stream);

       gtJpeg:

       begin

         Jpg := TJpegImage.Create;

         Jpg.LoadFromStream(Stream);

         Image1.Picture.Assign(Jpg);

       end

       else

         Image1.Picture.Assign(nil);

     end;

   end

   else

     Image1.Picture.Assign(nil);

 except

   Image1.Picture.Assign(nil);

 end;

 jpg.Free;

 Stream.Free;

end;

procedure TForm5.FormCreate(Sender: TObject); //Операции при создание данной формы

begin

 ADOConnection1.Connected := True;

 ADOQuery1.Open;

 Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

procedure TForm5.Image1Click(Sender: TObject);  //Клик мыши на изображении

begin                                           //Увеличение изображения

Qbig.Image1.Picture:=Form5.Image1.Picture;

Qbig.ShowModal;

end;

procedure TForm5.sButton3Click(Sender: TObject);  //Кнопка "Подробнее"

begin

Form12.ShowModal;

end;

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);  //Условия закрытия формы

begin

Form2.Show;

end;

procedure TForm5.sButton8Click(Sender: TObject);  //Кнопка "Регистрация нового ТС"

begin

Form10.ShowModal;

end;

procedure TForm5.sButton9Click(Sender: TObject);   //Кнопка "Снятие ТС с учёта"

begin

Form11.ShowModal;

end;

procedure TForm5.sButton12Click(Sender: TObject);  //Кнопка "Удалить"

begin

case MessageBox(Handle,'Вы действительно хотите удалить данную запись?','Подтверждение удаления',36) of   //Диалоговое окна вида "Да"-"Нет"

 6: ADOQuery1.Delete;                             //Кнопка "Да"

 7: ;                                             //Кнопка "Нет"

end;

end;

procedure TForm5.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;

 DataCol: Integer; Column: TColumn; State: TGridDrawState); //Раскраска строки таблицы по условию

begin

if ADOQuery1['Состояние'] = 'ВНИМАНИЕ!!! В УГОНЕ!' then

with DBGrid1.Canvas do

begin

Brush.Color := clRed;

Font.Color := clWhite;

FillRect(Rect);

TextOut(Rect.Left+2,Rect.Top+2, Column.Field.Text);

end;

end;

procedure TForm5.sButton2Click(Sender: TObject);  //Кнопка "Печать"

begin

PrintA.Image1.Picture:=Image1.Picture;

PrintA.Print;                                     //Печать формы

end;

procedure TForm5.sButton10Click(Sender: TObject);  //Кнопка "Постановка ТС на учет"

begin

Form15.Showmodal;

end;

procedure TForm5.sButton11Click(Sender: TObject);  //Кнопка "Выдать дубликат свидетельства о регистрации"

begin

Form18.Show;

end;

procedure TForm5.sEdit1KeyUp(Sender: TObject; var Key: Word; //Функция поиска

 Shift: TShiftState);

begin

if Length(sEdit1.text)>0 then

begin

ADOQuery1.Filtered:=true;                                   //Включение фильтрации

case sCombobox1.ItemIndex of

0:ADOQuery1.Filter:='[Выданное св-во №] LIKE '+''''+sEdit1.Text+'%'+'''';   //Тип фильтра

1:ADOQuery1.Filter:='[Выданное св-во серия] LIKE '+''''+sEdit1.Text+'%'+'''';

2:ADOQuery1.Filter:='[Год выпуска ТС] LIKE '+''''+sEdit1.Text+'%'+'''';

3:ADOQuery1.Filter:='[Двигатель №] LIKE '+''''+sEdit1.Text+'%'+'''';

4:ADOQuery1.Filter:='[Идентификационный номер (VIN)] LIKE '+''''+sEdit1.Text+'%'+'''';

5:ADOQuery1.Filter:='[Категория ТС] LIKE '+''''+sEdit1.Text+'%'+'''';

6:ADOQuery1.Filter:='[Кузов (коляска) №] LIKE '+''''+sEdit1.Text+'%'+'''';

7:ADOQuery1.Filter:='[Марка, модель] LIKE '+''''+sEdit1.Text+'%'+'''';

8:ADOQuery1.Filter:='[Масса без нагрузки (кг)] LIKE '+''''+sEdit1.Text+'%'+'''';

9:ADOQuery1.Filter:='[Место жительства] LIKE '+''''+sEdit1.Text+'%'+'''';

10:ADOQuery1.Filter:='[Место регистрации ТС] LIKE '+''''+sEdit1.Text+'%'+'''';

11:ADOQuery1.Filter:='[Модель двигателя] LIKE '+''''+sEdit1.Text+'%'+'''';

12:ADOQuery1.Filter:='[Мощность двигателя (лс)] LIKE '+''''+sEdit1.Text+'%'+'''';

13:ADOQuery1.Filter:='[Особые отметки] LIKE '+''''+sEdit1.Text+'%'+'''';

14:ADOQuery1.Filter:='[Паспорт №] LIKE '+''''+sEdit1.Text+'%'+'''';

15:ADOQuery1.Filter:='[Паспорт серия] LIKE '+''''+sEdit1.Text+'%'+'''';

16:ADOQuery1.Filter:='[Рабочий объём двигателя (см^3)] LIKE '+''''+sEdit1.Text+'%'+'''';

17:ADOQuery1.Filter:='[Разрешённая max масса (кг)] LIKE '+''''+sEdit1.Text+'%'+'''';

18:ADOQuery1.Filter:='[Регистрационный знак] LIKE '+''''+sEdit1.Text+'%'+'''';

19:ADOQuery1.Filter:='[Состояние] LIKE '+''''+sEdit1.Text+'%'+'''';

20:ADOQuery1.Filter:='[Тип ТС] LIKE '+''''+sEdit1.Text+'%'+'''';

21:ADOQuery1.Filter:='[ТС было в угоне] LIKE '+''''+sEdit1.Text+'%'+'''';

22:ADOQuery1.Filter:='[ФИО Владельца] LIKE '+''''+sEdit1.Text+'%'+'''';

23:ADOQuery1.Filter:='[Цвет] LIKE '+''''+sEdit1.Text+'%'+'''';

24:ADOQuery1.Filter:='[Шасси (рама) №] LIKE '+''''+sEdit1.Text+'%'+'''';

end;

end

else ADOQuery1.Filtered:=False;                             //Отключение фильтрации

end;

end.

Unit 6

procedure TFormCTS.FormShow(Sender: TObject);  //Открытие формы с параметрами

begin

sLabel4.Caption:=Form5.sDBText1.Caption;       //Показ данных с другой формы

sLabel6.Caption:=Form5.sDBText10.Caption;

sLabel7.Caption:=Form5.sDBText5.Caption;

sLabel12.Caption:=Form5.sDBText4.Caption;

sLabel13.Caption:=Form5.sDBText7.Caption;

sLabel14.Caption:=Form5.sDBText8.Caption;

sLabel15.Caption:=Form5.sDBText11.Caption;

sLabel18.Caption:=Form5.sDBText6.Caption;

sLabel19.Caption:=Form5.sDBText9.Caption;

sLabel21.Caption:=Form5.sDBText12.Caption;

sLabel23.Caption:=Form5.sDBText13.Caption;

end;

procedure TFormCTS.sButton1Click(Sender: TObject);  // Кнопка "Списать ТС"

begin

If Form5.sDBText12.Caption='Списан' Then

Application.MessageBox('Данное транспортное средство уже списано! Повторное списание невозможно!', 'Ошибка списания транспортного средства!', MB_OK + MB_ICONSTOP)

else

PODspis.ShowModal;

end;

procedure TFormCTS.sButton2Click(Sender: TObject); //Кнопка "Отмена"

begin

FormCTS.Close;

end;

end.

Unit 7.

procedure TPODspis.sButton1Click(Sender: TObject);  //Кнопка "Да"

begin

Form5.ADOQuery1.Edit;

Form5.ADOQuery1.FieldByName('Состояние').AsString:='Списан';

Form5.ADOQuery1.FieldByName('Регистрационный знак').AsString:='Снят';

Form5.ADOQuery1.FieldByName('ФИО Владельца').AsString:='(информация отсутствует)';

Form5.ADOQuery1.FieldByName('Паспорт серия').AsString:='';

Form5.ADOQuery1.FieldByName('Паспорт №').AsString:='';

Form5.ADOQuery1.Post;

FormCTS.sLabel21.Caption:=Form5.sDBText12.Caption;

FormCTS.sLabel14.Caption:=Form5.sDBText8.Caption;

FormCTS.sLabel15.Caption:=Form5.sDBText11.Caption;

FormCTS.sLabel6.Caption:=Form5.sDBText10.Caption;

PODspis.Close;

end;

procedure TPODspis.sButton2Click(Sender: TObject);   //Кнопка "Нет"

begin

PODspis.Close;

end;

procedure TPODspis.FormShow(Sender: TObject);

begin

sLabel2.Caption:=FormCTS.sLabel4.Caption;

end;

end.

Unit 8

procedure TForm8.sButton1Click(Sender: TObject);  //Кнопка "Отмена"

begin

Form8.Close;

end;

procedure TForm8.sButton2Click(Sender: TObject);   //Кнопка "Сохранить"

begin

Form5.ADOQuery1.Edit;

Form5.ADOQuery1.FieldByName('Марка, модель').AsString:=sEdit1.Text;

Form5.ADOQuery1.FieldByName('Идентификационный номер (VIN)').AsString:=sEdit2.Text;

Form5.ADOQuery1.FieldByName('Модель двигателя').AsString:=sEdit3.Text;

Form5.ADOQuery1.FieldByName('Двигатель №').AsString:=sEdit4.Text;

Form5.ADOQuery1.FieldByName('Шасси (рама) №').AsString:=sEdit5.Text;

Form5.ADOQuery1.FieldByName('Кузов (коляска) №').AsString:=sEdit6.Text;

Form5.ADOQuery1.FieldByName('Мощность двигателя (лс)').AsString:=sEdit7.Text;

Form5.ADOQuery1.FieldByName('Рабочий объём двигателя (см^3)').AsString:=sEdit8.Text;

Form5.ADOQuery1.FieldByName('Паспорт серия').AsString:=sEdit9.Text;

Form5.ADOQuery1.FieldByName('Паспорт №').AsString:=sEdit10.Text;

Form5.ADOQuery1.FieldByName('Разрешённая max масса (кг)').AsString:=sEdit11.Text;

Form5.ADOQuery1.FieldByName('Масса без нагрузки (кг)').AsString:=sEdit12.Text;

Form5.ADOQuery1.FieldByName('Тип ТС').AsString:=sComboBox1.Text;

Form5.ADOQuery1.FieldByName('Год выпуска ТС').AsString:=sEdit13.Text;

Form5.ADOQuery1.FieldByName('ФИО Владельца').AsString:=sEdit14.Text;

Form5.ADOQuery1.FieldByName('Категория ТС').AsString:=sCOmboBox2.Text;

Form5.ADOQuery1.FieldByName('Цвет').AsString:=sComboBox3.Text;

Form5.ADOQuery1.FieldByName('Место регистрации ТС').AsString:=sComboBox4.Text;

Form5.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit15.Text;

Form5.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit16.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во серия').AsString:=sEdit17.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во №').AsString:=sEdit18.Text;

Form5.ADOQuery1.Post;

Form8.Close;

Form5.Show;

end;

procedure TForm8.FormShow(Sender: TObject);        //Процедуры при показе формы

begin

Image1.Picture:=Form5.Image1.Picture;

sEdit1.Text:=Form5.sDBText1.Caption;

sEdit2.Text:=Form5.sDBText5.Caption;

sEdit3.Text:=Form5.sDBText9.Caption;

sEdit4.Text:=Form5.sDBText13.Caption;

sEdit5.Text:=Form5.sDBText14.Caption;

sEdit6.Text:=Form5.sDBText15.Caption;

sEdit7.Text:=Form5.sDBText16.Caption;

sEdit8.Text:=Form5.sDBText17.Caption;

sEdit9.Text:=Form5.sDBText8.Caption;

sEdit10.Text:=Form5.sDBText11.Caption;

sEdit11.Text:=Form5.sDBText19.Caption;

sEdit12.Text:=Form5.sDBText18.Caption;

sEdit13.Text:=Form5.sDBText6.Caption;

sEdit14.Text:=Form5.sDBText10.Caption;

sEdit15.Text:=Form12.sDBText5.Caption;

sEdit16.Text:=Form12.sDBText6.Caption;

sEdit17.Text:=Form12.sDBTextFX20.Caption;

sEdit18.Text:=Form12.sDBTextFX19.Caption;

sComboBox3.Text:=Form5.sDBText7.Caption;

sComboBox4.Text:=Form5.sDBText3.Caption;

sComboBox1.Text:=Form5.sDBText4.Caption;

sComboBox2.Text:=Form5.sDBText21.Caption;

sPanel4.Caption:=Form5.sDBText2.Caption;

end;

procedure TForm8.sEdit2KeyPress(Sender: TObject; var Key: Char);   //Условие ввода и нажатия на клавиши

begin

If not (Key in ['0'..'9', #8]) then

Key:=#0

end;

procedure TForm8.sButton3Click(Sender: TObject);   //Кнопка "Загрузить/Изменить"

var                                                //Операция загрузки изображения в БД

 Jpg: TJpegImage;

 Stream: TMemoryStream;

 FileExt: string;

 GraphType: TGraphType;

begin

 if dlgOpenPicture.Execute then

 begin

   Jpg := nil;

   Stream := nil;

   try

   Stream := TMemoryStream.Create;

   FileExt := LowerCase(ExtractFileExt(dlgOpenPicture.FileName));

   if (FileExt = '.bmp') or (FileExt = '.dib') then

   begin

     GraphType := gtBitmap;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Bitmap do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.ico') then

   begin

     GraphType := gtIcon;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Icon do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.emf') or (FileExt = '.wmf') then

   begin

     GraphType := gtMetafile;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Metafile do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.jpg') or (FileExt = '.jpeg') or (FileExt = '.jpe') then

   begin

     Jpg := TJpegImage.Create;

     Jpg.LoadFromFile(dlgOpenPicture.FileName);

     Image1.Picture.Assign(Jpg);

     GraphType := gtJpeg;

     Stream.Write(GraphType, 1);

     Jpg.SaveToStream(Stream);

   end;

   if (Form5.ADOQuery1.State <> dsEdit) and (Form5.ADOQuery1.State <> dsInsert) then

   Form5.ADOQuery1.Edit;

   Form5.ADOQuery1.FieldByName('name_i').AsString := ExtractFileName(dlgOpenPicture.FileName);

   Stream.Position := 0;

   TBlobField(Form5.ADOQuery1.FieldByName('image_i')).LoadFromStream(Stream);

   Form5.ADOQuery1.Post;

 except

   jpg.Free;

   Stream.Free;

   raise;

 end;

   jpg.Free;

   Stream.Free;

   Form5.ADOQuery1.AfterScroll(Form5.ADOQuery1);

 end;

end;

procedure TForm8.sButton4Click(Sender: TObject);  //Кнопка "Удалить"

begin                                             //Процедура удаления изображения из БД

if (Form5.ADOQuery1.State <> dsEdit) and (Form5.ADOQuery1.State <> dsInsert) then

   Form5.ADOQuery1.Edit;

   Form5.ADOQuery1.FieldByName('name_i').AsString :='(информация отсутствует)';

   TBlobField(Form5.ADOQuery1.FieldByName('image_i')).LoadFromFile('C:\Program Files\Система управления - МРЭО ГАИ\Image\logo.JPG');

   Form5.ADOQuery1.Post;

   Form5.ADOQuery1.AfterScroll(Form5.ADOQuery1);

Form5.Image1.Picture.LoadFromFile('Image\nopic.jpg');

Image1.Picture:=Form5.Image2.Picture;

end;

procedure TForm8.FormClose(Sender: TObject; var Action: TCloseAction);   //Условия закрытия формы

begin

Form5.Show;

end;

procedure TForm8.Image1Click(Sender: TObject);       //Клик на изображении

begin

Qbig.Image1.Picture:=Form5.Image1.Picture;

Qbig.ShowModal;

end;

procedure TForm8.sComboBox2Change(Sender: TObject);  //Выбор значений "Тип ТС"

begin

If sComboBox2.ItemIndex = 0 then                     //Условие выбора

 begin

 sComboBox1.Clear;                                  //Добавление данных в список по условию

 sComboBox1.Items.Add('Мотоколяска');

 sComboBox1.Items.Add('Мотоцикл');

 sComboBox1.Items.Add('Квадроцикл');

 sComboBox1.Items.Add('Скутер');

end;

If sComboBox2.ItemIndex = 1 then

 begin

 sComboBox1.Clear;

 sComboBox1.Items.Add('Седан');

 sComboBox1.Items.Add('Универсал');

 sComboBox1.Items.Add('Хетчбек');

 sComboBox1.Items.Add('Джип');

 sComboBox1.Items.Add('Минивэн');

end;

If sComboBox2.ItemIndex = 2 then

 begin

 sComboBox1.Clear;

 sComboBox1.Items.Add('Самосвал');

 sComboBox1.Items.Add('Тягач');

 sComboBox1.Items.Add('Грузовик');

end;

If sComboBox2.ItemIndex = 3 then

 begin

 sComboBox1.Clear;

 sComboBox1.Items.Add('Автобус');

 sComboBox1.Items.Add('Микроавтобус');

 sComboBox1.Items.Add('Грузо-пассажирский');

end;

If sComboBox2.ItemIndex = 4 then

 begin

 sComboBox1.Clear;

 sComboBox1.Items.Add('Прицеп');

 sComboBox1.Items.Add('Рефрежиратор');

 sComboBox1.Items.Add('Цистерна (бочка)');

 sComboBox1.Items.Add('Автовоз');

end;

end;

end.

Unit 9

procedure TQbig.sButton1Click(Sender: TObject);  //Кнопка "Закрыть"

begin

Qbig.Close;

end;

procedure TQbig.Image1Click(Sender: TObject);    //Закрытие формы, при клике мышью на изображении

begin

Qbig.Close;

end;

procedure TQbig.FormCreate(Sender: TObject);     //Операции, выполняемые при создании формы

begin

Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

end.

Unit 10

procedure TForm10.FormClose(Sender: TObject; var Action: TCloseAction);  //Операции при закрытия формы

begin

Form5.Show;

end;

procedure TForm10.sButton1Click(Sender: TObject);   //Кнопка "Зарегистрировать транспортное средство"

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sComboBox5.Text='') or (sEdit5.Text='') or (sEdit6.Text='') or (sEdit15.Text='')or (sEdit17.Text='') or (sEdit19.Text='') or (sComboBox1.Text='') or (sComboBox2.Text='')or (sComboBox3.Text='')or (sComboBox4.Text='Выберите место регистрации или введитее новое....') or (sComboBox4.Text='') or (sCurrencyEdit1.Text='0') or (sCurrencyEdit3.Text='0') or (sCurrencyEdit8.Text='0')  //Условие добавления данных в БД

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form5.ADOQuery1.Insert;

Form5.ADOQuery1.FieldByName('ФИО Владельца').AsString:=sEdit1.Text;

Form5.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit2.Text;

Form5.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit3.Text;

Form5.ADOQuery1.FieldByName('Марка, модель').AsString:=sEdit5.Text;

Form5.ADOQuery1.FieldByName('Цвет').AsString:=sComboBox3.Text;

Form5.ADOQuery1.FieldByName('Идентификационный номер (VIN)').AsString:=sComboBox5.Text;

Form5.ADOQuery1.FieldByName('Паспорт №').AsString:=sCurrencyEdit1.Text;

Form5.ADOQuery1.FieldByName('Паспорт серия').AsString:=sEdit15.Text;

Form5.ADOQuery1.FieldByName('Тип ТС').AsString:=sComboBox2.Text;

Form5.ADOQuery1.FieldByName('Категория ТС').AsString:=sComboBox1.Text;

Form5.ADOQuery1.FieldByName('Состояние').AsString:='Используется';

Form5.ADOQuery1.FieldByName('Год выпуска ТС').AsString:=sEdit6.Text;

Form5.ADOQuery1.FieldByName('Модель двигателя').AsString:=sEdit7.Text;

Form5.ADOQuery1.FieldByName('Двигатель №').AsString:=sCurrencyEdit2.Text;

Form5.ADOQuery1.FieldByName('Мощность двигателя (лс)').AsString:=sEdit9.Text;

Form5.ADOQuery1.FieldByName('Рабочий объём двигателя (см^3)').AsString:=sCurrencyEdit7.Text;

Form5.ADOQuery1.FieldByName('Кузов (коляска) №').AsString:=sCurrencyEdit3.Text;

Form5.ADOQuery1.FieldByName('Шасси (рама) №').AsString:=sCurrencyEdit4.Text;

Form5.ADOQuery1.FieldByName('Масса без нагрузки (кг)').AsString:=sCurrencyEdit5.Text;

Form5.ADOQuery1.FieldByName('Разрешённая max масса (кг)').AsString:=sCurrencyEdit6.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во серия').AsString:=sEdit17.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во №').AsString:=sCurrencyEdit8.Text;

Form5.ADOQuery1.FieldByName('Регистрационный знак').AsString:=sEdit19.Text;

Form5.ADOQuery1.FieldByName('ТС было в угоне').AsString:='Нет';

Form5.ADOQuery1.FieldByName('Место регистрации ТС').AsString:=sComboBox4.Text;

Form5.ADOQuery1.Post;

sButton1.Enabled:=false;

sButton2.Enabled:=true;

SVoreg.Print;

ShowMessage('ТС успешно зарегестрировано. Вы можете загрузить фото.')

end;

end;

procedure TForm10.sCurrencyEdit1KeyPress(Sender: TObject; var Key: Char);  //Условие ввода и нажатия на клавиши

begin

If not (Key in ['0'..'9', #8]) then

Key:=#0

end;

procedure TForm10.sButton3Click(Sender: TObject);   //Кнопка "Закрыть"

begin

Form5.Show;

Form10.Close;

end;

procedure TForm10.sButton2Click(Sender: TObject);   //Кнопка "Загрузить/Изменить фото ТС"

var                                                 //Процедура загрузки изображения в БД

 Jpg: TJpegImage;

 Stream: TMemoryStream;

 FileExt: string;

 GraphType: TGraphType;

begin

 if dlgOpenPicture.Execute then

 begin

   Jpg := nil;

   Stream := nil;

   try

   Stream := TMemoryStream.Create;

   FileExt := LowerCase(ExtractFileExt(dlgOpenPicture.FileName));

   if (FileExt = '.bmp') or (FileExt = '.dib') then

   begin

     GraphType := gtBitmap;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Bitmap do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.ico') then

   begin

     GraphType := gtIcon;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Icon do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.emf') or (FileExt = '.wmf') then

   begin

     GraphType := gtMetafile;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Metafile do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.jpg') or (FileExt = '.jpeg') or (FileExt = '.jpe') then

   begin

     Jpg := TJpegImage.Create;

     Jpg.LoadFromFile(dlgOpenPicture.FileName);

     Image1.Picture.Assign(Jpg);

     GraphType := gtJpeg;

     Stream.Write(GraphType, 1);

     Jpg.SaveToStream(Stream);

   end;

   if (Form5.ADOQuery1.State <> dsEdit) and (Form5.ADOQuery1.State <> dsInsert) then

   Form5.ADOQuery1.Edit;

   Form5.ADOQuery1.FieldByName('name_i').AsString := ExtractFileName(dlgOpenPicture.FileName);

   Stream.Position := 0;

   TBlobField(Form5.ADOQuery1.FieldByName('image_i')).LoadFromStream(Stream);

   Form5.ADOQuery1.Post;

 except

   jpg.Free;

   Stream.Free;

   raise;

 end;

   jpg.Free;

   Stream.Free;

   Form5.ADOQuery1.AfterScroll(Form5.ADOQuery1);

 end;

end;

procedure TForm10.FormShow(Sender: TObject);   //Операции выполняемые при показе формы

var

i: integer;

begin

for i := 0 to ComponentCount - 1 do             //Очистка полей для ввода

if Components[i] is TsEdit then

TsEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsComboBox then

TsComboBox(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsCurrencyEdit then

TsCurrencyEdit(Components[i]).Text := '';

begin

sButton1.Enabled:=true;

sButton2.Enabled:=false;

end;

end;

end;

end;

procedure TForm10.sComboBox1Change(Sender: TObject);

begin

If sComboBox1.ItemIndex = 0 then

 begin

 sComboBox2.Clear;

 sComboBox2.Items.Add('Мотоколяска');

 sComboBox2.Items.Add('Мотоцикл');

 sComboBox2.Items.Add('Квадроцикл');

 sComboBox2.Items.Add('Скутер');

end;

If sComboBox1.ItemIndex = 1 then

 begin

 sComboBox2.Clear;

 sComboBox2.Items.Add('Седан');

 sComboBox2.Items.Add('Универсал');

 sComboBox2.Items.Add('Хетчбек');

 sComboBox2.Items.Add('Джип');

 sComboBox2.Items.Add('Минивэн');

end;

If sComboBox1.ItemIndex = 2 then

 begin

 sComboBox2.Clear;

 sComboBox2.Items.Add('Самосвал');

 sComboBox2.Items.Add('Тягач');

 sComboBox2.Items.Add('Грузовик');

end;

If sComboBox1.ItemIndex = 3 then

 begin

 sComboBox2.Clear;

 sComboBox2.Items.Add('Автобус');

 sComboBox2.Items.Add('Микроавтобус');

 sComboBox2.Items.Add('Грузо-пассажирский');

end;

If sComboBox1.ItemIndex = 4 then

 begin

 sComboBox2.Clear;

 sComboBox2.Items.Add('Прицеп');

 sComboBox2.Items.Add('Рефрежиратор');

 sComboBox2.Items.Add('Цистерна (бочка)');

 sComboBox2.Items.Add('Автовоз');

end;

end;

end.

Unit 11

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

begin

Form5.Show;

end;

procedure TForm11.sButton1Click(Sender: TObject);

begin

Form11.Close;

end;

procedure TForm11.sButton2Click(Sender: TObject);

begin

Form5.ADOQuery1.Edit;

Form5.ADOQuery1.FieldByName('ФИО Владельца').AsString:='';

Form5.ADOQuery1.FieldByName('Место жительства').AsString:='';

Form5.ADOQuery1.FieldByName('Регистрационный знак').AsString:='Снят';

Form5.ADOQuery1.FieldByName('Выданное св-во серия').AsString:='';

Form5.ADOQuery1.FieldByName('Выданное св-во №').AsString:='';

Form5.ADOQuery1.FieldByName('Состояние').AsString:='Снят с учёта';

Form5.ADOQuery1.FieldByName('Место регистрации ТС').AsString:='';

Form5.ADOQuery1.Post;

Form11.Close;

ShowMessage('ТС было снято с учёта');

end;

end.

Unit 12

procedure TForm12.FormShow(Sender: TObject);

begin

if sDBText3.Caption='ВНИМАНИЕ!!! В УГОНЕ!' Then

sDBText3.Font.Color:=clred;

begin

Image1.Picture:=Form5.Image1.Picture;

end;

end;

procedure TForm12.Image1Click(Sender: TObject);

begin

Qbig.Image1.Picture:=Form5.Image1.Picture;

QBig.ShowModal;

end;

procedure TForm12.sButton1Click(Sender: TObject);

begin

Form12.Close;

end;

procedure TForm12.sButton2Click(Sender: TObject);

begin

PrintA.Image2.Picture.LoadFromFile('Image/nopic.jpg');

PrintA.Image1.Picture:=Image1.Picture;

PrintA.Print;

end;

procedure TForm12.sButton7Click(Sender: TObject);

begin

Form8.ShowModal;

end;

procedure TForm12.FormCreate(Sender: TObject);

begin

Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

end.

Unit 13

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

begin

Form2.Show;

end;

procedure TForm13.Button1Click(Sender: TObject);

begin

Form5.Show;

end;

procedure TForm13.ADOQuery1AfterScroll(DataSet: TDataSet);

var

 Stream: TMemoryStream;

 Jpg: TJpegImage;

 GraphType: TGraphType;

begin

 Jpg := nil;

 Stream := nil;

 try

   Stream := TMemoryStream.Create;

   TBlobField(ADOQuery1.FieldByName('image_i')).SaveToStream(Stream);

   if Stream.Size > 0 then

   begin

     Stream.Position := 0;

     Stream.Read(GraphType, 1);

     case GraphType of

       gtBitmap:   Image1.Picture.Bitmap.LoadFromStream(Stream);

       gtIcon:     Image1.Picture.Icon.LoadFromStream(Stream);

       gtMetafile: Image1.Picture.Metafile.LoadFromStream(Stream);

       gtJpeg:

       begin

         Jpg := TJpegImage.Create;

         Jpg.LoadFromStream(Stream);

         Image1.Picture.Assign(Jpg);

       end

       else

         Image1.Picture.Assign(nil);  // Clear the image

     end;

   end

   else

     Image1.Picture.Assign(nil);

 except

   Image1.Picture.Assign(nil);

 end;

 jpg.Free;

 Stream.Free;

end;

procedure TForm13.sButton1Click(Sender: TObject);

begin

Form13.Close;

end;

procedure TForm13.Image1Click(Sender: TObject);

begin

QBig.Image1.Picture:=Image1.Picture;

QBig.Image1.Picture:=Image1.Picture;

QBig.ShowModal;

end;

procedure TForm13.sButton2Click(Sender: TObject);

begin

Form16.sButton2.Enabled:=True;

Form16.ShowModal;

end;

procedure TForm13.sButton3Click(Sender: TObject);

begin

Form19.ShowModal;

end;

procedure TForm13.sButton4Click(Sender: TObject);

begin

Form20.sCheckBox1.Visible:=True;

Form20.sPanel1.Caption:='Замена | Продление ВУ';

Form20.sButton3.Visible:=False;

Form20.ShowModal;

end;

procedure TForm13.DataSource1DataChange(Sender: TObject; Field: TField);

begin

if sDBText1.Caption='Лишён ВУ'

Then

begin

sDBText11.Visible:=True;

sLabel12.Visible:=True;

sButton3.Enabled:=False;

sButton5.Enabled:=False;

end

Else begin

sButton3.Enabled:=True;

sButton5.Enabled:=True;

sLabel12.Visible:=False;

sDBText11.Visible:=False;

end;

end;

procedure TForm13.FormCreate(Sender: TObject);

begin

Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

procedure TForm13.sButton5Click(Sender: TObject);

begin

Form20.sCheckBox1.Visible:=False;

Form20.sPanel1.Caption:='Выдача дубликата ВУ';

Form20.sButton3.Visible:=True;

Form20.ShowModal;

end;

procedure TForm13.sButton6Click(Sender: TObject);

begin

Form22.Image1.Picture:=Form13.Image2.Picture;

Form22.ShowModal;

end;

procedure TForm13.sButton7Click(Sender: TObject);

begin

if sDBText1.Caption='Лишён ВУ'

Then

begin

Form23.sDBText11.Visible:=True;

Form23.sLabel12.Visible:=True;

Form23.Image1.Picture:=Form13.Image1.Picture;

Form23.Print;

end

Else begin

Form23.sLabel12.Visible:=False;

Form23.sDBText11.Visible:=False;

Form23.Image1.Picture:=Form13.Image1.Picture;

Form23.Print;

end;

end;

procedure TForm13.sButton8Click(Sender: TObject);

begin

case MessageBox(Handle,'Вы действительно хотите удалить данную за-пись?','Подтверждение удаления',36) of

 6: ADOQuery1.Delete;

 7: ;

end;

end;

procedure TForm13.sEdit1KeyUp(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

if Length(sEdit1.text)>0 then

begin

ADOQuery1.Filtered:=true;

case sCombobox1.ItemIndex of

0:ADOQuery1.Filter:='[ВУ №] LIKE '+''''+sEdit1.Text+'%'+'''';

1:ADOQuery1.Filter:='[ВУ серия] LIKE '+''''+sEdit1.Text+'%'+'''';

2:ADOQuery1.Filter:='[Выдано ГИБДД МВД] LIKE '+''''+sEdit1.Text+'%'+'''';

3:ADOQuery1.Filter:='[Дата выдачи] LIKE '+''''+sEdit1.Text+'%'+'''';

4:ADOQuery1.Filter:='[Дата рождения] LIKE '+''''+sEdit1.Text+'%'+'''';

5:ADOQuery1.Filter:='[Действительно до] LIKE '+''''+sEdit1.Text+'%'+'''';

6:ADOQuery1.Filter:='[Категории] LIKE '+''''+sEdit1.Text+'%'+'''';

7:ADOQuery1.Filter:='[Лишён] LIKE '+''''+sEdit1.Text+'%'+'''';

8:ADOQuery1.Filter:='[Место жительства] LIKE '+''''+sEdit1.Text+'%'+'''';

9:ADOQuery1.Filter:='[Место рождения] LIKE '+''''+sEdit1.Text+'%'+'''';

10:ADOQuery1.Filter:='[Особые отметки] LIKE '+''''+sEdit1.Text+'%'+'''';

11:ADOQuery1.Filter:='[Причина] LIKE '+''''+sEdit1.Text+'%'+'''';

12:ADOQuery1.Filter:='[ФИО] LIKE '+''''+sEdit1.Text+'%'+'''';

end;

end

else ADOQuery1.Filtered:=False;

end;

end.

Unit 15

procedure TForm15.sButton1Click(Sender: TObject);

begin

Form15.Close;

end;

procedure TForm15.sButton2Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sEdit5.Text='') or (sEdit6.Text='') or (sCurrencyEdit1.Text='') then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form5.ADOQuery1.Edit;

Form5.ADOQuery1.FieldByName('ФИО Владельца').AsString:=sEdit1.Text;

Form5.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit2.Text;

Form5.ADOQuery1.FieldByName('Место регистрации ТС').AsString:=sEdit3.Text;

Form5.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit4.Text;

Form5.ADOQuery1.FieldByName('Регистрационный знак').AsString:=sEdit5.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во серия').AsString:=sEdit6.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во №').AsString:=sCurrencyEdit1.Text;

Form5.ADOQuery1.FieldByName('Состояние').AsString:=('Используется');

Form5.ADOQuery1.FieldByName('Особые отметки').AsString:=('');

Form5.ADOQuery1.Post;

SVoreg.Print;

Form15.Close;

end;

end;

end.

Unit 16

procedure TForm16.sButton1Click(Sender: TObject);

var

 Jpg: TJpegImage;

 Stream: TMemoryStream;

 FileExt: string;

 GraphType: TGraphType;

 begin

 if dlgOpenPicture.Execute then

 begin

   Jpg := nil;

   Stream := nil;

   try

   Stream := TMemoryStream.Create;

   FileExt := LowerCase(ExtractFileExt(dlgOpenPicture.FileName));

   if (FileExt = '.bmp') or (FileExt = '.dib') then

   begin

     GraphType := gtBitmap;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Bitmap do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.ico') then

   begin

     GraphType := gtIcon;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Icon do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.emf') or (FileExt = '.wmf') then

   begin

     GraphType := gtMetafile;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Metafile do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.jpg') or (FileExt = '.jpeg') or (FileExt = '.jpe') then

   begin

     Jpg := TJpegImage.Create;

     Jpg.LoadFromFile(dlgOpenPicture.FileName);

     Image1.Picture.Assign(Jpg);

     GraphType := gtJpeg;

     Stream.Write(GraphType, 1);

     Jpg.SaveToStream(Stream);

   end;

   if (Form13.ADOQuery1.State <> dsEdit) and (Form13.ADOQuery1.State <> dsInsert) then

   Form13.ADOQuery1.Edit;

   Form13.ADOQuery1.FieldByName('name_i').AsString := ExtractFile-Name(dlgOpenPicture.FileName);

   Stream.Position := 0;

   TBlob-Field(Form13.ADOQuery1.FieldByName('image_i')).LoadFromStream(Stream);

   Form13.ADOQuery1.Post;

 except

   jpg.Free;

   Stream.Free;

   raise;

 end;

   jpg.Free;

   Stream.Free;

   Form13.ADOQuery1.AfterScroll(Form13.ADOQuery1);

 end;

Form16.Close;

Form21.Print;

 end;

procedure TForm16.FormCreate(Sender: TObject);

begin

sDateEdit2.Text:=DateTimeToStr(Date);

end;

procedure TForm16.sButton2Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sEdit4.Text='')  or (sCurrencyEdit1.Text='0') or (sEdit5.Text='')   or (sEdit6.Text='')   or (sEdit7.Text='')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form13.ADOQuery1.Insert;

Form13.ADOQuery1.FieldByName('ФИО').AsString:=sEdit1.Text;

Form13.ADOQuery1.FieldByName('Дата рождения').AsString:=sDateEdit1.Text;

Form13.ADOQuery1.FieldByName('Место рождения').AsString:=sEdit2.Text;

Form13.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit3.Text;

Form13.ADOQuery1.FieldByName('Выдано ГИБДД МВД').AsString:=sEdit4.Text;

Form13.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit2.Text;

Form13.ADOQuery1.FieldByName('Действительно до').AsString:=sDateEdit3.Text;

Form13.ADOQuery1.FieldByName('Категории').AsString:=sEdit5.Text;

Form13.ADOQuery1.FieldByName('ВУ серия').AsString:=sEdit6.Text;

Form13.ADOQuery1.FieldByName('ВУ №').AsString:=sCurrencyEdit1.Text;

Form13.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit7.Text;

Form13.ADOQuery1.Post;

sButton1.Enabled:=True;

sButton2.Enabled:=False;

ShowMessage ('Водитель успешно зарегистрирован в БД. Вы можете загрузить его фото.')

end;

end;

procedure TForm16.FormShow(Sender: TObject);

var

i: integer;

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsEdit then

TsEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsDateEdit then

TsDateEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsCurrencyEdit then

TsCurrencyEdit(Components[i]).Text := '';

begin

sButton1.Enabled:=False;

end;

end;

end;

end;

procedure TForm16.sButton3Click(Sender: TObject);

begin

Form16.Close;

end;

end.

Unit 18

procedure TForm18.sButton1Click(Sender: TObject);

begin

Form18.Close;

end;

procedure TForm18.sButton2Click(Sender: TObject);

begin

Form5.ADOQuery1.Edit;

Form5.ADOQuery1.FieldByName('Особые отметки').AsString:=('Дубликат');

Form5.ADOQuery1.FieldByName('Выданное св-во серия').AsString:=sEdit1.Text;

Form5.ADOQuery1.FieldByName('Выданное св-во №').AsString:=sCurrencyEdit1.Text;

Form5.ADOQuery1.Post;

SVoreg.Print;

Form18.Close;

end;

end.

Unit 19

procedure TForm19.sButton4Click(Sender: TObject);

begin

If (sEdit1.Text='')

Then

Application.MessageBox('Введите причину лишения!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

Begin

Form13.ADOQuery1.Edit;

Form13.ADOQuery1.FieldByName('Особые отметки').AsString:='Лишён ВУ';

Form13.ADOQuery1.FieldByName('Причина').AsString:=sEdit1.Text;

Form13.ADOQuery1.FieldByName('Лишён').AsString:=sDateEdit1.Text;

Form13.ADOQuery1.FieldByName('Действительно до').AsString:='Лишён ВУ';

Form13.ADOQuery1.Post;

ShowMessage ('Водитель был лишён права управления транспортным средством');

Form19.Close;

end;

end;

procedure TForm19.sButton3Click(Sender: TObject);

begin

Form19.Close;

end;

end.

Unit 20

procedure TForm20.sButton1Click(Sender: TObject);

begin

if (sEdit6.Text='') or (sCurrencyEdit1.Text='') then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form13.ADOQuery1.Edit;

Form13.ADOQuery1.FieldByName('ВУ серия').AsString:=sEdit6.Text;

Form13.ADOQuery1.FieldByName('ВУ №').AsString:=sCurrencyEdit1.Text;

Form13.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit2.Text;

Form13.ADOQuery1.FieldByName('Действительно до').AsString:=sDateEdit3.Text;

Form13.ADOQuery1.FieldByName('Особые отметки').AsString:='';

Form13.ADOQuery1.Post;

Form21.Print;

end;

end;

procedure TForm20.sButton2Click(Sender: TObject);

begin

Form20.Close;

end;

procedure TForm20.FormShow(Sender: TObject);

begin

sDateEdit2.Text:=DateTimeToStr(Date);

end;

procedure TForm20.sButton3Click(Sender: TObject);

begin

if (sEdit6.Text='') or (sCurrencyEdit1.Text='') then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form13.ADOQuery1.Edit;

Form13.ADOQuery1.FieldByName('ВУ серия').AsString:=sEdit6.Text;

Form13.ADOQuery1.FieldByName('ВУ №').AsString:=sCurrencyEdit1.Text;

Form13.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit2.Text;

Form13.ADOQuery1.FieldByName('Действительно до').AsString:=sDateEdit3.Text;

Form13.ADOQuery1.FieldByName('Особые отметки').AsString:='Дубликат ВУ';

Form13.ADOQuery1.Post;

sButton3.Visible:=False;

Form21.Print;

Form20.Close;

end;

end;

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

begin

sButton3.Visible:=False;

end;

procedure TForm20.sCheckBox1Click(Sender: TObject);

begin

if sCheckBox1.Checked then begin

sEdit6.Text:=Form13.sDBText3.Caption;

sCurrencyEdit1.Text:=Form13.sDBText4.Caption;

sEdit6.Enabled:=false;

sCurrencyEdit1.Enabled:=false;

end

else

begin

sCurrencyEdit1.Enabled:=true;

sCurrencyEdit1.Text:='';

sEdit6.Enabled:=true;

sEdit6.Text:='';

end;

end;

end.

Unit 21

procedure TForm21.FormCreate(Sender: TObject);

begin

Form21.Image1.Picture:=Form13.Image1.Picture;

end;

end.

Unit 22

procedure TForm22.sButton3Click(Sender: TObject);

begin

Form22.Close;

end;

procedure TForm22.FormCreate(Sender: TObject);

begin

sEdit1.Text:=Form13.sDBText12.Caption;

sEdit2.Text:=Form13.sDBText8.Caption;

sEdit3.Text:=Form13.sDBText7.Caption;

sEdit4.Text:=Form13.sDBText9.Caption;

sEdit5.Text:=Form13.sDBText6.Caption;

sEdit6.Text:=Form13.sDBText3.Caption;

sEdit7.Text:=Form13.sDBText5.Caption;

sDateEdit1.Text:=Form13.sDBText10.Caption;

sDateEdit2.Text:=Form13.sDBText2.Caption;

sEdit8.Text:=Form13.sDBText1.Caption;

sCurrencyEdit1.Text:=Form13.sDBText4.Caption;

Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

procedure TForm22.FormShow(Sender: TObject);

begin

Image1.Picture:=Form13.Image1.Picture;

end;

procedure TForm22.Image1Click(Sender: TObject);

begin

QBig.Image1.Picture:=Image1.Picture;

QBig.Show;

end;

procedure TForm22.sButton1Click(Sender: TObject);

var

 Jpg: TJpegImage;

 Stream: TMemoryStream;

 FileExt: string;

 GraphType: TGraphType;

 begin

 if dlgOpenPicture.Execute then

 begin

   Jpg := nil;

   Stream := nil;

   try

   Stream := TMemoryStream.Create;

   FileExt := LowerCase(ExtractFileExt(dlgOpenPicture.FileName));

   if (FileExt = '.bmp') or (FileExt = '.dib') then

   begin

     GraphType := gtBitmap;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Bitmap do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.ico') then

   begin

     GraphType := gtIcon;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Icon do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.emf') or (FileExt = '.wmf') then

   begin

     GraphType := gtMetafile;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Metafile do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.jpg') or (FileExt = '.jpeg') or (FileExt = '.jpe') then

   begin

     Jpg := TJpegImage.Create;

     Jpg.LoadFromFile(dlgOpenPicture.FileName);

     Image1.Picture.Assign(Jpg);

     GraphType := gtJpeg;

     Stream.Write(GraphType, 1);

     Jpg.SaveToStream(Stream);

   end;

   if (Form13.ADOQuery1.State <> dsEdit) and (Form13.ADOQuery1.State <> dsInsert) then

   Form13.ADOQuery1.Edit;

   Form13.ADOQuery1.FieldByName('name_i').AsString := ExtractFile-Name(dlgOpenPicture.FileName);

   Stream.Position := 0;

   TBlob-Field(Form13.ADOQuery1.FieldByName('image_i')).LoadFromStream(Stream);

   Form13.ADOQuery1.Post;

 except

   jpg.Free;

   Stream.Free;

   raise;

 end;

   jpg.Free;

   Stream.Free;

   Form13.ADOQuery1.AfterScroll(Form13.ADOQuery1);

 end;

end;

procedure TForm22.sButton2Click(Sender: TObject);

begin

Form13.ADOQuery1.Edit;

Form13.ADOQuery1.FieldByName('ФИО').AsString:=sEdit1.Text;

Form13.ADOQuery1.FieldByName('Дата рождения').AsString:=sDateEdit1.Text;

Form13.ADOQuery1.FieldByName('Место рождения').AsString:=sEdit2.Text;

Form13.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit3.Text;

Form13.ADOQuery1.FieldByName('Выдано ГИБДД МВД').AsString:=sEdit4.Text;

Form13.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit2.Text;

Form13.ADOQuery1.FieldByName('Действительно до').AsString:=sEdit8.Text;

Form13.ADOQuery1.FieldByName('Категории').AsString:=sEdit5.Text;

Form13.ADOQuery1.FieldByName('ВУ серия').AsString:=sEdit6.Text;

Form13.ADOQuery1.FieldByName('ВУ №').AsString:=sCurrencyEdit1.Text;

Form13.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit7.Text;

Form13.ADOQuery1.Post;

end;

end.

Unit 24

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

begin

Form2.Show;

end;

procedure TForm24.sButton1Click(Sender: TObject);

begin

Form24.Close;

end;

procedure TForm24.sButton2Click(Sender: TObject);

begin

Form25.ShowModal;

end;

procedure TForm24.sButton3Click(Sender: TObject);

begin

ShowMessage('Штраф был успешно погашен (оплачен).');

ADOQuery1.Edit;

ADOQuery1.FieldByName('Статус').AsString:='Погашен';

ADOQuery1.Post;

end;

procedure TForm24.sButton4Click(Sender: TObject);

begin

case MessageBox(Handle,'Вы действительно хотите удалить данную за-пись?','Подтверждение удаления',36) of

 6: ADOQuery1.Delete;

 7: ;

end;

end;

procedure TForm24.sButton5Click(Sender: TObject);

begin

Form36.ShowModal;

end;

procedure TForm24.sEdit1KeyUp(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

if Length(sEdit1.text)>0 then

begin

ADOQuery1.Filtered:=true;

case sCombobox1.ItemIndex of

0:ADOQuery1.Filter:='[ВУ серия и №] LIKE '+''''+sEdit1.Text+'%'+'''';

1:ADOQuery1.Filter:='[Выдано ГИБДД МВД] LIKE '+''''+sEdit1.Text+'%'+'''';

2:ADOQuery1.Filter:='[Дата выдачи ВУ] LIKE '+''''+sEdit1.Text+'%'+'''';

3:ADOQuery1.Filter:='[Дата и время] LIKE '+''''+sEdit1.Text+'%'+'''';

4:ADOQuery1.Filter:='[Дата рождения] LIKE '+''''+sEdit1.Text+'%'+'''';

5:ADOQuery1.Filter:='[Инспектор] LIKE '+''''+sEdit1.Text+'%'+'''';

6:ADOQuery1.Filter:='[Категории] LIKE '+''''+sEdit1.Text+'%'+'''';

7:ADOQuery1.Filter:='[Место] LIKE '+''''+sEdit1.Text+'%'+'''';

8:ADOQuery1.Filter:='[Причина] LIKE '+''''+sEdit1.Text+'%'+'''';

9:ADOQuery1.Filter:='[Размер] LIKE '+''''+sEdit1.Text+'%'+'''';

10:ADOQuery1.Filter:='[Статус] LIKE '+''''+sEdit1.Text+'%'+'''';

11:ADOQuery1.Filter:='[ФИО] LIKE '+''''+sEdit1.Text+'%'+'''';

end;

end

else ADOQuery1.Filtered:=False;

end;

end.

Unit 25

procedure TForm25.sButton2Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sEdit4.Text='')  or (sEdit5.Text='')   or (sEdit6.Text='')   or (sEdit7.Text='')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form24.ADOQuery1.Insert;

Form24.ADOQuery1.FieldByName('ФИО').AsString:=sEdit1.Text;

Form24.ADOQuery1.FieldByName('Дата рождения').AsString:=sDateEdit1.Text;

Form24.ADOQuery1.FieldByName('Выдано ГИБДД МВД').AsString:=sEdit3.Text;

Form24.ADOQuery1.FieldByName('Дата выдачи ВУ').AsString:=sDateEdit2.Text;

Form24.ADOQuery1.FieldByName('Категории').AsString:=sEdit4.Text;

Form24.ADOQuery1.FieldByName('ВУ серия и №').AsString:=sEdit2.Text;

Form24.ADOQuery1.FieldByName('Причина').AsString:=sMemo1.Text;

Form24.ADOQuery1.FieldByName('Дата и время').AsString:=sMaskEdit1.Text;

Form24.ADOQuery1.FieldByName('Место').AsString:=sEdit6.Text;

Form24.ADOQuery1.FieldByName('Размер').AsString:=sEdit7.Text;

Form24.ADOQuery1.FieldByName('Статус').AsString:='Неоплачено';

Form24.ADOQuery1.FieldByName('Инспектор').AsString:=sEdit5.Text;

Form24.ADOQuery1.Post;

Form25.Close;

end

end;

procedure TForm25.sButton1Click(Sender: TObject);

begin

Form25.Close;

end;

end.

Unit 26

procedure TForm26.sButton1Click(Sender: TObject);

begin

Form27.ShowModal;

end;

procedure TForm26.sButton3Click(Sender: TObject);

begin

Form26.Close;

end;

procedure TForm26.sButton2Click(Sender: TObject);

begin

Form29.ShowModal;

end;

procedure TForm26.sButton4Click(Sender: TObject);

begin

Form30.ShowModal;

end;

procedure TForm26.sButton5Click(Sender: TObject);

begin

case MessageBox(Handle,'Вы действительно хотите удалить данную за-пись?','Подтверждение удаления',36) of

 6: ADOQuery1.Delete;

 7: ;

end;

end;

procedure TForm26.sButton6Click(Sender: TObject);

begin

Form31.ShowModal;

end;

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

begin

Form2.Show;

end;

procedure TForm26.sEdit1KeyUp(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

if Length(sEdit1.text)>0 then

begin

ADOQuery1.Filtered:=true;

case sCombobox1.ItemIndex of

0:ADOQuery1.Filter:='[Адрес] LIKE '+''''+sEdit1.Text+'%'+'''';

1:ADOQuery1.Filter:='[Дата выдачи] LIKE '+''''+sEdit1.Text+'%'+'''';

2:ADOQuery1.Filter:='[Директор] LIKE '+''''+sEdit1.Text+'%'+'''';

3:ADOQuery1.Filter:='[Категории] LIKE '+''''+sEdit1.Text+'%'+'''';

4:ADOQuery1.Filter:='[Лицензия №] LIKE '+''''+sEdit1.Text+'%'+'''';

5:ADOQuery1.Filter:='[Наименование] LIKE '+''''+sEdit1.Text+'%'+'''';

6:ADOQuery1.Filter:='[Срок действия] LIKE '+''''+sEdit1.Text+'%'+'''';

end;

end

else ADOQuery1.Filtered:=False;

end;

end.

Unit 27

procedure TForm27.sButton1Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sComboBox1.Text='') or (sDateEdit1.Text='') or (sCurrencyEdit1.Text='0')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form26.ADOQuery1.Insert;

Form26.ADOQuery1.FieldByName('Наименование').AsString:=sEdit1.Text;

Form26.ADOQuery1.FieldByName('Директор').AsString:=sEdit2.Text;

Form26.ADOQuery1.FieldByName('Адрес').AsString:=sEdit3.Text;

Form26.ADOQuery1.FieldByName('Лицензия №').AsString:=sCurrencyEdit1.Text;

Form26.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit1.Text;

Form26.ADOQuery1.FieldByName('Срок действия').AsString:=sComboBox1.Text;

Form26.ADOQuery1.FieldByName('Категории').AsString:=sEdit6.Text;

Form26.ADOQuery1.Post;

Form28.Print;

Form27.Close;

end

end;

procedure TForm27.FormShow(Sender: TObject);

var

i: integer;

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsEdit then

TsEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsComboBox then

TsComboBox(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsCurrencyEdit then

TsCurrencyEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsDateEdit then

TsDateEdit(Components[i]).Text := '';

begin

sDateEdit1.Text:=DateTimeToStr(Date);

end;

end;

end;

end;

end;

procedure TForm27.sButton2Click(Sender: TObject);

begin

Form27.Close;

end;

end.

Unit 29

procedure TForm29.FormShow(Sender: TObject);

var

i: integer;

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsEdit then

TsEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsDateEdit then

TsDateEdit(Components[i]).Text := '';

begin

sDateEdit1.Text:=DateTimeToStr(Date);

end;

end;

end;

procedure TForm29.sButton1Click(Sender: TObject);

begin

If (sCurrencyEdit1.Text='0')

Then begin

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

end

else

begin

Form26.ADOQuery1.Edit;

Form26.ADOQuery1.FieldByName('Лицензия №').AsString:=sCurrencyEdit1.Text;

Form26.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit1.Text;

Form26.ADOQuery1.FieldByName('Срок действия').AsString:=sComboBox1.Text;

Form26.ADOQuery1.Post;

Form29.Close;

ShowMessage ('Операция успешно выполнена');

Form28.Print;

end;

end;

procedure TForm29.sButton2Click(Sender: TObject);

begin

Form29.Close;

end;

end.

Unit 30

procedure TForm30.sButton1Click(Sender: TObject);

begin

Form26.ADOQuery1.Edit;

Form26.ADOQuery1.FieldByName('Срок действия').AsString:=('Лишена');

Form26.ADOQuery1.Post;

Form30.Close;

end;

procedure TForm30.sButton2Click(Sender: TObject);

begin

Form30.Close;

end;

end.

Unit 31

procedure TForm31.sButton1Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sComboBox1.Text='') or (sDateEdit1.Text='') or (sCurrencyEdit1.Text='0')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form26.ADOQuery1.Edit;

Form26.ADOQuery1.FieldByName('Наименование').AsString:=sEdit1.Text;

Form26.ADOQuery1.FieldByName('Директор').AsString:=sEdit2.Text;

Form26.ADOQuery1.FieldByName('Адрес').AsString:=sEdit3.Text;

Form26.ADOQuery1.FieldByName('Лицензия №').AsString:=sCurrencyEdit1.Text;

Form26.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit1.Text;

Form26.ADOQuery1.FieldByName('Срок действия').AsString:=sComboBox1.Text;

Form26.ADOQuery1.FieldByName('Категории').AsString:=sEdit6.Text;

Form26.ADOQuery1.Post;

Form31.Close;

ShowMessage ('Изменения произведены')

end

end;

procedure TForm31.FormShow(Sender: TObject);

begin

sEdit1.Text:=Form26.sDBText1.Caption;

sEdit2.Text:=Form26.sDBText2.Caption;

sEdit3.Text:=Form26.sDBText3.Caption;

sCurrencyEdit1.Text:=Form26.sDBText4.Caption;

sDateEdit1.Text:=Form26.sDBText7.Caption;

sComboBox1.Text:=Form26.sDBText5.Caption;

sEdit6.Text:=Form26.sDBText6.Caption;

end;

procedure TForm31.sButton2Click(Sender: TObject);

begin

Form31.Close;

end;

end.

Unit 32

procedure TForm32.sButton1Click(Sender: TObject);

begin

Form32.Close;

end;

procedure TForm32.sButton2Click(Sender: TObject);

begin

Form33.ShowModal;

end;

procedure TForm32.sButton3Click(Sender: TObject);

begin

Form34.sButton1.Visible:=false;

Form34.sButton2.Visible:=false;

Form34.Print;

end;

procedure TForm32.sButton4Click(Sender: TObject);

begin

Form34.ShowModal;

Form34.sButton1.Visible:=true;

Form34.sButton2.Visible:=true;

end;

procedure TForm32.sButton5Click(Sender: TObject);

begin

case MessageBox(Handle,'Вы действительно хотите удалить данную за-пись?','Подтверждение удаления',36) of

 6: ADOQuery1.Delete;

 7: ;

end;

end;

procedure TForm32.sButton6Click(Sender: TObject);

begin

ADOQuery1.Edit;

ADOQuery1.FieldByName('Статус').AsString:=('Проведено');

ADOQuery1.Post;

end;

procedure TForm32.sButton7Click(Sender: TObject);

begin

ADOQuery1.Edit;

ADOQuery1.FieldByName('Статус').AsString:=('Проводится');

ADOQuery1.Post;

end;

procedure TForm32.sButton8Click(Sender: TObject);

begin

Form35.ShowModal;

end;

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

begin

Form2.Show;

end;

procedure TForm32.sEdit1KeyUp(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

if Length(sEdit1.text)>0 then

begin

ADOQuery1.Filtered:=true;

case sCombobox1.ItemIndex of

0:ADOQuery1.Filter:='[Дата начала] LIKE '+''''+sEdit1.Text+'%'+'''';

1:ADOQuery1.Filter:='[Дата окончания] LIKE '+''''+sEdit1.Text+'%'+'''';

2:ADOQuery1.Filter:='[Запланированные работы] LIKE '+''''+sEdit1.Text+'%'+'''';

3:ADOQuery1.Filter:='[Место] LIKE '+''''+sEdit1.Text+'%'+'''';

4:ADOQuery1.Filter:='[Название] LIKE '+''''+sEdit1.Text+'%'+'''';

5:ADOQuery1.Filter:='[Ответственный] LIKE '+''''+sEdit1.Text+'%'+'''';

6:ADOQuery1.Filter:='[Статус] LIKE '+''''+sEdit1.Text+'%'+'''';

end;

end

else ADOQuery1.Filtered:=False;

end;

end.

Unit 33

procedure TForm33.sButton1Click(Sender: TObject);

begin

Form33.Close;

end;

procedure TForm33.sButton2Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sDateEdit1.Text='')  or (sDateEdit2.Text='') Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form32.ADOQuery1.Insert;

Form32.ADOQuery1.FieldByName('Название').AsString:=sEdit1.Text;

Form32.ADOQuery1.FieldByName('Дата начала').AsString:=sDateEdit1.Text;

Form32.ADOQuery1.FieldByName('Дата окончания').AsString:=sDateEdit2.Text;

Form32.ADOQuery1.FieldByName('Запланированные работы').AsString:=Memo1.Text;

Form32.ADOQuery1.FieldByName('Место').AsString:=sEdit2.Text;

Form32.ADOQuery1.FieldByName('Статус').AsString:=('Не проведено');

Form32.ADOQuery1.FieldByName('Ответственный').AsString:=sEdit3.Text;

Form32.ADOQuery1.Post;

Form33.Close;

Form34.Print;

ShowMessage('Мероприятие зарегистрировано. Предупредите ответственных сотрудников.')

end

end;

procedure TForm33.FormShow(Sender: TObject);

var

i: integer;

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsEdit then

TsEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsDateEdit then

TsDateEdit(Components[i]).Text := '';

begin

Memo1.Text:='';

end;

end;

end;

end.

Unit 34

procedure TForm34.sButton1Click(Sender: TObject);

begin

Form34.Close;

end;

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

begin

sButton1.Visible:=false;

end;

procedure TForm34.sButton2Click(Sender: TObject);

begin

sButton1.Visible:=false;

sButton2.Visible:=false;

Form34.Print;

Form34.Close;

end;

end.

Unit 35

procedure TForm35.sButton2Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sDateEdit1.Text='')  or (sDateEdit2.Text='') Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form32.ADOQuery1.Edit;

Form32.ADOQuery1.FieldByName('Дата начала').AsString:=sDateEdit1.Text;

Form32.ADOQuery1.FieldByName('Дата окончания').AsString:=sDateEdit2.Text;

Form32.ADOQuery1.FieldByName('Запланированные работы').AsString:=Memo1.Text;

Form32.ADOQuery1.FieldByName('Место').AsString:=sEdit2.Text;

Form32.ADOQuery1.FieldByName('Ответственный').AsString:=sEdit3.Text;

Form32.ADOQuery1.Post;

Form35.Close;

end;

end;

procedure TForm35.FormShow(Sender: TObject);

begin

sEdit1.Text:=Form32.sDBText1.Caption;

sDateEdit1.Text:=Form32.sDBText3.Caption;

sDateEdit2.Text:=Form32.sDBText4.Caption;

Memo1.Text:=Form32.sDBMemo1.Text;

sEdit2.Text:=Form32.sDBText5.Caption;

sEdit3.Text:=Form32.sDBText2.Caption;

end;

procedure TForm35.sButton1Click(Sender: TObject);

begin

Form35.Close;

end;

end.

Unit 36

procedure TForm36.sButton2Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sEdit2.Text='') or (sEdit3.Text='') or (sEdit4.Text='')  or (sEdit5.Text='')   or (sEdit6.Text='')   or (sEdit7.Text='')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form24.ADOQuery1.Edit;

Form24.ADOQuery1.FieldByName('ФИО').AsString:=sEdit1.Text;

Form24.ADOQuery1.FieldByName('Дата рождения').AsString:=sDateEdit1.Text;

Form24.ADOQuery1.FieldByName('Выдано ГИБДД МВД').AsString:=sEdit3.Text;

Form24.ADOQuery1.FieldByName('Дата выдачи ВУ').AsString:=sDateEdit1.Text;

Form24.ADOQuery1.FieldByName('Категории').AsString:=sEdit4.Text;

Form24.ADOQuery1.FieldByName('ВУ серия и №').AsString:=sEdit2.Text;

Form24.ADOQuery1.FieldByName('Причина').AsString:=sMemo1.Text;

Form24.ADOQuery1.FieldByName('Дата и время').AsString:=sMaskEdit1.Text;

Form24.ADOQuery1.FieldByName('Место').AsString:=sEdit6.Text;

Form24.ADOQuery1.FieldByName('Размер').AsString:=sEdit7.Text;

Form24.ADOQuery1.FieldByName('Инспектор').AsString:=sEdit5.Text;

Form24.ADOQuery1.Post;

Form25.Close;

end

end;

procedure TForm36.FormShow(Sender: TObject);

begin

sEdit1.Text:=Form24.sDBText2.Caption;

sDateEdit1.Text:=Form24.sDBText3.Caption;;

sEdit3.Text:=Form24.sDBText5.Caption;;

sDateEdit2.Text:=Form24.sDBText11.Caption;;

sEdit4.Text:=Form24.sDBText6.Caption;;

sEdit2.Text:=Form24.sDBText4.Caption;;

sMemo1.Text:=Form24.sDBText1.Caption;;

sMaskEdit1.Text:=Form24.sDBText10.Caption;;

sEdit6.Text:=Form24.sDBText12.Caption;;

sEdit7.Text:=Form24.sDBText8.Caption;;

sEdit5.Text:=Form24.sDBText7.Caption;;

end;

procedure TForm36.sButton1Click(Sender: TObject);

begin

Form36.Close;

end;

end.

Unit 37

procedure TForm37.FormCreate(Sender: TObject);

begin

 Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

procedure TForm37.ADOQuery1AfterScroll(DataSet: TDataSet);

var

 Stream: TMemoryStream;

 Jpg: TJpegImage;

 GraphType: TGraphType;

begin

 Jpg := nil;

 Stream := nil;

 try

   Stream := TMemoryStream.Create;

   TBlobField(ADOQuery1.FieldByName('image_i')).SaveToStream(Stream);

   if Stream.Size > 0 then

   begin

     Stream.Position := 0;

     Stream.Read(GraphType, 1);

     case GraphType of

       gtBitmap:   Image1.Picture.Bitmap.LoadFromStream(Stream);

       gtIcon:     Image1.Picture.Icon.LoadFromStream(Stream);

       gtMetafile: Image1.Picture.Metafile.LoadFromStream(Stream);

       gtJpeg:

       begin

         Jpg := TJpegImage.Create;

         Jpg.LoadFromStream(Stream);

         Image1.Picture.Assign(Jpg);

       end

       else

         Image1.Picture.Assign(nil);  // Clear the image

     end;

   end

   else

     Image1.Picture.Assign(nil);

 except

   Image1.Picture.Assign(nil);

 end;

 jpg.Free;

 Stream.Free;

end;

procedure TForm37.sButton1Click(Sender: TObject);

begin

Form37.Close;

end;

procedure TForm37.Image1Click(Sender: TObject);

begin

QBig.Image1.Picture:=Image1.Picture;

QBig.ShowModal;

end;

procedure TForm37.sButton2Click(Sender: TObject);

begin

Form38.ShowModal;

end;

procedure TForm37.sButton8Click(Sender: TObject);

begin

case MessageBox(Handle,'Вы действительно хотите удалить данную за-пись?','Подтверждение удаления',36) of

 6: ADOQuery1.Delete;

 7: ;

end;

end;

procedure TForm37.sButton5Click(Sender: TObject);

begin

Form39.ShowModal;

end;

procedure TForm37.sButton10Click(Sender: TObject);

begin

Form40.ShowModal;

end;

procedure TForm37.sButton4Click(Sender: TObject);

begin

Form41.ShowModal;

end;

procedure TForm37.sButton3Click(Sender: TObject);

begin

ADOQuery1.Edit;

ADOQuery1.FieldByName('Состояние').AsString:='Уволен';

ADOQuery1.FieldByName('Особые отметки').AsString:='Уволен';

ADOQuery1.Post;

ShowMessage ('Сотрудник был сокращён. Не забудьте вернуть ему документы, забрать удостоверение и инвентарь.')

end;

procedure TForm37.DataSource1DataChange(Sender: TObject; Field: TField);

begin

If (sDBText8.Caption='На больничном') or (sDBText8.Caption='В отпуске') Then begin

sButton4.Enabled:=False;

sButton5.Enabled:=False;

sButton10.Enabled:=False;

sButton3.Enabled:=False;

sButton11.Enabled:=True;

end;

begin

If (sDBText8.Caption='Работает') then begin

sButton4.Enabled:=True;

sButton5.Enabled:=True;

sButton10.Enabled:=True;

sButton3.Enabled:=True;

sButton11.Enabled:=False;

end;

begin

If (sDBText8.Caption='Уволен') then begin

sButton4.Enabled:=False;

sButton5.Enabled:=False;

sButton10.Enabled:=False;

sButton3.Enabled:=False;

sButton11.Enabled:=False;

end;

end;

end;

end;

procedure TForm37.sButton9Click(Sender: TObject);

begin

If (sDBText8.Caption='На больничном') or (sDBText8.Caption='В отпуске') Then begin

Form42.sDBText13.Visible:=True;

Form42.sLabel17.Visible:=True;

Form42.sButton1.Visible:=True;

Form42.sButton2.Visible:=True;

Form42.Image1.Picture:=Image1.Picture;

Form42.Show;

end

else

begin

Form42.sDBText13.Visible:=False;

Form42.sLabel17.Visible:=False;

Form42.sButton1.Visible:=True;

Form42.sButton2.Visible:=True;

Form42.Image1.Picture:=Image1.Picture;

Form42.Show;

end;

end;

procedure TForm37.sButton7Click(Sender: TObject);

begin

If (sDBText8.Caption='На больничном') or (sDBText8.Caption='В отпуске') Then begin

Form42.sDBText13.Visible:=True;

Form42.sLabel17.Visible:=True;

Form42.sButton1.Visible:=False;

Form42.sButton2.Visible:=False;

Form42.Image1.Picture:=Image1.Picture;

Form42.Print;

end

else

begin

Form42.sDBText13.Visible:=False;

Form42.sLabel17.Visible:=False;

Form42.sButton1.Visible:=False;

Form42.sButton2.Visible:=False;

Form42.Image1.Picture:=Image1.Picture;

Form42.Print;

end;

end;

procedure TForm37.sButton6Click(Sender: TObject);

begin

Form43.SHowModal;

Form43.Image1.Picture:=Image1.Picture;

end;

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

begin

Form2.Show;

end;

procedure TForm37.sButton11Click(Sender: TObject);

begin

ADOQuery1.Edit;

ADOQuery1.FieldByName('Состояние').AsString:='Работает';

ADOQuery1.Post;

ShowMessage('Сотрудник приступил к работе.');

end;

procedure TForm37.sEdit1KeyUp(Sender: TObject; var Key: Word;

 Shift: TShiftState);

begin

if Length(sEdit1.text)>0 then

begin

ADOQuery1.Filtered:=true;

case sCombobox1.ItemIndex of

0:ADOQuery1.Filter:='[№] LIKE '+''''+sEdit1.Text+'%'+'''';

1:ADOQuery1.Filter:='[Дата выдачи] LIKE '+''''+sEdit1.Text+'%'+'''';

2:ADOQuery1.Filter:='[Дата приёма] LIKE '+''''+sEdit1.Text+'%'+'''';

3:ADOQuery1.Filter:='[Дата рождения] LIKE '+''''+sEdit1.Text+'%'+'''';

4:ADOQuery1.Filter:='[Документ об образовании] LIKE '+''''+sEdit1.Text+'%'+'''';

5:ADOQuery1.Filter:='[Должность] LIKE '+''''+sEdit1.Text+'%'+'''';

6:ADOQuery1.Filter:='[Кем выдан) №] LIKE '+''''+sEdit1.Text+'%'+'''';

7:ADOQuery1.Filter:='[Место жительства] LIKE '+''''+sEdit1.Text+'%'+'''';

8:ADOQuery1.Filter:='[Образование] LIKE '+''''+sEdit1.Text+'%'+'''';

9:ADOQuery1.Filter:='[Особые отметки] LIKE '+''''+sEdit1.Text+'%'+'''';

10:ADOQuery1.Filter:='[Отпуск] LIKE '+''''+sEdit1.Text+'%'+'''';

11:ADOQuery1.Filter:='[Серия] LIKE '+''''+sEdit1.Text+'%'+'''';

12:ADOQuery1.Filter:='[Состояние] LIKE '+''''+sEdit1.Text+'%'+'''';

13:ADOQuery1.Filter:='[Телефон] LIKE '+''''+sEdit1.Text+'%'+'''';

14:ADOQuery1.Filter:='[Удостоверение] LIKE '+''''+sEdit1.Text+'%'+'''';

15:ADOQuery1.Filter:='[ФИО] LIKE '+''''+sEdit1.Text+'%'+'''';

end;

end

else ADOQuery1.Filtered:=False;

end;

end.

Unit 38

procedure TForm38.sButton1Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sCurrencyEdit3.Text='0') or (sEdit2.Text='') or (sEdit3.Text='') or (sEdit4.Text='')  or (sCurrencyEdit1.Text='0') or (sEdit6.Text='') or (sCurrencyEdit2.Text='0')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form37.ADOQuery1.Insert;

Form37.ADOQuery1.FieldByName('ФИО').AsString:=sEdit1.Text;

Form37.ADOQuery1.FieldByName('Дата рождения').AsString:=sDateEdit1.Text;

Form37.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit2.Text;

Form37.ADOQuery1.FieldByName('Телефон').AsString:=sCurrencyEdit1.Text;

Form37.ADOQuery1.FieldByName('Образование').AsString:=sComboBox1.Text;

Form37.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit2.Text;

Form37.ADOQuery1.FieldByName('Документ об образовании').AsString:=sComboBox2.Text;

Form37.ADOQuery1.FieldByName('Кем выдан').AsString:=sEdit4.Text;

Form37.ADOQuery1.FieldByName('Серия').AsString:=sEdit3.Text;

Form37.ADOQuery1.FieldByName('№').AsString:=sCurrencyEdit2.Text;

Form37.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit5.Text;

Form37.ADOQuery1.FieldByName('Должность').AsString:=sEdit6.Text;

Form37.ADOQuery1.FieldByName('Удостоверение').AsString:=sCurrencyEdit3.Text;

Form37.ADOQuery1.FieldByName('Состояние').AsString:='Работает';

Form37.ADOQuery1.FieldByName('Дата приёма').AsString:=sDateEdit2.Text;

Form37.ADOQuery1.Post;

sButton1.Enabled:=False;

sButton2.Enabled:=True;

ShowMessage ('Вы успешно зарегистрировали сотрудника в БД. Вы можете загрузить его фото.')

end;

end;

procedure TForm38.sButton3Click(Sender: TObject);

begin

Form38.Close;

end;

procedure TForm38.FormShow(Sender: TObject);

var

i: integer;

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsEdit then

TsEdit(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsComboBox then

TsComboBox(Components[i]).Text := '';

begin

for i := 0 to ComponentCount - 1 do

if Components[i] is TsCurrencyEdit then

TsCurrencyEdit(Components[i]).Text := '';

begin

sButton1.Enabled:=True;

sButton2.Enabled:=False;

end;

end;

end;

end;

procedure TForm38.sComboBox1Change(Sender: TObject);

begin

If (sComboBox1.Text='Нет образования') then

begin

sComboBox2.Text:='Нет';

sComboBox2.Enabled:=False;

end

else

begin

sComboBox2.Enabled:=True;

end;

end;

procedure TForm38.sButton2Click(Sender: TObject);

var

 Jpg: TJpegImage;

 Stream: TMemoryStream;

 FileExt: string;

 GraphType: TGraphType;

begin

begin

 if dlgOpenPicture.Execute then

 begin

   Jpg := nil;

   Stream := nil;

   try

   Stream := TMemoryStream.Create;

   FileExt := LowerCase(ExtractFileExt(dlgOpenPicture.FileName));

   if (FileExt = '.bmp') or (FileExt = '.dib') then

   begin

     GraphType := gtBitmap;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Bitmap do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.ico') then

   begin

     GraphType := gtIcon;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Icon do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.emf') or (FileExt = '.wmf') then

   begin

     GraphType := gtMetafile;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Metafile do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.jpg') or (FileExt = '.jpeg') or (FileExt = '.jpe') then

   begin

     Jpg := TJpegImage.Create;

     Jpg.LoadFromFile(dlgOpenPicture.FileName);

     Image1.Picture.Assign(Jpg);

     GraphType := gtJpeg;

     Stream.Write(GraphType, 1);

     Jpg.SaveToStream(Stream);

   end;

   if (Form37.ADOQuery1.State <> dsEdit) and (Form37.ADOQuery1.State <> dsInsert) then

   Form37.ADOQuery1.Edit;

   Form37.ADOQuery1.FieldByName('name_i').AsString := ExtractFile-Name(dlgOpenPicture.FileName);

   Stream.Position := 0;

   TBlob-Field(Form37.ADOQuery1.FieldByName('image_i')).LoadFromStream(Stream);

   Form37.ADOQuery1.Post;

 except

   jpg.Free;

   Stream.Free;

   raise;

 end;

   jpg.Free;

   Stream.Free;

   Form37.ADOQuery1.AfterScroll(Form37.ADOQuery1);

 end;

end;

Form38.Close;

Form44.Image1.Picture:=Form37.Image1.Picture;

Form44.Print;

ShowMessage('Регистрация успешна!')

end;

end.

Unit 39

procedure TForm39.sButton1Click(Sender: TObject);

begin

If (sCurrencyEdit3.Text='0') then

begin

ShowMessage('Неверное значение');

end

else

begin

Form37.ADOQuery1.Edit;

Form37.ADOQuery1.FieldByName('Удостоверение').AsString:=sCurrencyEdit3.Text;

Form37.ADOQuery1.FieldByName('Особые отметки').AsString:='Дубликат свидетельства';

Form37.ADOQuery1.Post;

Form44.Image1.Picture:=Form37.Image1.Picture;

Form44.Print;

Form39.Close;

end;

end;

procedure TForm39.sButton2Click(Sender: TObject);

begin

Form39.Close;

end;

end.

Unit 40

procedure TForm40.sButton1Click(Sender: TObject);

begin

Form40.Close;

end;

procedure TForm40.sButton2Click(Sender: TObject);

begin

Form37.ADOQuery1.Edit;

Form37.ADOQuery1.FieldByName('Отпуск').AsString:=sCurrencyEdit1.Text;

Form37.ADOQuery1.FieldByName('Состояние').AsString:=sComboBox1.Text;

Form37.ADOQuery1.Post;

Form40.Close;

end;

end.

Unit 41

procedure TForm41.sButton1Click(Sender: TObject);

begin

Form41.Close;

end;

procedure TForm41.sButton2Click(Sender: TObject);

begin

Form37.ADOQuery1.Edit;

Form37.ADOQuery1.FieldByName('Должность').AsString:=sEdit1.Text;

Form37.ADOQuery1.Post;

Form41.Close;

ShowMessage ('Должность изменена')

end;

procedure TForm41.FormShow(Sender: TObject);

begin

sEdit1.Text:='';

end;

end.

Unit 42

procedure TForm42.sButton2Click(Sender: TObject);

begin

sButton1.Visible:=False;

sButton2.Visible:=False;

Form42.Print;

Form42.Close;

end;

procedure TForm42.sButton1Click(Sender: TObject);

begin

Form42.Close;

end;

procedure TForm42.FormCreate(Sender: TObject);

begin

Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

procedure TForm42.Image1Click(Sender: TObject);

begin

QBig.Image1.Picture:=Image1.Picture;

QBig.ShowModal;

end;

end.

Unit 43

procedure TForm43.sButton3Click(Sender: TObject);

begin

Form43.Close;

end;

procedure TForm43.sButton1Click(Sender: TObject);

begin

If (sEdit1.Text='') or (sCurrencyEdit3.Text='0') or (sEdit2.Text='') or (sEdit3.Text='') or (sEdit4.Text='')  or (sCurrencyEdit1.Text='0') or (sEdit6.Text='') or (sCurrencyEdit2.Text='0')

Then

Application.MessageBox('Одно или несколько полей незаполнены!', 'Ошибка ввода данных', MB_OK + MB_ICONSTOP)

else

begin

Form37.ADOQuery1.Edit;

Form37.ADOQuery1.FieldByName('ФИО').AsString:=sEdit1.Text;

Form37.ADOQuery1.FieldByName('Дата рождения').AsString:=sDateEdit1.Text;

Form37.ADOQuery1.FieldByName('Место жительства').AsString:=sEdit2.Text;

Form37.ADOQuery1.FieldByName('Телефон').AsString:=sCurrencyEdit1.Text;

Form37.ADOQuery1.FieldByName('Образование').AsString:=sComboBox1.Text;

Form37.ADOQuery1.FieldByName('Дата выдачи').AsString:=sDateEdit2.Text;

Form37.ADOQuery1.FieldByName('Документ об образовании').AsString:=sComboBox2.Text;

Form37.ADOQuery1.FieldByName('Кем выдан').AsString:=sEdit4.Text;

Form37.ADOQuery1.FieldByName('Серия').AsString:=sEdit3.Text;

Form37.ADOQuery1.FieldByName('№').AsString:=sCurrencyEdit2.Text;

Form37.ADOQuery1.FieldByName('Особые отметки').AsString:=sEdit5.Text;

Form37.ADOQuery1.FieldByName('Должность').AsString:=sEdit6.Text;

Form37.ADOQuery1.FieldByName('Удостоверение').AsString:=sCurrencyEdit3.Text;

Form37.ADOQuery1.FieldByName('Дата приёма').AsString:=sDateEdit2.Text;

Form37.ADOQuery1.Post;

ShowMessage ('Изменения успешно сохранены.')

end;

end;

procedure TForm43.FormShow(Sender: TObject);

begin

sEdit1.Text:=Form42.sDBText1.Caption;

sDateEdit1.Text:=Form42.sDBText2.Caption;

sEdit2.Text:=Form42.sDBText3.Caption;

sCurrencyEdit1.Text:=Form42.sDBText4.Caption;

sComboBox1.Text:=Form42.sDBText15.Caption;

sDateEdit2.Text:=Form42.sDBText9.Caption;

sComboBox2.Text:=Form42.sDBText14.Caption;

sEdit4.Text:=Form42.sDBText10.Caption;

sEdit3.Text:=Form42.sDBText12.Caption;

sCurrencyEdit2.Text:=Form42.sDBText11.Caption;

sEdit5.Text:=Form42.sDBText16.Caption;

sEdit6.Text:=Form42.sDBText5.Caption;

sCurrencyEdit3.Text:=Form42.sDBText7.Caption;

end;

procedure TForm43.sButton2Click(Sender: TObject);

var

 Jpg: TJpegImage;

 Stream: TMemoryStream;

 FileExt: string;

 GraphType: TGraphType;

begin

begin

 if dlgOpenPicture.Execute then

 begin

   Jpg := nil;

   Stream := nil;

   try

   Stream := TMemoryStream.Create;

   FileExt := LowerCase(ExtractFileExt(dlgOpenPicture.FileName));

   if (FileExt = '.bmp') or (FileExt = '.dib') then

   begin

     GraphType := gtBitmap;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Bitmap do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.ico') then

   begin

     GraphType := gtIcon;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Icon do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.emf') or (FileExt = '.wmf') then

   begin

     GraphType := gtMetafile;

     Stream.Write(GraphType, 1);

     with Image1.Picture.Metafile do

     begin

       LoadFromFile(dlgOpenPicture.FileName);

       Image1.Picture.Bitmap.SaveToStream(Stream);

     end;

   end

   else

   if (FileExt = '.jpg') or (FileExt = '.jpeg') or (FileExt = '.jpe') then

   begin

     Jpg := TJpegImage.Create;

     Jpg.LoadFromFile(dlgOpenPicture.FileName);

     Image1.Picture.Assign(Jpg);

     GraphType := gtJpeg;

     Stream.Write(GraphType, 1);

     Jpg.SaveToStream(Stream);

   end;

   if (Form37.ADOQuery1.State <> dsEdit) and (Form37.ADOQuery1.State <> dsInsert) then

   Form37.ADOQuery1.Edit;

   Form37.ADOQuery1.FieldByName('name_i').AsString := ExtractFile-Name(dlgOpenPicture.FileName);

   Stream.Position := 0;

   TBlob-Field(Form37.ADOQuery1.FieldByName('image_i')).LoadFromStream(Stream);

   Form37.ADOQuery1.Post;

 except

   jpg.Free;

   Stream.Free;

   raise;

 end;

   jpg.Free;

   Stream.Free;

   Form37.ADOQuery1.AfterScroll(Form37.ADOQuery1);

 end;

end;

Form43.Close;

end;

procedure TForm43.FormCreate(Sender: TObject);

begin

 Image2.Picture.LoadFromFile('Image/nopic.jpg');

end;

procedure TForm43.Image1Click(Sender: TObject);

begin

QBig.Image1.Picture:=Form37.Image1.Picture;

Qbig.ShowModal;

end;

end.

Unit 45

procedure TForm45.sButton1Click(Sender: TObject);

begin

Form1.sSkinManager1.SkinName:=sComboBox1.Text;

end;

procedure TForm45.sCheckBox1Click(Sender: TObject);

begin

If sCheckBox1.Checked then begin

Form1.sSkinManager1.Active:=False;

sButton1.Enabled:=false;

sComboBox1.Enabled:=false;

end

else

begin

Form1.sSkinManager1.Active:=True;

sButton1.Enabled:=True;

sComboBox1.Enabled:=True;

end;

end;

procedure TForm45.sButton2Click(Sender: TObject);

begin

Form45.Close;

end;

end.


Формиров
ание запроса

Д

Конец

Результат запроса

Загрузка

Ожидание действия

Запрос

Ввод данных

Начало

Выход


 

А также другие работы, которые могут Вас заинтересовать

45355. Рекуррентные сети 91.5 KB
  В связи с этим были предприняты попытки дополнить искусственные нейронные сети обратными связями что привело к новым неожиданным результатам. Таким образом под воздействием входных сигналов х1 и х2 на выходе сети в момент времени t вырабатываются сигналы y1t и y2t а в следующий момент времени под воздействием этих сигналов подаваемых на вход вырабатываются новые выходные сигналы y1t1 и y2t1. Для всякой рекуррентной сети может быть построена идентичная сеть без обратных связей с прямым распространением сигнала поэтому для...
45356. Направления исследований в области искусственного интеллекта 30.5 KB
  Второй подход в качестве объекта исследования рассматривает системы искусственного интеллекта. Третий подход ориентирован на создание смешанных человекомашинных или как еще говорят интерактивных интеллектуальных систем на симбиоз возможностей естественного и искусственного интеллекта. Сообщения об уникальных достижениях специалистов в области искусственного интеллекта суливших невиданные возможности пропали со страниц научнопопулярных изданий много лет назад.
45357. Области применения систем искусственного интеллекта 47 KB
  В распознавании образов имеется хорошо разработанный математический аппарат и для не очень сложных объектов разработаны системы классификации по признакам по аналогии и т. Алфавит признаков придумывается разработчиком системы. Экспертные системы Экспертными системами называют сложные программные комплексы аккумулирующие знания специалистов в конкретных предметных областях и тиражирующие этот эмпирический опыт для консультаций менее квалифицированных пользователей. В этом случае говорят что происходит обучение экспертной системы.
45358. Обучение игровых программ 41 KB
  Таким образом накопление позволяет либо экономить время либо достичь лучшего качества игры за то же время путем использования несколько большего дерева. Оно позволяет программе в ходе игры улучшать свои оценивающие функции. Качество игры зависит от подходящего выбора весовых коэффициентов k1 k2 k3 .
45359. Подготовка входных параметров 28 KB
  Естественно что незначимые параметры не следует включать в список параметров входного вектора X. Однако на практике часто бывает трудно и даже невозможно установить какие из параметров предметной области являются значимыми а какие нет. Поэтому на первом этапе в вектор X включают как можно больше параметров избегая только те из них незначимость которых очевидна.
45360. Многообразие образовательных учреждений, их специфика 66 KB
  Учреждения профессионального образования. Прием граждан для получения среднего профессионального высшего профессионального и послевузовского профессионального образования проводится на конкурсной основе по заявлениям граждан. Вне конкурса при условии успешной сдачи вступительных экзаменов в государственные и муниципальные образовательные учреждения среднего профессионального и высшего профессионального образования принимаются: детисироты и дети оставшиеся без попечения родителей; детиинвалиды инвалиды I и II групп которым не...
45361. Школьный класс как малая социальная группа: характеристика, структура, уровни развития. Межличностные отношения и методы их изучения 60.5 KB
  План Признаки коллектива Характеристика класса как ученического коллектива Структура класса Формальная – неформальная Отсутствие структуры складывающаяся структура 2 или более группировок Уровни развития класса стадия 1 2 3 и последующие Межличностные отношения в классе звезды предпочитаемые отвергаемые изолированные Методы изучения межличностных отношений в классе социометрия выявление лидера Признаки коллектива: Общая социально значимая цель. В хорошо организованных коллективах проявляются взаимопомощь и...
45362. Изучение, обобщение и распространение передового педагогического опыта. Анализ опыта учителей-новаторов 39 KB
  Критерии педагогических инноваций Новизна оптимальности результативность массовость 7. Причины нереализованности педагогических новаций. 3 Изменение характера отношения учителей к самому факту освоения и применения педагогических новшеств. Внедрение достижений педагогической науки Инновационная направленность деятельности учителей включает и вторую составляющую внедрение в практическую педагогическую деятельность результатов психологопедагогических исследований.
45363. Диагностика результатов обучения школьников. Проверка и оценка работы школьников в процессе обучения 50.5 KB
  План Диагностика качества обучения определение цель принципы формула Контроль Понятие контроля Виды контроля Формы контроля Методы контроля Требования к контролю Тест как метод контроля Проверка Оценка 1. Принципы диагностирования обученности: Систематичность – разнообразие постоянство форм методов средств контроля. Необходимость контроля на всех этапах обучения. Понятие контроля.