За период.
Проектирование и разработка базы данных и приложения "Техническое обслуживание станков" средствами СУБД Firebird
Функция реализации данного меню в приложении слишком большая, чтобы приводить ее целиком. По структуре ее можно разбить на две части. Первая часть типична и похожа на приведенные выше фрагменты кода, в ней осуществляется выполнение запроса и запись его результатов в объект DataTable. Во второй части происходит обращение к функциям приложения Microsoft Excel через COM-библиотеку Microsoft Excel… Читать ещё >
За период. Проектирование и разработка базы данных и приложения "Техническое обслуживание станков" средствами СУБД Firebird (реферат, курсовая, диплом, контрольная)
Данная форма позволяет просмотреть ремонты, зарегистрированные в БД за какой-то период времени.
Пользователь может задать начало и конец интервала времени, ремонты за который его интересуют, и выбрать, какие из них отображать: завершенные, незавершенные или все.
SQL-запрос, возвращающий нужные данные:
select r. repair_startdate,.
r.machine_code,.
rt.repairtype_name,.
rt.repairtype_cost,.
r.repair_note.
from repair r.
inner join repairtype rt on r. repairtype_code = rt. repairtype_code.
where r. repair_startdate >= :start.
and r. repair_startdate <= :end.
and r. repair_done like: done.
order by r. repair_startdate.
Рис. 19.
Реализация в приложении почти ничем не отличается от предыдущих двух пунктов, разница только в текстах запросов, передаваемых объектам OleDbCommand.
За год
Через данный пункт меню вызывается форма, на которой можно увидеть график регистрации ремонтов за год. Внешний вид:
Рис. 20.
Пользователь может задать год, за который он хочет получить график. При нажатии на кнопку «ОК» происходит выполнение нужного запроса и создание на его основе графика регистрации ремонтов. Код запроса:
select m. month_code as MONTH_CODE,.
rt.repairtype_name as REPAIRTYPE_NAME,.
count (r.machine_code) as REPAIRS.
from MONTHS m.
left join REPAIR r.
on extract (month from r. repair_startdate) = m. month_code.
inner join repairtype rt.
on r. repairtype_code = rt. repairtype_code.
where r. repair_startdate >= :start.
and r. repair_startdate <= :end.
group by m. month_code, rt. repairtype_name.
Функция реализации данного меню в приложении слишком большая, чтобы приводить ее целиком. По структуре ее можно разбить на две части. Первая часть типична и похожа на приведенные выше фрагменты кода, в ней осуществляется выполнение запроса и запись его результатов в объект DataTable. Во второй части происходит обращение к функциям приложения Microsoft Excel через COM-библиотеку Microsoft Excel Object Library 12.0. Наше приложение экспортирует данные из DataTable в таблицу Excel, и строит по ним график, который потом преобразуется в картинку формата BMP и вставляется в объект PictureBox на форме. Все это проделывается в фоновом режиме, так что пользователь видит только конечный результат.
Выше на картинке показан пример работы данной функции.