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

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

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 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

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.