Разработка приложения для учета компьютерной техники и программного обеспечения в организации
Исследование особенностей файловых систем, которые были первой попыткой компьютеризировать известные ручные картотеки. Ознакомление с логической схемой связей таблиц в базе данных. Изучение и анализ пожеланий заказчика по улучшению интерфейса программы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 30.03.2018 |
Размер файла | 2,4 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
INSERT INTO types ( name ) VALUES ( 'Микрофон' )
INSERT INTO types ( name ) VALUES ( 'Колонки' )
INSERT INTO types ( name ) VALUES ( 'Веб-камера' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'HP LaserJet 1100', 'М0000001', 1, 1, '12.01.2005' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'Mustek BearPaw-1200', 'М0000002', 2, 1, '13.02.2006' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'Acer AL1717A', 'М0000003', 3, 1, '14.03.2007' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'Benq FP71G+u', 'М0000004', 3, 1, '15.04.2007' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'HP Pro 3500 MT', 'М0000005', 4, 1, '16.05.2008' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'APC Back-UPC CS 500', 'М0000006', 5, 1, '17.06.2009' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'Logitech B100', 'М0000007', 6, 1, '18.07.2010' )
INSERT INTO devices ( model, invn, type, owner, date ) VALUES ( 'Dialog M-101', 'М0000008', 7, 1, '19.08.2011' )
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'HP LaserJet 1100', 'Принтер', 'М0000001', 'Поставщик', '_Склад ИТ', '12.01.2005' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'Mustek BearPaw-1200', 'Сканер', 'М0000002', 'Поставщик', '_Склад ИТ', '13.02.2006' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'Acer AL1717A', 'Монитор', 'М0000003', 'Поставщик', '_Склад ИТ', '14.03.2007' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'Benq FP71G+u', 'Монитор', 'М0000004', 'Поставщик', '_Склад ИТ', '15.04.2007' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'HP Pro 3500 MT', 'Системнй блок', 'М0000005', 'Поставщик', '_Склад ИТ', '16.05.2008' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'APC Back-UPC CS 500', 'ИБП', 'М0000006', 'Поставщик', '_Склад ИТ', '17.06.2009' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'Logitech B100', 'Мышь', 'М0000007', 'Поставщик', '_Склад ИТ', '18.07.2010' );
INSERT INTO history ( operation, device, type, invn, user1, user2, date ) VALUES ( 'Поступление', 'Dialog M-101', 'Микрофон', 'М0000008', 'Поставщик', '_Склад ИТ', '19.08.2011' );
END
Листинг программы.
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
#include "Unit4.h"
#include "Unit5.h"
#include "Unit6.h"
#include "Unit7.h"
#include "Unit8.h"
#include "Unit9.h"
#include "Unit10.h"
#include "Unit11.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TfrMain *frMain;
//---------------------------------------------------------------------------
__fastcall TfrMain::TfrMain(TComponent* Owner)
: TForm(Owner)
{
usr_mode = 1; // 1 - show message / 0 - move all devices to IT_Sklad
lcbRepTypeSelect->KeyValue = 1;
lcbRepUserSelect->KeyValue = 1;
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btUserAddClick(TObject *Sender)
{
int r, d;
frUser->Caption = "Добавить пользователя";
frUser->lbUserDate->Visible = False;
frUser->edFIO->Text = "";
frUser->lcpDepartmentSelect->KeyValue = 1;
frUser->edUserDate->Text = Today().DateString();
r = frUser->ShowModal();
if( r == mrOk )
{
if( frUser->edFIO->Text.Length() < 1 ) return;
d = frUser->lcpDepartmentSelect->KeyValue;
dm->qryUsers->Append();
dm->qryUsers->FieldByName( "fio" )->AsString = frUser->edFIO->Text.Trim();
dm->qryUsers->FieldByName( "department" )->AsInteger = d;
dm->qryUsers->FieldByName( "date" )->AsString = frUser->edUserDate->Text;
dm->qryUsers->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btUserEditClick(TObject *Sender)
{
if( dm->qryUsers->RecordCount == 0 ) return;
if( dm->qryUsers->FieldByName( "fio" )->AsString.Trim() == "_Склад ИТ" )
{
ShowMessage( "Склад ИТ редактировать нельзя !" );
return;
}
int r, d;
frUser->Caption = "Редактировать пользователя";
frUser->edFIO->Text = dm->qryUsers->FieldByName( "fio" )->AsString.Trim();
frUser->edUserDate->Text =
dm->qryUsers->FieldByName( "date" )->AsString.Trim();
frUser->edUserDate->ReadOnly = True;
frUser->lbUserDate->Visible = True;
frUser->lcpDepartmentSelect->KeyValue =
dm->qryUsers->FieldByName( "department" )->AsInteger;
r = frUser->ShowModal();
if( r == mrOk )
{
dm->qryUsers->Edit();
dm->qryUsers->FieldByName( "fio" )->AsString = frUser->edFIO->Text.Trim();
d = frUser->lcpDepartmentSelect->KeyValue;
dm->qryUsers->FieldByName( "department" )->AsInteger = d;
dm->qryUsers->Post();
}
frUser->edUserDate->ReadOnly = False;
frUser->lbUserDate->Visible = False;
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btUserDeleteClick(TObject *Sender)
{
if( dm->qryUsers->RecordCount == 0 ) return;
if( dm->qryUsers->FieldByName( "fio" )->AsString.Trim() == "_Склад ИТ" )
{
ShowMessage( "Склад ИТ удалять нельзя !" );
return;
}
if( dm->qryDevices->RecordCount == 0 ) dm->qryUsers->Delete();
else if( usr_mode == 1 )
{
ShowMessage( "За пользователем числится оборудование ! \n \
Необходимо сначала переместить оборудование." );
return;
}
else
{
// Перемещаем оборудование на склад ИТ
dm->qryUsers->Delete();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btDeviceAddClick(TObject *Sender)
{
int r;
String cmd;
frDevice->Caption = "Добавление нового устройства";
if( dm->qryUsers->FieldByName( "fio" )->AsString != "_Склад ИТ" )
{
ShowMessage( "Новое оборудование принимается только на склад ИТ" );
return;
}
frDevice->edDevice->Text = "";
frDevice->lcbTypeSelect->KeyValue = 3;
frDevice->lcbUserSelect->KeyValue = 1;
frDevice->lcbUserSelect->Enabled = False;
frDevice->edDeviceDate->Text = Today().DateString();
r = frDevice->ShowModal();
if( r == mrOk )
{
cmd = "EXEC adddevice @model1 = '" + frDevice->edDevice->Text.Trim() +
"', @invn1 = '" + frDevice->edInvn->Text.Trim() +
"', @type1 = " + IntToStr( (int)frDevice->lcbTypeSelect->KeyValue ) +
", @owner1 = " + IntToStr( (int)frDevice->lcbUserSelect->KeyValue ) +
", @date1 = '" + frDevice->edDeviceDate->Text.Trim() + "'";
// ShowMessage( cmd );
dm->qryCMD->SQL->Clear();
dm->qryCMD->SQL->Add( cmd );
dm->qryCMD->Prepared = True;
dm->qryCMD->ExecSQL();
dm->tbHistory->Append();
dm->tbHistory->FieldByName( "operation" )->AsString = "Поступление";
dm->tbHistory->FieldByName( "device" )->AsString =
frDevice->edDevice->Text.Trim();
dm->tbHistory->FieldByName( "type" )->AsString =
frDevice->lcbTypeSelect->Text;
dm->tbHistory->FieldByName( "invn" )->AsString =
dm->qryDevices->FieldByName( "invn" )->AsString;
dm->tbHistory->FieldByName( "user1" )->AsString = "Поставщик";
dm->tbHistory->FieldByName( "user2" )->AsString = "_Склад ИТ";
dm->tbHistory->FieldByName( "date" )->AsString = Today().DateString();
dm->tbHistory->Post();
}
frDevice->lcbUserSelect->Enabled = True;
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btDeviceEditClick(TObject *Sender)
{
if( dm->qryDevices->RecordCount == 0 ) return;
int r;
frDevice->Caption = "Редактирование устройства";
frDevice->edDevice->Text =
dm->qryDevices->FieldByName( "model" )->AsString.Trim();
frDevice->lcbTypeSelect->KeyValue =
dm->qryDevices->FieldByName( "type" )->AsInteger;
frDevice->edDeviceDate->Text =
dm->qryDevices->FieldByName( "date" )->AsString.Trim();
frDevice->edInvn->Text =
dm->qryDevices->FieldByName( "invn" )->AsString.Trim();
frDevice->edDeviceDate->ReadOnly = True;
frDevice->lcbUserSelect->KeyValue =
dm->qryDevices->FieldByName( "owner" )->AsInteger;
frDevice->lcbUserSelect->Enabled = False;
r = frDevice->ShowModal();
if( r == mrOk )
{
}
frDevice->lcbUserSelect->Enabled = True;
frDevice->edDeviceDate->ReadOnly = False;
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btDeviceDeleteClick(TObject *Sender)
{
int r;
if( dm->qryDevices->RecordCount == 0 ) return;
r = Application->MessageBox( "Вы действительно хотите удалить устройство ?",
"Удаление устройства", MB_OKCANCEL );
if ( r == IDOK ) dm->qryDevices->Delete();
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btMoveDeviceClick(TObject *Sender)
{
if( dm->qryDevices->RecordCount == 0 ) return;
int r, newid, devid, currec, curid;
String cmd;
String model, type, invn, user1, user2, date;
newid = 1;
user1 = dm->qryUsers->FieldByName( "fio" )->AsString;
invn = dm->qryDevices->FieldByName( "invn" )->AsString;
model = dm->qryDevices->FieldByName( "model" )->AsString;
type = dm->qryDevices->FieldByName( "name" )->AsString;
grUsers->Enabled = False;
grDevices->Enabled = False;
currec = dm->qryUsers->RecNo;
curid = dm->qryUsers->FieldByName( "id" )->AsInteger;
devid = dm->qryDevices->FieldByName( "id" )->AsInteger;
frMoveDevice->lcbUserSelect->KeyValue = 1;
r = frMoveDevice->ShowModal();
if( r == mrOk )
{
newid = frMoveDevice->lcbUserSelect->KeyValue;
dm->qryUsers->RecNo = currec;
if( newid == curid )
{
ShowMessage( "Перемещение не выполнено." );
goto p1;
}
cmd = "EXEC ch_owner @newid = " + IntToStr( newid ) + ", \
@devid = " + IntToStr( devid );
dm->qryCMD->SQL->Clear();
dm->qryCMD->SQL->Add( cmd );
dm->qryCMD->Prepared = True;
dm->qryCMD->ExecSQL();
dm->qryDevices->Refresh();
user2 = frMoveDevice->lcbUserSelect->Text;
dm->tbHistory->Append();
dm->tbHistory->FieldByName( "operation" )->AsString = "Перемещение";
dm->tbHistory->FieldByName( "device" )->AsString = model;
dm->tbHistory->FieldByName( "type" )->AsString = type;
dm->tbHistory->FieldByName( "invn" )->AsString = invn;
dm->tbHistory->FieldByName( "user1" )->AsString = user1;
dm->tbHistory->FieldByName( "user2" )->AsString = user2;
dm->tbHistory->FieldByName( "date" )->AsString = Today().DateString();
dm->tbHistory->Post();
}
p1:
grUsers->Enabled = True;
grDevices->Enabled = True;
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btDepAddClick(TObject *Sender)
{
int r;
frInBox->Caption = "Ввод нового отдела";
frInBox->Label1->Caption = "Введите название отдела";
frInBox->Edit1->Text = "";
r = frInBox->ShowModal();
if( ( r == mrOk ) && ( frInBox->Edit1->Text.Length() > 0 ) )
{
dm->tbDepartments->Append();
dm->tbDepartments->FieldByName( "name" )->AsString = frInBox->Edit1->Text;
dm->tbDepartments->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btDepEditClick(TObject *Sender)
{
if( dm->tbDepartments->RecordCount == 0 ) return;
int r;
frInBox->Caption = "Редактирование отдела";
frInBox->Label1->Caption = " Введите название отдела ";
frInBox->Edit1->Text = dm->tbDepartments->FieldByName( "name" )->AsString;
r = frInBox->ShowModal();
if( ( r == mrOk ) && ( frInBox->Edit1->Text.Length() > 0 ) )
{
dm->tbDepartments->Edit();
dm->tbDepartments->FieldByName( "name" )->AsString = frInBox->Edit1->Text;
dm->tbDepartments->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btDepDeleteClick(TObject *Sender)
{
if( dm->tbDepartments->RecordCount == 0 ) return;
dm->tbDepartments->Delete();
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btTypAddClick(TObject *Sender)
{
int r;
frInBox->Caption = "Ввод нового типа устройства";
frInBox->Label1->Caption = "Введите название типа";
frInBox->Edit1->Text = "";
r = frInBox->ShowModal();
if( ( r == mrOk ) && ( frInBox->Edit1->Text.Length() > 0 ) )
{
dm->tbTypes->Append();
dm->tbTypes->FieldByName( "name" )->AsString = frInBox->Edit1->Text;
dm->tbTypes->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btTypEditClick(TObject *Sender)
{
if( dm->tbTypes->RecordCount == 0 ) return;
int r;
frInBox->Caption = "Редактирование типа устройства";
frInBox->Label1->Caption = "Введите название типа ";
frInBox->Edit1->Text = dm->tbTypes->FieldByName( "name" )->AsString;
r = frInBox->ShowModal();
if( ( r == mrOk ) && ( frInBox->Edit1->Text.Length() > 0 ) )
{
dm->tbTypes->Edit();
dm->tbTypes->FieldByName( "name" )->AsString = frInBox->Edit1->Text;
dm->tbTypes->Post();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btTypDeleteClick(TObject *Sender)
{
if( dm->tbTypes->RecordCount == 0 ) return;
dm->tbTypes->Delete();
}
//---
void __fastcall TfrMain::btInitDBClick(TObject *Sender)
{
int r;
r = Application->MessageBox(
"Все введенные данные из всех таблиц будут стерты и\
заполнены начальными значениями !!! Продолжить ?",
"Инициализация базы данных", MB_OKCANCEL );
if( r == IDOK )
{
dm->qryCMD->SQL->Clear();
dm->qryCMD->SQL->Add( "EXEC Init_DB" );
dm->qryCMD->Prepared = True;
dm->qryCMD->ExecSQL();
}
//---------------------------------------------------------------------------
void __fastcall TfrMain::btRepClick(TObject *Sender)
{
String cmd;
if( rbRep1->Checked == True )
{
cmd = "SELECT * FROM history";
dm->qryReport1->SQL->Clear();
dm->qryReport1->SQL->Add( cmd );
dm->qryReport1->Prepared = True;
dm->qryReport1->Open();
frReport1->QuickRep1->Preview();
}
else if( rbRep2->Checked == True )
{
cmd = "SELECT model, invn, date FROM devices WHERE type = " +
lcbRepTypeSelect->KeyValue;
dm->qryReport2->SQL->Clear();
dm->qryReport2->SQL->Add( cmd );
dm->qryReport2->Prepared = True;
dm->qryReport2->Open();
frReport2->QuickRep1->Preview();
}
else if( rbRep3->Checked == True )
{
cmd = "SELECT devices.model, devices.invn, types.name, devices.date FROM \
devices JOIN types ON ( types.id = devices.type ) WHERE owner = " +
lcbRepUserSelect->KeyValue;
dm->qryReport3->SQL->Clear();
dm->qryReport3->SQL->Add( cmd );
dm->qryReport3->Prepared = True;
dm->qryReport3->Open();
frReport3->QuickRep1->Preview();
}
else if( rbRep4->Checked == True )
{
cmd = "SELECT users.fio, departments.name, users.date FROM users \
JOIN departments ON ( departments.id = users.department ) \
ORDER BY users.fio";
dm->qryReport4->SQL->Clear();
dm->qryReport4->SQL->Add( cmd );
dm->qryReport4->Prepared = True;
dm->qryReport4->Open();
frReport4->QuickRep1->Preview();
}
else if( rbRep5->Checked == True )
{
frReport5->QuickRep1->Preview();
}
}
//---------------------------------------------------------------------------
Размещено на Allbest.ru
Подобные документы
Общие сведения об исследуемой организации, направления ее хозяйственной деятельности, характеристика используемой вычислительной техники и программного обеспечения. Разработка пользовательского интерфейса, шаблонов, отладка и тестирование программы.
отчет по практике [159,3 K], добавлен 11.04.2016Создание программного приложения для осуществления основных функций по заказу мебели, регистрации клиентов, сотрудничеству с поставщиками. Разработка интерфейса прикладной программы. Логическое проектирование базы данных и SQL-скрипт генерации таблиц.
курсовая работа [2,4 M], добавлен 11.02.2013Проектирование программного модуля: сбор исходных материалов; описание входных и выходных данных; выбор программного обеспечения. Описание типов данных и реализация интерфейса программы. Тестирование программного модуля и разработка справочной системы.
курсовая работа [81,7 K], добавлен 18.08.2014Перечень основных требований к базе данных "Сведения о простоях". Процесс создания таблиц и связей между ними. Результаты выполнения запросов и форма выведения отчетов. Разработка интерфейса программы. Руководство для администратора и пользователя.
курсовая работа [3,7 M], добавлен 11.11.2012Проектирование логической схемы данных для предметной области, физической модели базы данных. Разработка алгоритмов функциональных модулей программного приложения. Принципы тестирования спроектированного программного обеспечения, анализ эффективности.
курсовая работа [926,7 K], добавлен 20.05.2015Формирование входных и выходных данных, SQL–скрипт генерации таблиц базы данных. Создание интерфейса программного приложения и проектирование форм базы данных. Требования к аппаратно–программному обеспечению. Инструкции по установке и эксплуатации.
курсовая работа [1,6 M], добавлен 08.02.2013- Разработка геоинформационного программного обеспечения на базе открытых продуктов для целей кадастра
Исследование современных геоинформационных технологий, анализ их преимуществ и недостатков. Проектирование структуры базы данных, приложения и интерфейса проекта. Программная реализация геоинформационной системы и оценка ее экономической эффективности.
дипломная работа [3,2 M], добавлен 21.06.2012 Разработка программного продукта - приложения, позволяющего заносить данные анкетирования в базу данных MS SQL. Описание логики работы приложения, особенности пользовательского интерфейса. Формы просмотра анкет, описание процедур и функций программы.
курсовая работа [1,2 M], добавлен 16.08.2012Разработка программного обеспечения, предназначенного для автоматизации деятельности туристической фирмы. Анализ и проектирование базы данных предметной области. Создание концептуальной, логической и физической моделей данных и программы их обработки.
курсовая работа [816,5 K], добавлен 05.02.2018Исследование особенностей иерархической, сетевой и реляционной баз данных. Изучение заполнения таблиц текстовой информацией, разработка меню приложения. Характеристика создания справки, отчётов, запросов и форм. Определение связей и целостности данных.
курсовая работа [2,8 M], добавлен 11.06.2012