Автоматизированный учет компьютерной техники ООО "СибирьЭнергоАвтоТранс"

 

ВВЕДЕНИЕ


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

Технический отдел занимается обслуживанием и сопровождением компьютерных сетей, сопровождением и дополнением конфигурации программы «1С: Автотранспорт». Также специалисты технического отдела занимаются приемом и вводом в производство компьютерной техники и периферийного оборудования. После поступлении нового оборудования специалисты тестируют, отлаживают и настраивают компьютеры, так как необходимо полностью удовлетворить потребности остальных сотрудников, для эффективной работы предприятия. Без необходимого программного обеспечения, информацию о прибывшем оборудовании приходилось держать в бумажной форме, что осложняло хранение информации.

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

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

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

Операционные системы, используемые при разработке программы: Microsoft Windows 7 (x32).


1. ОСНОВНАЯ ЧАСТЬ


.1 Организационно-экономическая сущность задачи

программа отладка windows delphi

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


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


Необходимо написать программное обеспечение, способное вести учет компьютеров и периферийного оборудования в организации ООО «СибирьЭнергоАвтоТранс».

В программе необходимо предусмотреть следующее:

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

Контроль ввода данных при добавлении информации о компьютерах и -периферии.

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

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

Каскадное удаление и обновление базы данных.

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

Редактирование информации о картриджах при выводе их из эксплуатации на заправку.

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


1.3 Описание входной и выходной информации


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

Структура входной информации представлена в таблицах: 1.3.1-1.3.7.


Таблица 1.3.1 - Структура таблицы пользователей (users)

НазваниеОбозначениеТипДлинаКод пользователяId_userint11Логин пользователяLogin_usersvarchar16Пароль пользователяPassword_usersvarchar16

Таблица 1.3.2 - Структура таблицы участков (uchastok)

НазваниеОбозначениеТипДлинаКод участкаId_uchastokint11Код пользователяId_userint1АдресName_uchvarchar60

Таблица 1.3.3 - Структура таблицы кодов ответственных лиц(ot_male)

НазваниеОбозначениеТипДлинаКод ответственногоId_ot_maleint11Код участкаId_uchastokint11Ф. И. О. ответственногоName_otmalevarchar50ДолжностьDolg_otmalevarchar30

Таблица 1.3.4 - Структура таблицы информации об компьютерах (comp_info)

НазваниеОбозначениеТипДлинаКод компьютераId_compint11Код участкаId_uchastokint11Материнская платаMother_cardvarchar150ПроцессорProcessorvarchar100Оперативная памятьOp_memoryvarchar120ВидеоадаптерVideovarchar150Жесткий дискHDDvarchar100ПриводDrive_diskvarchar100СтатусStatusvarchar10АрендаArendavarchar15Инвентарный номерInv_nomvarchar20Дата вводаDate_indate-Дата выводаDate_outdate-

Таблица 1.3.5 - Структура таблицы истории компьютеров (comp_history)

НазваниеОбозначениеТипДлинаКод записиId_comp_historylint11Код компьютераId_statint11Дата записиDate_zapdatetime-Запись историиcomentblob-

Таблица 1.3.6 - Структура таблицы картриджей (cartg)

НазваниеОбозначениеТипДлинаКод картриджаId_cartgint11Код участкаUch_cartgint11СтатусVrab_cartgvarchar15Название картриджаName_cartgvarchar100Состояние картриджаSost_cartgvarchar15

Таблица 1.3.7 - Структура таблицы истории картриджей (cartg_history)

НазваниеОбозначениеТипДлинаКод записиId_cartg_historyint11Код картриджаId_cartgint11Дата записиDate_zapdatetime-Запись историиOpisblob-

Таблица 1.3.8 - Структура таблицы принтеров (print)

НазваниеОбозначениеТипДлинаКод принтераId_printint11Код участкаId_uchastokint11Название принтераName_printvarchar60СтатусVrab_printvarchar10

Таблица 1.3.9 - Структура таблицы истории принтеров (print_history)

НазваниеОбозначениеТипДлинаКод записиId_print_historyint11Код принтераId_printint11Дата записиData_zapdatetime-Запись историиOpisblob-

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


1.4 Информационная модель решения задачи


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

Информационная модель делится на 4 этапа: приём входной информации; подготовка исходных данных; обработка информации; подготовка выходной информации.

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

В данной выпускной квалификационной работе представлена наиболее распространённая информационная модель - это схема взаимосвязи таблиц по ключевым полям (рис 1.4.1).


Рисунок 1.4.1 - Схема взаимосвязи данных таблиц


1.5 Описание программы и схема взаимосвязи модулей


При решении задач были разработаны следующие модули:.dpr - файл проекта.pas - модуль данных.pas - модуль «Идентификация пользователя».pas - модуль «Главное меню». Данный модуль представлен в блок-схеме 1.6.1

Сomp_info.pas - модуль «Добавление компьютеров».pas - модуль «Изминение компьютера».pas - модуль «Добавление картриджа».pas - модуль «Изминение картриджа».pas - модуль «Изминение принтера».pas - модуль «Добавление участка».pas - модуль «Список ответственных».pas - модуль «Список пользователей».pas - модуль «Вывод отчета по оюорудованию на участке»

Схема взаимосвязи модулей представлена на рисунке 1.5.1.

Тексты модулей представлены в приложении 1 (стр. 33).


Рисунок 1.5.1 - Схема взаимосвязей программных модулей


1.6 Алгоритм решения задачи


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

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

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

Алгоритм решения данной задачи представлен модулем главного меню (MM.pas) в виде блок-схемы на рисунке 1.6.1 (стр. 16).

Дискретность - это свойство алгоритма, когда алгоритм разбивается на конечное число шагов.

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

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

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

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

Рисунок 1.6.1 - Алгоритм выполнения модуля MM.pas


Рис. 1.6.2


1.7 Руководство пользователю по работе с программой


Вход в программу

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


Рисунок 1.7.1


Главное меню

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


Рисунок 1.7.2


Участки

Для ввода нового звонка в главном меню пункт «Справочники», подункт «Участки» или кнопка «+» на главной форме. Эта форма позволяет пользователю увидеть с какими участками он может работать или добавить новый участок (рис 1.7.3). Ввод записи производится путем ввода в поле адрес участка, затем нажатием кнопки «Добавить».


Рисунок 1.7.3


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

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


Рис. 1.7.4


Ответственные лица

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


Рисунок 1.7.5


Рисунок 1.7.6


Информация о компьютере

Для ввода нового компьютера требуется заполнить все поля и нажать кнопку «Сохранить». Если компьютер арендован, необходимо перед сохранением нажать флажок «Аренда». При сохранении нового комрьютера, программа автоматически присваивает компьютеру статус «В работе» (рис 1.7.6).

Изменение информации о компьютере


Рисунок 1.7.7


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

Ввод картриджей

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


Рисунок 1.7.8


Редактирование картриджа

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


Рисунок 1.7.9


Изменение принтеров

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


Рисунок 1.7.10


Вывод оборудования на участке

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


Рисунок 1.7.11


Формирование и экспорт отчётов в EXCEL


Рисунок 1.7.12


В форме на рис. 1.7.11 требуется нажать кнопку «Вывести». Отчёт по оборудованию можно экспортировать как полностью (рис 1.7.12), так и за определенный период (рис 1.7.13).


Рисунок 1.7.13


2. ОПИСАНИЕ ПРОЦЕССА ОТЛАДКИ


2.1 Подготовка и компиляция программы


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

Компилятор выполняет последовательно две задачи:

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

. Создает (генерирует) исполняемую программу - машинный код.

Генерация машинного кода компилятором свидетельствует лишь о том, что в тексте программы нет синтаксических ошибок. Убедиться, что программа работает правильно можно только в процессе ее тестирования - пробных запусках программы и анализе полученных результатов [1].

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

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

Если в программе нет синтаксических ошибок, компилятор создает исполняемый файл программы. Имя исполняемого файла такое же, как и у файла проекта, а расширение - exe. Delphi помещает исполняемый файл в тот же каталог, где находится файл проекта.

При обнаружении в программе неточностей, которые не являются ошибками, компилятор выводит подсказки (Hints) и предупреждения (warnings). Например, наиболее часто выводимой подсказкой является сообщение об объявленной, но не используемой переменной.

Итак, компиляция - это перевод исходного текста к виду, доступному для вычислительной машины, и объединение в одно целое отдельных частей программы. В результате компиляции будет получена программа, находящаяся либо в оперативной памяти машины, либо размещённая в exe - файле на диске [1].


2.2 Тестирование и отладка программы


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

Обычно программа редко сразу начинает работать так, как надо, или работает правильно только на некотором ограниченном наборе исходных данных. Это свидетельствует о том, что в программе есть алгоритмические ошибки. Процесс поиска и устранение ошибок называется отладкой [2].

Интегрированная среда разработки Delphi предоставляет программисту мощное средство поиска и устранения ошибок в программе - отладчик. Отладчик позволяет:

выполнять трассировку программы;

наблюдать значения переменных;

устанавливать точки остановки;

отслеживать происходящие события;

выполнять программу в пошаговом режиме.

Именно это средство и использовалось при отладке данной программы. Этап отладки можно считать законченным, если программа правильно работает на одном - двух наборах входных данных [1].


2.3 Выполнение и контрольный пример


Во время выполнения программы можно столкнуться с множеством проблем. Они могут возникнуть как на этапе проектирования, так и на этапе разработки программного продукта. Основной проблемой является неправильное использование операторов языка, неверное построение алгоритма. Ошибки могут быть разными, как это может быть и некорректное использование свойств компонент, или неправильное задание какого-либо условия, так и многое другое [2].

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

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

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

ошибка при сохранении новой записи в таблице, нарушение целостности первичного ключа;

ошибка при редактировании данных;

некорректное отображение данных при выборе участка или при выборе другой таблицы;

некорректный вывод записей за определенный промежуток времени при формировании отчета.

В настоящее время все ошибки устранены. Результат работы программы представлен в приложении 2 (стр. 78).


3. ПРОГРАММНЫЕ И ТЕХНИЧЕСКИЕ СРЕДСТВА РЕШЕНИЯ ЗАДАЧИ


.1 Описание ASUS K61IC


Программа «Автоматизированный учет компьютерной техники ООО «СибирьЭнергоАвтоТранс»» представленная в данной выпускной квалификационной работе была разработана на компьютере следующей конфигурации:

Процессор: Intel Pentium Dual Core T4300

Оперативная память: DDR2 PC5300 (4096 МГц)

Жесткий диск: 320 Gb

Видеокарта: NvidiaGeForce GT 220MK61IC - это мультимедийный ноутбук среднего класса. От более доступных моделей его выгодно отличает дискретный графический адаптер. Модель не рассчитана на частые перемещения, и скорее подойдет для стационарной домашней эксплуатации. В этом ноутбуке разработчики сделали особенный акцент на графические возможности. Модель оснащена быстрым дискретным видеоадаптером NVIDIA GeForce GT 220M с 1 ГБ памяти. Компьютер работает на базе одного из наиболее распространенных процессоров - Intel Pentium Dual-Core T4300 с частотой 2,1 ГГц. Стандартный объем оперативной памяти составляет 4 ГБ, а емкость винчестера - 320 ГБ. Это в полнее достаточно для ноутбука, на котором может храниться большое количество мультимедийных файлов [11].

Процессор Intel Pentium Dual Core T4300 предлагает хорошую производительность, надежность и имеет исключительную ценность для ноутбуков. Мобильные процессоры Intel обеспечивают производительность, необходимую для запуска самых популярных приложений.

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


3.2 Описание операционной системы Windows 7 Ultimate x86

7 Ultimate x86 - операционная система семейства Windows NT, следующая за Windows Vista. В состав Windows 7 вошли как некоторые разработки, исключённые из Windows Vista, так и новшества в интерфейсе и встроенных программах. Операционная система обладает поддержкой мультитач -управления. Дополнительным преимуществом Windows 7 можно считать более тесную интеграцию с производителями драйверов. Большинство из них определяются автоматически [7].

Минимальные системные требования:

Центральный процессор: Х86 или Х64 с тактовой частотой 1ГГц

Объем оперативной памяти: 1Гб

Объем жесткого диска: 16Гб

Информационный носитель: DVD-ROM

Графический процессор: Адаптер с поддержкой DirectX 9 и 128 Мб памяти

Возможности операционной системы Windows 7:

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

При первом подключении переносного устройства флэш-памяти или другого USB-устройства Windows 7 подготавливает его к работе за считанные секунды. Если данное устройство использовалось ранее, подключение происходит еще быстрее.

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

Операционная система Windows 7 превращает все возможности 64-разрядных компьютеров в новый стандарт для настольных систем [11].


3.3 Описание языка программирования Embarcadero DELPHI 2010


Бурное развитие вычислительной техники, потребность в эффективных средствах разработки программного обеспечения привели к появлению систем программирования, ориентированных на так называемую "быструю разработку", среди которых можно выделить Borland Delphi. В системе быстрой разработки (RAD-систем, Rapid Application Development - среда быстрой разработки приложений) лежит технология визуального проектирования и событийного программирования, суть которой заключается в том, что среда разработки берет на себя большую часть рутинной работы, оставляя программисту работу по конструированию диалоговых окон и функций обработки событий [1].- это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi - строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal [2].Delphi 2010 является одной из наиболее признанных и популярных сред для быстрой разработки приложений. Технология программирования Delphi 2010 значительно ускоряет создание приложений для настольных компьютеров, рабочих станций, сенсорных дисплеев, информационных терминалов и Интернета, при этом не ограничивая разработчика в гибкости, мощности языковых средств или уровне контроля. Приложения, созданные с помощью Delphi 2010, отличаются высочайшим быстродействием и компактностью, а также обладают полнофункциональным пользовательским интерфейсом и способностью подключаться практически к любой базе данных или другому источнику данных, не требуя дополнительной доработки.

Учитывая все эти особенности, для написания данной программы и был выбран объектно-ориентированный язык программировании Delphi [9].


3.4 Описание СУБД MySQL

является собственностью компании Oracle Corporation, получившей её вместе с поглощённой Sun Microsystems, осуществляющей разработку и поддержку приложения. Распространяется под GNU General Public License или под собственной коммерческой лицензией. Помимо этого разработчики создают функциональность по заказу лицензионных пользователей, именно благодаря такому заказу почти в самых ранних версиях появился механизм репликации [7].- решение для малых и средних приложений. Входит в состав серверов WAMP, LAMP и в портативные сборки серверов Денвер, XAMPP. Обычно MySQL используется в качестве сервера, к которому обращаются локальные или удалённые клиенты, однако в дистрибутив входит библиотека внутреннего сервера, позволяющая включать MySQL в автономные программы.

Гибкость СУБД MySQL обеспечивается поддержкой большого количества типов таблиц: пользователи могут выбрать как таблицы типа MyISAM, поддерживающие полнотекстовый поиск, так и таблицы InnoDB, поддерживающие транзакции на уровне отдельных записей. Более того, СУБД MySQL поставляется со специальным типом таблиц EXAMPLE, демонстрирующим принципы создания новых типов таблиц. Благодаря открытой архитектуре и GPL-лицензированию, в СУБД MySQL постоянно появляются новые типы таблиц [8].

В качестве интерфейса программирования доступа к данным была выбрана технология dbExpress. Технология dbExpress представляет собой совокупность драйверов, компонентов, инкапсулирующих соединения, транзакции, запросы и наборы данных, а также интерфейсов, обеспечивающих универсальный доступ к функциям dbExpress. Разработанная компанией Borland, технология dbExpress является наилучшим решением для приложений, в которых необходим быстрый и необременительный просмотр данных серверов SQL [13].


3.5 Описание Microsoft Excel 2007

Excel (также иногда называется Microsoft Office Excel) - программа для работы с электронными таблицами, созданная корпорацией Microsoft для Microsoft Windows, Windows NT и Mac OS. Она предоставляет возможности экономико-статистических расчетов, графические, язык макропрограммирования VBA (Visual Basic для приложений). Microsoft Excel входит в состав Microsoft Office и на сегодняшний день Excel является одним из наиболее популярных приложений в мире [6].позволяет открывать таблицы Excel в ряде других приложений. Это включает в себя открытие документов Excel на веб-страницах с помощью ActiveX или таких плагинов, как Adobe Flash Player.

Ценной возможностью Excel является возможность писать код на основе Visual Basic для приложений (VBA). Этот код пишется с использованием отдельного от таблиц редактора. Управление электронной таблицей осуществляется посредством объектно-ориентированной модели кода и данных. С помощью этого кода данные входных таблиц будут мгновенно обрабатываться и отображаться в таблицах и диаграммах (графиках). Таблица становится интерфейсом кода, позволяя легко работать изменять его и управлять расчётами [7].


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


1.Delphi 2007. Самоучитель/ С.В. Глушаков, А.Л. Клевцов. - изд. 4-е, доп и перераб. - М.: АСТ:АСТ МОСКВА:ХРАНИТЕЛЬ, 2008. - 448с.

.Нестандартные приемы программирования на Delphi . Ревич Ю.В. - М.:BHV, 2005. - 560 с.

.Программирование документов и приложений MS Office в Delphi. Корняков В. - М.:BHV, 2005. - 496с.


ПРИЛОЖЕНИЕ 1


Распечатка текстов программы

Login; - модуль формы «Идентификация пользователя»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DMGL, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls,, Ribbon, Mask, Buttons, IniFiles;= class(TForm): TLabel;: TLabel;: TMaskEdit;: TButton;: TGroupBox;: TLabel;: TEdit;: TLabel;: TMaskEdit;: TMaskEdit;: TLabel;: TBitBtn;: TButton;: TButton;: TDBLookupComboBox;: TLabel;: TEdit;: TLabel;: TButton;: TButton;Button1Click(Sender: TObject);FormCreate(Sender: TObject);BitBtn1Click(Sender: TObject);Button3Click(Sender: TObject);Button2Click(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;: String;: TIniFile;MM;

{$R *.dfm}TForm1.BitBtn1Click(Sender: TObject);: integer;maskedit2.Text=maskedit3.Text then.Users.Close;.Users.Open;datamodule2.Users.Locate('Login_users', edit2.Text, [])=false then:=0;.Users.Refresh;.Users.First;datamodule2.Users.eof=false doi=datamodule2.Users.FieldByName('id_user').AsInteger then:=i+1;.Users.Next;;;.Users.append;.Users.FieldValues['id_user']:=i;.Users.FieldValues['Login_users']:=edit2.Text;.Users.FieldValues['Password_users']:=maskedit2.Text;.Users.Post;.Users.ApplyUpdates(-1);application.MessageBox(pchar('Такой логин уже есть'),'Ошибка',mb_OK);application.MessageBox(pchar('Пароли не совпадают'),'Ошибка',mb_OK);;TForm1.Button1Click(Sender: TObject);.ClientHeight:=302;;TForm1.Button2Click(Sender: TObject);(datamodule2.Users.fieldvalues['Password_users']=maskedit1.Text) then.Cartg.Active:=true;.Print.Active:=true;.Show;.statusbar1.Panels[0].Text:='Пользователь '+datamodule2.Users.FieldByName('Login_users').AsString;.Visible:=false;.DBLookupComboBox1.KeyValue:=0;application.MessageBox(pchar('Неправильно введен логин или пароль'), 'Ошибка идентификации', mb_OK);;TForm1.Button3Click(Sender: TObject);.Close;;TForm1.Button4Click(Sender: TObject);

{datamodule2.SocketConnection1.Host:=edit1.text;.SocketConnection1.ServerName:='ServerPro.ServDM';.SocketConnection1.Connected:=true;datamodule2.SocketConnection1.Connected=true then:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'\connect.ini');.WriteString('SoketConection1','SoketConection1Host',datamodule2.SocketConnection1.Host);.Free;;.Users.Active:=true;.Uchastok.Active:=true;.Ot_male.Active:=true;.Comp_info.Active:=true;.Cartg.Active:=true;.Print.Active:=true;.comp_history.Active:=true;.cartg_history.Active:=true;.print_history.Active:=true; };TForm1.Button5Click(Sender: TObject);.ClientWidth:=442;;TForm1.FormCreate(Sender: TObject);.ClientHeight:=139;;.DMGL; - модуль данных, Classes, DB, DBClient, ShellAnimations, MConnect, SConnect, Menus,, Dialogs, Messages, Windows, StdCtrls, Forms, dateutils, AdoConEd, IniFiles;= class(TDataModule)_DS: TDataSource;_DS: TDataSource;_male_DS: TDataSource;_info_DS: TDataSource;_history_DS: TDataSource;_DS: TDataSource;_history_DS: TDataSource;_DS: TDataSource;_history_DS: TDataSource;: TMainMenu;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TMenuItem;: TClientDataSet;: TClientDataSet;_male: TClientDataSet;_info: TClientDataSet;_history: TClientDataSet;: TClientDataSet;_history: TClientDataSet;: TClientDataSet;_history: TClientDataSet;: TSocketConnection;N7Click(Sender: TObject);N2Click(Sender: TObject);N3Click(Sender: TObject);N9Click(Sender: TObject);N6Click(Sender: TObject);N4Click(Sender: TObject);N5Click(Sender: TObject);N10Click(Sender: TObject);DataModuleCreate(Sender: TObject);SocketConnection1BeforeConnect(Sender: TObject);

{ Private declarations }

{ Public declarations };: TDataModule2;ListUser, ListOtMale, compinfo, AdCartg, Uchastok, VivObor, MM, Login;

{$R *.dfm}TDataModule2.DataModuleCreate(Sender: TObject);connect: string;.Connected:=true;.users.Active:=true;.uchastok.Active:=true;.ot_male.Active:=true;.comp_info.Active:=true;.cartg.Active:=true;.print.Active:=true;.comp_history.Active:=true;.cartg_history.Active:=true;.print_history.Active:=true;;TDataModule2.N10Click(Sender: TObject);.show;;TDataModule2.N2Click(Sender: TObject);: string;: integer;:=inputbox('Название участка', '', '');uchastok<>'' then:=0;.Uchastok.Refresh;.Uchastok.First;datamodule2.Uchastok.eof=false doi=datamodule2.Uchastok.FieldByName('id_uch').AsInteger then:=i+1;.Uchastok.Next;;;.Uchastok.append;.Uchastok.FieldValues['id_uch']:=i;.Uchastok.FieldValues['id_user']:=datamodule2.Users.FieldValues['id_user'];.Uchastok.FieldValues['Name_uch']:=uchastok;.Uchastok.Post;.Uchastok.ApplyUpdates(-1);;;TDataModule2.N3Click(Sender: TObject);name,dolg: string;.show;;TDataModule2.N4Click(Sender: TObject);.comp_info.Show;;TDataModule2.N5Click(Sender: TObject);.Show;;TDataModule2.N6Click(Sender: TObject);: string;, i1, temp: integer;, month, day, hour, minute, second, msec: word;

begin:=inputbox('Введите название принтера', '' ,'');

if name<>'' then:=0;.Print.Filtered:=false;.Print.Refresh;.Print.First;datamodule2.Print.eof=false doi=datamodule2.Print.FieldByName('id_print').AsInteger then:=i+1;.Print.Next;;;.Print.append;.Print.FieldValues['id_print']:=i;.Print.FieldValues['uch_print']:=datamodule2.Uchastok.FieldValues['id_uch'];.Print.FieldValues['name_print']:=name;.Print.FieldValues['vrab_print']:='В работе';.Print.Post;.Print.ApplyUpdates(-1);;:=0;.Print_history.Filtered:=false;.Print_history.Refresh;.Print_history.First;datamodule2.Print_history.eof=false doi=datamodule2.Print_history.FieldByName('id_print_history').AsInteger then:=i+1;.Print_history.Next;;;.Print_history.Append;.Print_history.FieldValues['id_print_history']:=i;.Print_history.FieldValues['id_print']:=datamodule2.Print.FieldValues['id_print'];(date(), year, month, day);(time(),hour,minute,second,msec);.Print_history.FieldValues['data_zap']:=encodedatetime(year, month, day, hour,minute,second,msec);.Print_history.FieldValues['opis']:='Добавлен принтер '+name;.memo1.lines.add(datetostr(datamodule2.Print_history.FieldValues['data_zap'])+' '+timetostr(datamodule2.Print_history.FieldValues['data_zap'])+' '+datamodule2.Print_history.Fieldbyname('opis').AsString);.Print_history.Post;.print_history.ApplyUpdates(-1);;TDataModule2.N7Click(Sender: TObject);.Listusers.Show;;TDataModule2.N9Click(Sender: TObject);.Show;;TDataModule2.SocketConnection1BeforeConnect(Sender: TObject);connect: string;

{con:=TIniFile.Create(ExtractFilePath(ParamStr(0))+'\connect.ini');:=con.ReadString('SocketConnection1','SocketConection1ComputerName',SocketConnection1.Host);.SocketConnection1.Host:=connect;.SocketConnection1.ServerName:='ServerPro.ServDM';.SocketConnection1.Connected:=true;.Free; }

end;.MM; - модуль формы «Главное меню»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DMGL, ComCtrls, Grids, DBGrids, StdCtrls, Mask, DBCtrls, TabNotBk,;= class(TForm): TDBLookupComboBox;: TLabel;: TStatusBar;: TButton;: TButton;: TRadioGroup;: TDBEdit;: TLabel;: TLabel;: TDBEdit;: TDBEdit;: TDBEdit;: TLabel;: TLabel;: TButton;: TButton;: TDBGrid;: TDBEdit;: TLabel;: TMemo;: TDBGrid;: TDBGrid;: TDBGrid;Button1Click(Sender: TObject);Button2Click(Sender: TObject);Button3Click(Sender: TObject);FormClose(Sender: TObject; var Action: TCloseAction);FormCreate(Sender: TObject);RadioGroup1Click(Sender: TObject);DBLookupComboBox1Click(Sender: TObject);Button4Click(Sender: TObject);TrayIcon1DblClick(Sender: TObject);

{ Private declarations }

{ Public declarations };: TMain;: integer;AdCartg, Ecomp, Ecartg, Eprint;

{$R *.dfm}TMain.Button1Click(Sender: TObject);

beginmessagedlg('При удалении участка произойдет удаление остальных данных. Выполнить удаление?',mtWarning,

[mbYES,mbNO], 0)=idYES then.Uchastok.Delete;.Uchastok.ApplyUpdates(-1);.Comp_info.Close;.Comp_info.Open;.Cartg.Close;.Cartg.Open;.Print.Close;.Print.Open;;TMain.Button2Click(Sender: TObject);.DataModule2.N2Click(self);;TMain.Button3Click(Sender: TObject);(radiogroup1.ItemIndex=0) then.show;;radiogroup1.ItemIndex=1 then.show;radiogroup1.ItemIndex=2 then.show;;TMain.Button4Click(Sender: TObject);radiogroup1.ItemIndex=0 then.Comp_info.Delete;.Comp_info.ApplyUpdates(-1);.Comp_history.Close;.Comp_history.Open;;radiogroup1.ItemIndex=1 then.Cartg.Delete;.Cartg.ApplyUpdates(-1);.cartg_history.Close;.cartg_history.Open;;radiogroup1.ItemIndex=2 then.Print.Delete;.Print.ApplyUpdates(-1);.Print_history.Close;.Print_history.Open;;radiogroup1.ItemIndex=3 then.Ot_male.Delete;.Ot_male.ApplyUpdates(-1);;TMain.DBLookupComboBox1Click(Sender: TObject);radiogroup1.ItemIndex=0 then.Comp_info.Filtered:=false;.Comp_info.Filter:='id_uchastok='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Comp_info.Filtered:=true;;radiogroup1.ItemIndex=1 then.Cartg.Filtered:=false;.Cartg.Filter:='uch_cartg='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Cartg.Filtered:=true;;radiogroup1.ItemIndex=2 then.Print.Filtered:=false;.Print.Filter:='uch_print='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Print.Filtered:=true;;radiogroup1.ItemIndex=3 then.Ot_male.Filtered:=false;.Ot_male.Filter:='id_Uchastok='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Ot_male.Filtered:=true;;;TMain.FormClose(Sender: TObject; var Action: TCloseAction);.Terminate;;TMain.FormCreate(Sender: TObject);.Visible:=true;.Visible:=false;.Visible:=false;.Visible:=false;.ClientHeight:=520;;TMain.RadioGroup1Click(Sender: TObject);radiogroup1.ItemIndex of

:begin.Visible:=true;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Visible:=true;.Caption:='Удалить компьютер';dblookupcombobox1.Text<>'' then.Comp_info.Filtered:=false;.Comp_info.Filter:='id_uchastok='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Comp_info.Filtered:=true;;;

:begin DBGrid1.Visible:=false;.Visible:=true;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Caption:='Удалить картридж';dblookupcombobox1.Text<>'' then.Cartg.Filtered:=false;.Cartg.Filter:='uch_cartg='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Cartg.Filtered:=true;;;

:begin DBGrid1.Visible:=false;.Visible:=false;.Visible:=true;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Caption:='Удалить принтер';dblookupcombobox1.Text<>'' then.Print.Filtered:=false;.Print.Filter:='uch_print='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Print.Filtered:=true;;;

:begin DBGrid1.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=true;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Visible:=false;.Caption:='Удалить ответственного';dblookupcombobox1.Text<>'' then.Ot_male.Filtered:=false;.Ot_male.Filter:='id_Uchastok='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Ot_male.Filtered:=true;;;;;TMain.TrayIcon1DblClick(Sender: TObject);.Show;;.

unit compinfo; - модуль формы «Информация о компьютере»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DMGL, DBCtrls, ComCtrls, StdCtrls, MM, dateutils;_info = class(TForm): TDateTimePicker;: TLabel;: TEdit;: TLabel;: TCheckBox;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TButton;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;: TEdit;Button1Click(Sender: TObject);Edit1KeyPress(Sender: TObject; var Key: Char);

{ Private declarations }

{ Public declarations };_info: Tcomp_info;

{$R *.dfm}Tcomp_info.Button1Click(Sender: TObject);: integer;, month, day, hour, minute, second, msec: word;(edit1.text<>'') and (edit2.text<>'') and (edit3.text<>'') and (edit4.text<>'')(edit5.text<>'') and (edit6.text<>'') then:=0;.Comp_info.Filtered:=false;.Comp_info.Refresh;.Comp_info.First;datamodule2.Comp_info.Locate('Inv_nom', edit1.Text, [])=false thendatamodule2.Comp_info.eof=false do(i=datamodule2.Comp_info.FieldByName('id_comp').AsInteger) then:=i+1;.Comp_info.Next;;;.Comp_info.append;.Comp_info.FieldValues['id_comp']:=i;.Comp_info.FieldValues['id_uchastok']:=datamodule2.Uchastok.FieldValues['id_uch'];.Comp_info.FieldValues['Mother_card']:=edit2.Text;.Comp_info.FieldValues['Processor']:=edit3.Text;.Comp_info.FieldValues['Op_memory']:=edit4.Text;.Comp_info.FieldValues['Video']:=edit5.Text;.Comp_info.FieldValues['HDD']:=edit6.Text;edit7.Text<>'' then.Comp_info.FieldValues['Drive_disk']:=edit7.Textdatamodule2.Comp_info.FieldValues['Drive_disk']:='Не имеется';checkbox1.Checked=true then.Comp_info.FieldValues['Arenda']:='Арендован'datamodule2.Comp_info.FieldValues['Arenda']:='Собственность';.Comp_info.FieldValues['Inv_nom']:=edit1.Text;.Comp_info.FieldValues['Date_in']:=datetimepicker1.Date;.Comp_info.FieldValues['Status']:='В работе';.Comp_info.Post;.Comp_info.ApplyUpdates(-1);:=0;.Comp_history.Refresh;.Comp_history.First;datamodule2.Comp_history.eof=false doi=datamodule2.Comp_history.FieldByName('id_comp_history').AsInteger then:=i+1;.Comp_history.Next;;;.Comp_history.Append;.Comp_history.FieldValues['id_comp_history']:=i;.Comp_history.FieldValues['id_stat']:=datamodule2.Comp_info.FieldValues['id_comp'];(date(), year, month, day);(time(),hour,minute,second,msec);.Comp_history.FieldValues['date_zap']:=encodedatetime(year, month, day, hour,minute,second,msec);.Comp_history.FieldValues['coment']:='Добавлен компьютер номер '+datamodule2.Comp_info.FieldValues['inv_nom'];.memo1.lines.add(datetostr(datamodule2.Comp_history.FieldValues['date_zap'])+' '+timetostr(datamodule2.Comp_history.FieldValues['date_zap'])+' '+datamodule2.Comp_history.Fieldbyname('coment').AsString);.Comp_history.Post;.Comp_info.ApplyUpdates(-1);application.MessageBox(pchar('Инвентарный номер совпадает с'+#13+'номером одного из комьютеров'), 'Ошибка ввода', mb_OK);application.MessageBox(pchar('Данные ведены некоректно'), 'Ошибка', mb_OK);;Tcomp_info.Edit1KeyPress(Sender: TObject; var Key: Char);key of

'0'..'9':;

#8:;key:=#0;;;.

unit Ecomp; - модуль формы «Изминение информации о компьютере»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls, Mask, DBCtrls, DMGL, MM, dateutils;= class(TForm): TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TLabel;: TCheckBox;: TButton;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TDBEdit;: TRadioButton;: TRadioButton;: TDateTimePicker;: TGroupBox;: TLabel;: TLabel;: TLabel;: TDBEdit;: TDBEdit;: TDBEdit;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TEditComp;

{$R *.dfm}TEditComp.Button1Click(Sender: TObject);: integer;, month, day, hour, minute, second, msec: word;.Comp_info.Edit;(radiobutton1.Checked=true) then(datetimepicker1.Date>datamodule2.Comp_info.FieldValues['Date_out']) and

(datamodule2.Comp_info.FieldValues['Date_in']<=datamodule2.Comp_info.FieldValues['Date_out']) then.Comp_info.FieldValues['Date_in']:=datetimepicker1.Date;.Comp_info.FieldValues['Status']:='В работе';application.MessageBox(pchar('Ошибка при выборе даты'), 'Ошибка', mb_OK);;(radiobutton2.Checked=true) then(datetimepicker1.Date>datamodule2.Comp_info.FieldValues['Date_in']) and

(datamodule2.Comp_info.FieldValues['Date_out']<=datamodule2.Comp_info.FieldValues['Date_in']) then.Comp_info.FieldValues['Date_out']:=datetimepicker1.Date;.Comp_info.FieldValues['Status']:='Выведен';application.MessageBox(pchar('Ошибка при выборе даты'), 'Ошибка', mb_OK);;:=0;.Comp_history.Refresh;.Comp_history.First;datamodule2.Comp_history.eof=false doi=datamodule2.Comp_history.FieldByName('id_comp_history').AsInteger then:=i+1;.Comp_history.Next;;;.Comp_info.Post;.Comp_info.ApplyUpdates(-1);.Comp_history.Append;.Comp_history.FieldValues['id_comp_history']:=i;.Comp_history.FieldValues['id_stat']:=datamodule2.Comp_info.FieldValues['id_comp'];(date(), year, month, day);(time(),hour,minute,second,msec);.Comp_history.FieldValues['date_zap']:=encodedatetime(year, month, day, hour,minute,second,msec);.Comp_history.FieldValues['coment']:='Изменен компьютер номер '+datamodule2.Comp_info.fieldbyname('inv_nom').AsString;.memo1.lines.add(datetostr(datamodule2.Comp_history.FieldValues['date_zap'])+' '+timetostr(datamodule2.Comp_history.FieldValues['date_zap'])+' '+datamodule2.Comp_history.Fieldbyname('coment').AsString);.Comp_history.Post;.Comp_history.ApplyUpdates(-1);;.AdCartg; - модуль формы «Ввод картриджа», Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DMGL, DBCtrls, dateutils;= class(TForm): TEdit;: TLabel;: TLabel;: TComboBox;: TLabel;: TComboBox;: TButton;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TAddCartg;MM;

{$R *.dfm}TAddCartg.Button1Click(Sender: TObject);: integer;, month, day, hour, minute, second, msec: word;(edit1.text<>'') and (combobox1.text<>'') and (combobox2.text<>'') then:=0;.Cartg.Filtered:=false;.Cartg.Refresh;.Cartg.First;datamodule2.Cartg.eof=false doi=datamodule2.Cartg.FieldByName('id_cartg').AsInteger then:=i+1;.Cartg.Next;;;.Cartg.append;.Cartg.FieldValues['id_cartg']:=i;.Cartg.FieldValues['uch_cartg']:=datamodule2.Uchastok.FieldValues['id_uch'];.Cartg.FieldValues['vrab_cartg']:=combobox1.Text;.Cartg.FieldValues['name_cartg']:=edit1.Text;.Cartg.FieldValues['sost_cartg']:=combobox2.Text;.Cartg.Post;.Cartg.ApplyUpdates(-1);:=0;.Cartg_history.Refresh;.Cartg_history.First;datamodule2.Cartg_history.eof=false doi=datamodule2.Cartg_history.FieldByName('id_cartg_history').AsInteger then:=i+1;.Cartg_history.Next;;;.Cartg_history.Append;.Cartg_history.FieldValues['id_cartg_history']:=i;.Cartg_history.FieldValues['id_cartg']:=datamodule2.Cartg.FieldValues['id_cartg'];(date(), year, month, day);(time(),hour,minute,second,msec);.Cartg_history.FieldValues['date_zap']:=encodedatetime(year, month, day, hour,minute,second,msec);.Cartg_history.FieldValues['opis']:='Добавлен картридж '+datamodule2.Cartg.fieldvalues['name_cartg'];.memo1.lines.add(datetostr(datamodule2.Cartg_history.FieldValues['date_zap'])+' '+timetostr(datamodule2.Cartg_history.FieldValues['date_zap'])+' '+datamodule2.Cartg_history.Fieldbyname('opis').AsString);.Cartg_history.Post;.Cartg_history.ApplyUpdates(-1);application.MessageBox(pchar('Данные ведены некоректно'), 'Ошибка', mb_OK);

end;.Ecartg; - модуль формы «Редактирование картриджа»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, DMGL, Mask, DBCtrls, dateutils;= class(TForm): TComboBox;: TLabel;: TLabel;: TComboBox;: TDBEdit;: TLabel;: TButton;FormShow(Sender: TObject);Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TEditCartg;MM;

{$R *.dfm}TEditCartg.Button1Click(Sender: TObject);: integer;, month, day, hour, minute, second, msec: word;.Cartg.Edit;.Cartg.FieldValues['vrab_cartg']:=Combobox1.Text;.Cartg.FieldValues['name_cartg']:=DBedit1.Text;.Cartg.FieldValues['sost_cartg']:=Combobox2.Text;:=0;.Cartg_history.Refresh;.Cartg_history.First;datamodule2.Cartg_history.eof=false doi=datamodule2.Cartg_history.FieldByName('id_cartg_history').AsInteger then:=i+1;.Cartg_history.Next;;;.Cartg.Post;.Cartg.ApplyUpdates(-1);.Cartg_history.Append;.Cartg_history.FieldValues['id_Cartg_history']:=i;.Cartg_history.FieldValues['id_cartg']:=datamodule2.Cartg_history.FieldValues['id_cartg'];(date(), year, month, day);(time(),hour,minute,second,msec);.Cartg_history.FieldValues['date_zap']:=encodedatetime(year, month, day, hour,minute,second,msec);.Cartg_history.FieldValues['opis']:='Изменен компьютер номер '+datamodule2.Cartg.fieldbyname('name_cartg').AsString;.memo1.lines.add(datetostr(datamodule2.Cartg_history.FieldValues['date_zap'])+' '+timetostr(datamodule2.Cartg_history.FieldValues['date_zap'])+' '+datamodule2.Cartg_history.Fieldbyname('opis').AsString);.Cartg_history.Post;.Cartg_history.ApplyUpdates(-1);;TEditCartg.FormShow(Sender: TObject);.Text:=datamodule2.Cartg.FieldByName('vrab_cartg').AsString;.Text:=datamodule2.Cartg.FieldByName('sost_cartg').AsString;

end;.Eprint; - модуль формы «Изминение принтеров»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DMGL, StdCtrls, Mask, DBCtrls, DateUtils;= class(TForm)

Статус: TLabel;

Название: TLabel;: TButton;: TEdit;: TComboBox;Button1Click(Sender: TObject);FormShow(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm2;MM;

{$R *.dfm}TForm2.Button1Click(Sender: TObject);i, temp: integer;, month, day, hour, minute, second, msec: word;.Print.Filtered:=false;.Print.Edit;.Print.FieldValues['name_print']:=edit2.Text;.Print.FieldValues['vrab_print']:=combobox1.Text;.Print.Post;.Print.ApplyUpdates(-1);:=0;.Print_history.Refresh;.Print_history.First;datamodule2.Print_history.eof=false doi=datamodule2.Print_history.FieldByName('id_print_history').AsInteger then:=i+1;.Print_history.Next;;;.Print_history.Append;.Print_history.FieldValues['id_print_history']:=i;.Print_history.FieldValues['id_print']:=datamodule2.Print.FieldValues['id_print'];(date(), year, month, day);(time(),hour,minute,second,msec);.Print_history.FieldValues['data_zap']:=encodedatetime(year, month, day, hour,minute,second,msec);.Print_history.FieldValues['opis']:='Изменён принтер '+inttostr(datamodule2.Print.FieldValues['id_print']);.memo1.lines.add(datetostr(datamodule2.Print_history.FieldValues['data_zap'])+' '+timetostr(datamodule2.Print_history.FieldValues['data_zap'])+' '+datamodule2.Print_history.Fieldbyname('opis').AsString);.Print_history.Post;.Print_history.ApplyUpdates(-1);;TForm2.FormShow(Sender: TObject);.Text:=datamodule2.Print.FieldByName('name_print').AsString;.Text:=datamodule2.Print.FieldByName('vrab_print').AsString;;.Uchastok; - модуль формы «Участки», Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DMGL, Grids, DBGrids, StdCtrls;= class(TForm): TDBGrid;: TLabel;: TEdit;: TButton;Button1Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: Tfuchast;

{$R *.dfm}Tfuchast.Button1Click(Sender: TObject);i: integer;edit1.Text<>'' then:=0;.Uchastok.Refresh;.Uchastok.First;datamodule2.Uchastok.eof=false doi=datamodule2.Uchastok.FieldByName('id_uch').AsInteger then:=i+1;.Uchastok.Next;;;.Uchastok.append;.Uchastok.FieldValues['id_uch']:=i;.Uchastok.FieldValues['id_user']:=datamodule2.Users.FieldValues['id_user'];.Uchastok.FieldValues['Name_uch']:=edit1.Text;.Uchastok.Post;.Uchastok.ApplyUpdates(-1);;;.ListUser; - модуль формы «Пользователи», Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DBCtrls, DMGL, StdCtrls;= class(TForm): TDBLookupListBox;: TButton;: TButton;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TListusers;

{$R *.dfm}TListusers.Button1Click(Sender: TObject);,password1,password2: string;: integer;:=inputbox('Имя пользователя', '', '');:=inputbox('Пароль', '', '');

password2:=inputbox('Повторите пароль', '', '');

if (password1=password2)or((password1<>'')and(password2<>'')) then:=0;.Users.Refresh;.Users.First;datamodule2.Users.eof=false doi=datamodule2.Users.FieldByName('id_user').AsInteger then:=i+1;.Users.Next;;;.Users.append;.Users.FieldValues['id_user']:=i;.Users.FieldValues['Login_users']:=password1;.Users.FieldValues['Password_users']:=password2;.Users.Post;.Users.ApplyUpdates(-1);application.MessageBox(pchar('Пароль веден некоректно'), 'Ошибка', mb_OK);;TListusers.Button2Click(Sender: TObject);

beginmessagedlg('При удалении пользователя произойдет удаление участков. Выполнить удаление?',mtWarning,

[mbYES,mbNO], 0)=idYES then.Users.Delete;.Users.ApplyUpdates(-1);;.

unit ListOtMale; - модуль формы «Ответственные лица»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DMGL, DBCtrls, StdCtrls, Grids, DBGrids;= class(TForm): TButton;: TButton;: TDBLookupComboBox;: TLabel;: TDBGrid;Button1Click(Sender: TObject);Button2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TOtMale;

{$R *.dfm}TOtMale.Button1Click(Sender: TObject);,dolg: string;: integer;dblookupcombobox1.KeyValue<>0 then

name:=inputbox('Имя ответственного', '', '');:=inputbox('Должность', '', '');

if (name<>'') or (dolg<>'') then:=0;.Ot_male.Refresh;.Ot_male.First;datamodule2.Ot_male.eof=false doi=datamodule2.Ot_male.FieldByName('id_Ot_male').AsInteger then:=i+1;.Ot_male.Next;;;.Ot_male.append;.Ot_male.FieldValues['id_ot_male']:=i;.Ot_male.FieldValues['id_uchastok']:=datamodule2.Uchastok.FieldValues['id_uch'];.Ot_male.FieldValues['name_otmale']:=name;.Ot_male.FieldValues['dolg_otmale']:=dolg;.Ot_male.Post;.Ot_male.ApplyUpdates(-1);application.MessageBox(pchar('Данные ведены некоректно'), 'Ошибка', mb_OK);('Выберите участок!');;TOtMale.Button2Click(Sender: TObject);messagedlg('Выполнить удаление?',mtWarning,

[mbYES,mbNO], 0)=idYES then.Ot_male.Delete;

end;.VivObor; - модуль формы «Вывод оборудования на участке»

interface, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, StdCtrls, ComCtrls, ExcelXP, ComObj;= class(TForm): TRadioButton;: TRadioButton;: TDateTimePicker;: TDateTimePicker;: TButton;Button1Click(Sender: TObject);RadioButton2Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TVivOb;DMGL;

{$R *.dfm}TVivOb.Button1Click(Sender: TObject);,Sheet,Colum:Variant;,index,d,d1,m,m1,y,y1:Integer;, month, day: word;:=CreateOleObject('Excel.Application');.Visible:=true;.Workbooks.Add(-4167);.Workbooks[1].WorkSheets[1].Name:='Отчет';:=XLApp.Workbooks[1].WorkSheets['Отчет'].Columns;.Columns[1].ColumnWidth:=20;.Columns[2].ColumnWidth:=40;.Columns[3].ColumnWidth:=40;.Columns[4].ColumnWidth:=20;.Columns[5].ColumnWidth:=20;.Columns[6].ColumnWidth:=20;.Columns[7].ColumnWidth:=20;.Columns[8].ColumnWidth:=20;.Columns[9].ColumnWidth:=20;.Columns[10].ColumnWidth:=20;.Columns[11].ColumnWidth:=20;.Columns[12].ColumnWidth:=20;:=XLApp.Workbooks[1].WorkSheets['Отчет'];

Sheet.Cells[1,1]:='ООО "СибирьЭнергоАвтоТранс"';.Cells[2,1]:='Название участка';.Cells[2,2]:=datamodule2.Uchastok.Fieldbyname('name_uch').asstring;.Cells[3,1]:='Компьютеры';.Cells[4,1]:='№';.Cells[4,2]:='Материнская плата';.Cells[4,3]:='Процессор';.Cells[4,4]:='ОЗУ';.Cells[4,5]:='Видеосистема';.Cells[4,6]:='Жесткй диск';.Cells[4,7]:='ВЗУ';.Cells[4,8]:='Статус';.Cells[4,9]:='Аренда';.Cells[4,10]:='Инвентарный номер';.Cells[4,11]:='Дата ввода';

Sheet.Cells[4,12]:='Дата вывода';:=5; Numer:=1;(datetimepicker1.date, year, month, day);:=day; m:=month; y:=year;(datetimepicker2.date, year, month, day);:=day; m1:=month; y1:=year;

{datamodule2.Comp_info.Filtered:=false;.Comp_info.Filter:='id_uchastok='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Comp_info.Filtered:=true; }.Comp_info.First;DataModule2.Comp_info.Eof=false do(radiobutton1.Checked=true) or (datamodule2.Comp_info.FieldValues['Date_in']>=strtodatetime(inttostr(d)+'.'+inttostr(m)+'.'+inttostr(y))) and (datamodule2.Comp_info.FieldValues['Date_in']<=strtodatetime(inttostr(d1)+'.'+inttostr(m1)+'.'+inttostr(y1))) then.Cells[index,1]:=Numer;.Cells[index,2]:=DataModule2.Comp_info.FieldByName('Mother_card').AsString;.Cells[index,3]:=DataModule2.Comp_info.FieldByName('Processor').AsString;.Cells[index,4]:=DataModule2.Comp_info.FieldByName('Op_memory').AsString;.Cells[index,5]:=DataModule2.Comp_info.FieldByName('Video').AsString;.Cells[index,6]:=DataModule2.Comp_info.FieldByName('HDD').AsString;.Cells[index,7]:=DataModule2.Comp_info.FieldByName('Drive_disk').AsString;.Cells[index,8]:=DataModule2.Comp_info.FieldByName('Status').AsString;.Cells[index,9]:=DataModule2.Comp_info.FieldByName('Arenda').AsString;.Cells[index,10]:=DataModule2.Comp_info.FieldByName('Inv_nom').AsString;.Cells[index,11]:=DataModule2.Comp_info.FieldByName('Date_in').AsDateTime;.Cells[index,12]:=DataModule2.Comp_info.FieldByName('Date_out').AsDateTime;(index); Inc(Numer);;.Comp_info.Next;;(index); Numer:=1;.Cells[index,1]:='Картриджи';(index);.Cells[index,1]:='№';.Cells[index,2]:='Статус';.Cells[index,3]:='Наименование картриджа';

Sheet.Cells[index,4]:='Состояние картриджа';

inc(index); Numer:=1;.Cartg.Filtered:=false;.Cartg.Filter:='uch_cartg='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Cartg.Filtered:=true;.Cartg.First;DataModule2.Cartg.Eof=false do.Cells[index,1]:=Numer;.Cells[index,2]:=DataModule2.Cartg.FieldByName('Vrab_cartg').AsString;.Cells[index,3]:=DataModule2.Cartg.FieldByName('name_cartg').AsString;.Cells[index,4]:=DataModule2.Cartg.FieldByName('sost_cartg').AsString;(index); Inc(Numer);.Cartg.Next;(index); Numer:=1;.Cells[index,1]:='Принтеры';(index);.Cells[index,1]:='№';

Sheet.Cells[index,2]:='Название принтера';

Sheet.Cells[index,3]:='Статус';(index); Numer:=1;.Print.Filtered:=false;.Print.Filter:='uch_print='+inttostr(datamodule2.Uchastok.FieldByName('id_uch').AsInteger);.Print.Filtered:=true;.Print.First;DataModule2.Print.Eof=false do.Cells[index,1]:=Numer;.Cells[index,2]:=DataModule2.Print.FieldByName('name_print').AsString;.Cells[index,3]:=DataModule2.Print.FieldByName('vrab_print').AsString;(index); Inc(Numer);.Print.Next;;TVivOb.RadioButton2Click(Sender: TObject);.Enabled:=true;.Enabled:=true;

end; end.


ПРИЛОЖЕНИЕ 2


Распечатка результатов работы программы


Рис. 1 - Окно авторизации пользователя


Рис. 2 - Главное меню


Рис. 3 - Участки


Рис. 4 - Ответственные лица


Рис. 5 - Пользователи


Рис. 6 - Информация о компьютере


Рис. 7 - Изменение информации о компьютере


Рис 8 - Ввод картриджа


Рис 9 - Редактирование картриджа


Рис. 10 - Добавление принтера


Рис. 11 - Изменение принтеров


Рис. 12 - Вывод оборудования на участке


Рис. 13 - Отчет об оборудовании на участке


Рис. 14 - Отчет об оборудовании на участке за определенный период



ВВЕДЕНИЕ Данная выпускная квалификационная работа выполнялась в ООО «СибирьЭнергоАвтоТранс», в отделении «Оперативных систем управления

Больше работ по теме:

КОНТАКТНЫЙ EMAIL: [email protected]

Скачать реферат © 2017 | Пользовательское соглашение

Скачать      Реферат

ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ