Дипломная работа: Автоматизация учета рабочего времени сотрудников "АйТи-Стандарт"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
67
2.4.5Описание программных модулей
Мы использовали шаблон simple Aplicator, который имеет одно окно.
Использован язык С++. Четыре формы появляются по вызову. Каждая форма
содержит не менее трех страниц. Некоторые страницы сосуществуют в
тесной взаимосвязи с базой данных. Основные объекты собраны в таблицу
2.4.
Объекты в проекте учета рабочего времени сотрудников
Наименование объектов
Описание функционала
Форма 1
Сбор данных. Формирование
сводных таблиц за месяц и за год.
Форма 2
Карточки задач
Форма 3
Таблица допусков.
Форма 4
Сбор данных. Формирование
отчета по каждому сотруднику
Кнопки на форме 2: начать
задачу, делать задачу, уточнить
задачу, завершить задачу
Навигация и система диалога
Календарь, часы, циферблат
часов на форме 2.
Отображение объекта
времени
Например постановка времени может быть реализована таким образом
(рис.2.19, 2.20,2.21, 2.22):
68
Рисунок 2.19 Ориентируемся на окно виджета при нажатии на кнопку
табель
Рисунок 2.20 Запуск таймера в операционной системе Kubuntu (Linux)
69
Рисунок 2.21 Задача 17 поставлена
Рисунок 2.22 Свернутый режим виджета таймер с задачей 17
На рисунке 22.2 задача поставлена 2 часа. Сеансов может быть
несколько по 2 часа. За один рабочий день менеджер может выставить четыре
задачи для сотрудника. Это отображается в окне окошком «Всего».
2.3 Контрольный пример реализации программы и её инструкции
На сервере в папке home размещают папку si, в которой имеется папка
calc.
Проект запускается функцией main(). Эта функция располагается в
файле main.cpp и описание этой функции имеется в файле main.h. Таблицы в
программе должны сохраняться в базе данных.
Главным в среде разработчика и программиста Qt3 является класс
QObject, все остальные классы (как графические, так и не графические)
70
наследуются из базового класса. В нём хранятся такие важные механизмы
как сигналы, слоты, свойства объектов.
Основным используемыми классами для конструирования Graphic User
Interface приложений являются классы QWidget и QMainWindow. Первый
используется как правило при построении однооконных приложений.
Для использования базы определенной базы данных необходимо для
начала произвести подключение к движку базы данных, установить
изначальные параметры доступа к базе данных, а потом можно производить
манипуляции с имеющейся базой данных, и содержащимися в ней
таблицами:
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE", "book");
второй параметр не обязателен, если его не указывать, то будет
назначено подключение по умолчанию. Это удобно если в программе
используется одна база данных, иначе нужно указывать явно название
подключения.
При этом, помимо данной строки часто приходится указывать
следующие свойства базы данных: имя пользователя(name), пароль
(password), адрес подключения к базе данных (hostname).
Создав экземпляр подключения db необходимо установить соединение
методом QSqlDatabase::open():
if (!db.open()) {
QMessageBox::critical(0, qApp->tr("Cannot open database"),
qApp->tr("Unable to establish a database connection.\n"
"This example needs SQLite support. Please read "
"the Qt SQL driver documentation for information how "
"to build it.\n\n"
"Click Cancel to exit."), QMessageBox::Cancel);
71
если возникла ошибка открытия базы данных, выпадет
соответствующее сообщение.
Для задания запросов в Qt3 служит класс QSqlQuery:
QSqlQuery *query = new QSqlQuery(QSqlDatabase::database("book"));
query->exec("select * from book");
при создании экземпляра класса принимается необязательный
параметр QSqlDatabase &db. Функция QSqlDatabase::database() возвращает
наименование соединения. Если параметр не указан то будет использовано
подключение по умолчанию, то есть если при создании экземпляра базы
данных было указано имя подключения, то и при создании экземпляра класса
QSqlQuery параметр указывается. Функция-член QSqlQuery::exec()
осуществляется выполнение запроса. Также весьма полезными являются
методы навигации: QSqlQuery::first(), QSqlQuery::last(), QSqlQuery::next(),
QSqlQuery::prev().
Для доступа к данным полученным в результате запроса является метод
QSqlQuery:value(int). В качестве параметра этот метод принимает
порядковый номер поля в таблице:
int id = query->value(0).toInt() + 1;
Механизмы модель-представление предназначены для упрощения
работы с базой данных в Qt3. Для этого служит класс QSqlTableModel:
QSqlTableModel *model = new
QSqlTableModel(QSqlDatabase::database("book");
model->setTable("table");
model->select();
Источник: https://baza.diplomsite.ru/previewfile/2457