Информационная система транспортной компании в архитектуре клиент-сервер - Программирование, компьютеры и кибернетика курсовая работа

Информационная система транспортной компании в архитектуре клиент-сервер - Программирование, компьютеры и кибернетика курсовая работа




































Главная

Программирование, компьютеры и кибернетика
Информационная система транспортной компании в архитектуре клиент-сервер

Анализ предметной области. Выработка требований и ограничений. Серверная часть информационной системы. Запросы клиентского приложения. Триггеры для поддержки сложных ограничений целостности в базе данных. Пользовательский интерфейс клиентского приложения.


посмотреть текст работы


скачать работу можно здесь


полная информация о работе


весь список подобных работ


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

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Пояснительная записка к курсовому проекту
Информационная система транспортной компании в архитектуре клиент-сервер
Объектом разработки является информационная система, созданная с использованием средств, предоставляемых современными СУБД реляционного типа.
Цель работы - разработка программного обеспечения для информационной системы транспортной компании в архитектуре клиент - сервер.
Полученные результаты: в процессе разработки проводилось изучение основных средств, предоставляемых средой MS SQL SERVER 2012, и на основе их использования разработана и отлажена программа создания базы данных и серверной части информационной системы. Средствами языка программирования C++ в среде С++ Builder разработано программное обеспечение для информационной системы транспортной компании в архитектуре клиент-сервер.
Графическая часть включает в себя диаграмму базы данных.
Система баз данных-- это компьютеризированная система хранения записей, т.е. компьютеризированная система, основное назначение которой - хранить информацию, предоставляя пользователям средства ее извлечения и модификации. К информации может относиться все, что заслуживает внимания отдельного пользователя или организации, использующей систему, иначе говоря, все необходимое для текущей работы данного пользователя или предприятия. Основными составляющими информационных систем, построенных на основе баз данных, являются файлы БД, СУБД и программное обеспечение (клиентские приложения), позволяющие пользователю манипулировать информацией и совершать необходимые для решения его задач действия.
В процессе выполнения курсового проекта должно быть разработано и реализовано клиент - серверное приложение для базы данных транспортной компании. Пользовательский интерфейс должен быть как можно более удобным для конечного пользователя. Серверная часть должна содержать в себе таблицы, представления, хранимые процедуры, триггеры и быть разработана на языке Transact SQL. Помимо этого должны быть представлены: структура базы данных и результаты работы программы. В качестве языка разработки была выбрана среда С++ Builder, поскольку она обладает компонентами, позволяющими работать с базами данных.
Предметной областью данного проекта является транспортная компания. В качестве объектов этой области можно выделить заказчика, груз, автомобиль. Каждый из объектов содержит в себе некие характеристики и представляет собой таблицу базы данных.
Взаимосвязь этих объектов происходит в таблице «Рейсы», характеристиками которой являются код рейса, код автомобиля, код заказчика, откуда, куда, дата отправления, дата прибытия, код груза, цена, отметка об оплате, отметка о возврате.
В качестве пользователя системы был выбран менеджер. Его информационные задачи: регистрировать рейсы. Он добавляет записи в таблицу «Рейсы».
При разработке клиентского приложения необходимо определить ряд ограничений, для потенциального пользователя. В данной работе пользователем выступает менеджер транспортной компании. Он может управлять рейсами и пользоваться дополнительными табличками для внесения полной информации о рейсе.
На данные наложены ограничения, позволяющие уменьшить вероятность внесения не верной информации. Например: формат телефонного номера «+7(***)-***-**-**», где вместо «*» цифры от 0 до 9. Данные текстового типа ограничены по длине: адрес - 50 символов, ФИО - 40, номер кузова - 17.
В таблицах 1 - 7 отображены сущности и их атрибуты. Их взаимосвязь также можно проиллюстрировать схемой БД (см. рис 1).
1.5 Программная реализация проекта базы данных
Для создания базы данных была использована команда CREATE DATABASE Transport, для создания таблиц CREATE TABLE, где Transport - имя БД. Например, создание таблицы «Грузы» будет иметь вид:
Kod_gruza TINYINT PRIMARY KEY CHECK (Kod_gruza>0 AND Kod_gruza<200),
Kod_vida_gruza_F TINYINT FOREIGN KEY REFERENCES Vidy_gruzov(Kod_vida_gruza) CHECK (Kod_vida_gruza_F>0 AND Kod_vida_gruza_F<200) NOT NULL
Для управления таблицами существуют команды:
ALTER TABLE имя_БД и DROP TABLE имя_БД.
Первая производит модификацию таблицы, а вторая выполняет ее удаление. Например, добавим в таблицу поле вес, после чего модифицируем его, а затем удалим.
ADD CONSTRAINT Ves CHECK ves > 0 AND ves < 5000)
Для заполнения таблицы используется команда INSERT.
Insert Into [Gruzy] Values (1,'Кран',1)
Запросы на выборку данных относят к двум группам: простые и сложные. В простых запросах выборка идет из одной таблицы, а в сложных может быть задействовано сразу несколько таблиц. Сложные запросы можно реализовать методом вложенных запросов и методом объединения таблиц. В данном проекте используются вложенные запросы.
1. По Дате отправки рейса определить цены оплаченных рейсов.
SELECT Data_otpravki AS [Дата отправки], Cost AS "Цена" FROM Reisy WHERE Data_otpravki BETWEEN getdate()-30 AND getdate()
2. По Грузу определить вид автомобиля для перевозки.
SELECT NAME_vid_avto AS "Вид автомобиля" FROM Gruzy,Vidy_gruzov, Vidy_avto WHERE Gruzy.Kod_vida_gruza_F=Vidy_gruzov.Kod_vida_gruza AND Vidy_gruzov.Kod_vida_avto_F=Vidy_avto.Kod_vida_avto AND Gruzy.NAME_gruz='Танк'
3. По Адресу отправки определить название организации.
SELECT NAME_organization AS "Название организации", Kuda AS [Адрес] FROM Zakazchiki, Reisy WHERE Reisy.Kod_zakazchika_F=Zakazchiki.Kod_zakazchika AND Reisy.Kuda LIKE 'г. Заречный%'
Представление (VIEW) - тип таблицы, чье содержание выбирается из других таблиц с помощью выполнения запроса. Поскольку значения в этих таблицах меняются, то автоматически, их значения могут быть показаны представлением. Помимо всего, представления способны маскировать от конечного пользователя, как столбцы, так и строки.
Данная работа содержит 2 представления.
Представление ViewReisy используется для более удобного отображения перечня товаров, имеющихся на складе. Оно объединяет в себе данные из четырех таблиц - это «Рейсы», «Заказчики», «Автомобили» и «Грузы» (см. Рис 2).
,[Data_otpravki] AS [Дата отправки]
,[Data_pribytiya] AS [Дата прибытия]
,[Kod_zakazchika_F] AS [Код заказчика]
,[Otmetka_ob_oplate] AS [Отметка об оплате]
,[Otmetka_o_vozvrate] AS [Отметка о возврате]
FROM [Reisy],[Zakazchiki],[Avto],[Gruzy]
WHERE Reisy.Kod_zakazchika_F=Zakazchiki.Kod_zakazchika
AND Reisy.Kod_gruza_F=Gruzy.Kod_gruza;
Представление ViewZakazchiki используется для скрытия структуры бд и для реализации более удобной формы работы (см. Рис 3).
SELECT [Kod_zakazchika] AS [Код заказчика]
,[NAME_organization] AS [Название организации]
Рис 3 . Представление ViewZakazchiki
1.8 Серверная часть информационной системы
Серверная часть информационной системы может содержать в себе бизнес логику, а именно пользовательские функции, хранимые процедуры, триггеры, которые могут облегчить клиентское приложение и его сопровождение, но замедлить работу сервера при большом количестве пользователей и поступающих запросов.
Данный курсовой проект содержит 5 хранимых процедур.
1. DefaultSizeReisy - используется в клиенте для задания ширины столбов по умолчанию.
@st0 INT OUTPUT,@st1 INT OUTPUT,@st2 INT OUTPUT,@st3 INT OUTPUT,
@st4 INT OUTPUT,@st5 INT OUTPUT,@st6 INT OUTPUT,@st7 INT OUTPUT,
@st8 INT OUTPUT,@st9 INT OUTPUT,@st10 INT OUTPUT,@st11 INT OUTPUT,
@st0=60, @st1=100, @st2=180, @st3=130, @st4=130, @st5=90, @st6=90, @st7=100,
@st8=60, @st9=0, @st10=0, @st11=0, @st12=0, @st13=0;
3. SearchReisy - для поиска в представления ViewReisy.
@Kod_reisa VARCHAR,@Reg_nomer VARCHAR(9)=''
,@FIO VARCHAR(40)='',@Otkuda VARCHAR(50)=''
,@Kuda VARCHAR(50)='',@Data_otpravki VARCHAR(10)=''
,@Data_pribytiya VARCHAR(10)='',@NAME_gruz VARCHAR(20)=''
WHERE CAST([Код рейса] AS VARCHAR(9)) LIKE '%'+@Kod_reisa+'%'
AND [Номер автомобиля] LIKE ('%'+@Reg_nomer+'%')
AND [Дата отправки] LIKE '%'+@Data_otpravki+'%'
AND [Дата прибытия] LIKE '%'+@Data_pribytiya+'%'
AND CAST([Цена] AS VARCHAR(9)) LIKE ('%'+@Cost+'%')
4. DeleteReisy- для удаления рейса по его коду.
DELETE FROM Reisy WHERE Kod_reisa=@Kod_reisa
5. MyStatistics - для вывода статистики по рейсам.
SELECT @kol_reysov=COUNT(*),@avg_reysov=AVG(Cost) FROM Reisy;
SELECT @kol_zakaz=COUNT(*) FROM Zakazchiki;
SELECT @kol_avto=COUNT(*) FROM Avto;
SELECT @kol_reysov_paid=COUNT(*),@cost_reysov_paid=SUM(Cost) FROM Reisy WHERE [Otmetka_ob_oplate]=1 AND [Otmetka_o_vozvrate]=0;
SELECT @kol_reysov_not_paid=COUNT(*),@cost_reysov_not_paid=SUM(Cost) FROM Reisy WHERE [Otmetka_ob_oplate]=0 AND [Otmetka_o_vozvrate]=0;
SELECT @kol_reysov_return=COUNT(*),@cost_reysov_return=SUM(Cost) FROM Reisy WHERE [Otmetka_o_vozvrate]=1;
1.8.2 Триггеры для поддержки сложных ограничений целостности в базе данных
Данный курсовой проект содержит два триггера.
1. Вставка записи в табличку перенаправленная со вставки в представление.
Declare @Kod_reisa INT,@Reg_nomer VARCHAR(9),@FIO VARCHAR(40)
,@Otkuda VARCHAR(50),@Kuda VARCHAR(50),@Data_otpravki VARCHAR(10)
,@Data_pribytiya VARCHAR(10),@NAME_gruz VARCHAR(20),@Cost INT
,@Otmetka_ob_oplate INT,@Otmetka_o_vozvrate INT
SELECT @Kod_reisa=[Код рейса],@Reg_nomer=[Номер автомобиля]
,@FIO=[Заказчик],@Otkuda=[Откуда],@Kuda=[Куда]
,@Data_otpravki=[Дата отправки],@Data_pribytiya=[Дата прибытия]
,@Cost=[Цена],@NAME_gruz=[Груз],@Otmetka_ob_oplate=[Отметка об оплате]
,@Otmetka_o_vozvrate=[Отметка о возврате]
INSERT Reisy VALUES(@Kod_reisa,(SELECT Kod_avto FROM Avto WHERE [Reg_nomer]=@Reg_nomer),(SELECT Kod_zakazchika FROM Zakazchiki WHERE [FIO]=@FIO), @Otkuda,@Kuda,@Data_otpravki,@Data_pribytiya,(SELECT Kod_gruza FROM Gruzy WHERE [NAME_gruz]=@NAME_gruz),@Cost,@Otmetka_ob_oplate, @Otmetka_o_vozvrate);
Триггер вызывается при вставке в представление ViewReisy и делает вставку данных в таблицу «Рейсы» (см. Рис 4).
Рис 4 . Таблица до и после работы триггера.
2. Обновление прибыли от клиента при вставке.
Declare @Kod_zakazchika INT,@i INT=1;
WHILE @i<=(SELECT COUNT(*) FROM inserted) BEGIN
SELECT TOP 1 @Kod_zakazchika=TMP.Kod_zakazchika_F
FROM (SELECT TOP (@i) Kod_zakazchika_F FROM inserted ORDER BY Kod_zakazchika_F DESC) AS TMP ORDER BY TMP.Kod_zakazchika_F;
IF(SELECT COUNT(Reisy.Cost) FROM Reisy WHERE @Kod_zakazchika=Reisy.Kod_zakazchika_F AND Reisy.Otmetka_o_vozvrate=0 AND Reisy.Otmetka_ob_oplate=1)>0BEGIN
UPDATE Zakazchiki SET Profit=(SELECT SUM(Reisy.Cost) FROM Reisy WHERE @Kod_zakazchika=Reisy.Kod_zakazchika_F AND Reisy.Otmetka_o_vozvrate=0 AND Reisy.Otmetka_ob_oplate=1) WHERE Kod_zakazchika=@Kod_zakazchika; END;
WHILE @i<=(SELECT COUNT(*) FROM deleted WHERE Kod_zakazchika_F NOT IN (SELECT Kod_zakazchika_F FROM inserted)) BEGIN
SELECT TOP 1 @Kod_zakazchika=TMP.Kod_zakazchika_F
FROM (SELECT TOP (@i) Kod_zakazchika_F FROM deleted WHERE Kod_zakazchika_F NOT IN (SELECT Kod_zakazchika_F FROM inserted) ORDER BY Kod_zakazchika_F DESC) AS TMP ORDER BY TMP.Kod_zakazchika_F;
IF(SELECT COUNT(Reisy.Cost) FROM Reisy WHERE Kod_zakazchika = Reisy.Kod_zakazchika_F AND Reisy.Otmetka_o_vozvrate=0 AND Reisy.Otmetka_ob_oplate=1)>0 BEGIN
UPDATE Zakazchiki SET Profit=(SELECT SUM(Reisy.Cost) FROM Reisy WHERE @Kod_zakazchika=Reisy.Kod_zakazchika_F AND Reisy.Otmetka_o_vozvrate=0 AND Reisy.Otmetka_ob_oplate=1) WHERE Kod_zakazchika=@Kod_zakazchika;
Данный триггер при добавлении в таблицу рейсы пересчитывает прибыль от заказчиков (см. Рис 5).
Рис 5 . До и после добавления рейса.
1.9 Запросы клиентского приложения к базе данных
Разработанное клиентское приложение взаимодействует с сервером БД посредством передачи запросов, и приема их результатов. Большинство реализованных функций клиента вызывают хранимые процедуры. Например, при открытии главного окна вызывается процедура, возвращающая размеры колонок. Добавление рейсов также использует процедуру, которая принимает введенные данные и заполняет таблицу командой INSERT. Поиск рейсов происходит также, посредством хранимой процедуры.
Для оптимизации взаимодействия клиента с сервером необходимо избегать передачи лишней информации для экономии траффика. Это и позволяют сделать хранимые процедуры. Также, их достоинствами является то, что они хранятся на сервере в откомпилированном виде и позволяют скрывать информацию.
1.10 Пользовательский интерфейс клиентского приложения
При проектировке приложения надо учитывать то, что оно будет использоваться продолжительное время пользователем, не знающим языка Transact - SQL. Поэтому, запросы к серверу должны быть прописаны в исходном коде ПО, а сам интерфейс (см. Рис 6 - Рис 10) должен быть максимально интуитивным и не утомлять работника.
По большей части пользователь будет работать с первым окном и кнопками добавить/изменить рейс. При необходимости он может воспользоваться поиском или посмотреть другие таблички.
В результате выполнения курсового проекты было разработано и реализовано клиент - серверное приложение для менеджера транспортной компании. При помощи приложения можно работать с рейсами. Приложение разработано в среде С++ Builder на языке C++. Серверная часть реализована в SQL SERVER 2012 на языке Transact - SQL. Программа отлажена. Результаты работы проиллюстрированы. Задание выполнено в полном объеме.
1. А. Я. Архангельский. Программирование в C++ Builder. - Бином, 2010. 1304с.
2. И. А. Казакова. Основы языка Transact SQL. - Пенза: Издательство ПГУ, 2013. 163 с.
3. А. Г. Бондарь. Interbase и Firebird. - Санкт-Петербург: БХВ-Петербург, 2012. 593 с.
Kod_marki TINYINT PRIMARY KEY CHECK (Kod_marki>0 AND Kod_marki<200),
Kod_vida_avto TINYINT PRIMARY KEY CHECK (Kod_vida_avto>0 AND Kod_vida_avto<200),
Kod_vida_gruza TINYINT PRIMARY KEY CHECK (Kod_vida_gruza>0 AND Kod_vida_gruza<200),
NAME_vid_gruza VARCHAR(20) NOT NULL,
Kod_vida_avto_F TINYINT FOREIGN KEY REFERENCES Vidy_avto(Kod_vida_avto) CHECK (Kod_vida_avto_F>0 AND Kod_vida_avto_F<200) NOT NULL
Kod_gruza TINYINT PRIMARY KEY CHECK (Kod_gruza>0 AND Kod_gruza<200),
Kod_vida_gruza_F TINYINT FOREIGN KEY REFERENCES Vidy_gruzov(Kod_vida_gruza) CHECK (Kod_vida_gruza_F>0 AND Kod_vida_gruza_F<200) NOT NULL
Kod_avto SMALLINT PRIMARY KEY CHECK (Kod_avto>0 AND Kod_avto<500),
Kod_marki_F TINYINT FOREIGN KEY REFERENCES Marka_avto(Kod_marki) CHECK (Kod_marki_F>0 AND Kod_marki_F<200) NOT NULL,
Kod_vida_avto_F TINYINT FOREIGN KEY REFERENCES Vidy_avto(Kod_vida_avto) CHECK (Kod_vida_avto_F>0 AND Kod_vida_avto_F<200) NOT NULL,
Reg_nomer CHAR(9) CHECK (Reg_nomer LIKE '[а,е,м,о,с,у][0-9][0-9][0-9][а,е,м,о,с,у][а,е,м,о,с,у][0-9][0-9][0-9," "]') NOT NULL,
Nomer_kuzova VARCHAR(17) CHECK (Nomer_kuzova LIKE '[0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9,A-H,J-N,P,R-Z][0-9][0-9][0-9][0-9]') NOT NULL,
Nomer_dvigatelya VARCHAR(10) NOT NULL,
God_vypuska SMALLINT CHECK (God_vypuska>=2010 AND God_vypuska<=2040) NOT NULL,
Data_poslednego_TO DATE CHECK (Data_poslednego_TO BETWEEN '2013-01-01' AND '2040-01-01') NOT NULL
Kod_zakazchika SMALLINT PRIMARY KEY CHECK (Kod_zakazchika>0 AND Kod_zakazchika<10000),
NAME_organization VARCHAR(50) NOT NULL,
Telephone VARCHAR(16) CHECK (Telephone LIKE '[+][7][(][0-9][0-9][0-9][)][0-9][0-9][0-9][-][0-9][0-9][-][0-9][0-9]') NOT NULL
Kod_reisa SMALLINT PRIMARY KEY CHECK (Kod_reisa>0 AND Kod_reisa<100000),
Kod_avto_F SMALLINT FOREIGN KEY REFERENCES Avto(Kod_avto) CHECK (Kod_avto_F>0 AND Kod_avto_F<500) NOT NULL,
Kod_zakazchika_F SMALLINT FOREIGN KEY REFERENCES Zakazchiki(Kod_zakazchika) CHECK (Kod_zakazchika_F>0 AND Kod_zakazchika_F<10000) NOT NULL,
Data_otpravki DATE CHECK (Data_otpravki BETWEEN '2013-01-01' AND '2040-01-01') NOT NULL,
Data_pribytiya DATE CHECK (Data_pribytiya BETWEEN '2013-01-01' AND '2040-01-01') NOT NULL,
Kod_gruza_F SMALLINT FOREIGN KEY REFERENCES Gruzy(Kod_gruza) CHECK (Kod_gruza_F>0 AND Kod_gruza_F<10000) NOT NULL,
Cost INT CHECK (Cost>0 AND COST<10000000) NOT NULL,
-1. По Дате отправки рейса определить цены оплаченных рейсов.
SELECT Data_otpravki AS Дата, Cost AS "Цена" FROM Reisy WHERE Data_otpravki BETWEEN getdate()-70 AND getdate()
--2. По Номеру кузова определить дату последнего ТО.
SELECT Data_poslednego_TO AS "Дата последнего ТО" FROM Avto WHERE Nomer_kuzova = 'H38A8N846D2F13478'
--3. По ФИО заказчика определить его номер телефона.
SELECT Telephone AS "Телефон" FROM Zakazchiki WHERE FIO LIKE 'Филиппов%'
--4. По Дате отправки груза определить список ФИО заказчиков.
SELECT Data_otpravki AS Дата, FIO AS "ФИО" FROM Zakazchiki, Reisy WHERE Reisy.Kod_zakazchika_F=Zakazchiki.Kod_zakazchika AND Reisy.Data_otpravki BETWEEN getdate()-70 AND getdate()
--5. По Регистрационному номеру авто определить марку.
SELECT NAME_marka AS "Марка" FROM Marka_avto, Avto WHERE Avto.Kod_marki_F=Marka_avto.Kod_marki AND Avto.Reg_nomer='м345оу58'
--6. По Дате отправления определить виды грузов.
SELECT Data_otpravki AS Дата, NAME_vid_gruza AS "Вид груза" FROM Reisy,Gruzy,Vidy_gruzov WHERE Reisy.Kod_gruza_F=Gruzy.Kod_gruza AND Gruzy.Kod_vida_gruza_F=Vidy_gruzov.Kod_vida_gruza AND Reisy.Data_otpravki BETWEEN getdate()-70 AND getdate()
--7. По Грузу определить вид автомобиля для перевозки.
SELECT NAME_vid_avto AS "Вид автомобиля" FROM Gruzy,Vidy_gruzov, Vidy_avto WHERE Gruzy.Kod_vida_gruza_F=Vidy_gruzov.Kod_vida_gruza AND Vidy_gruzov.Kod_vida_avto_F=Vidy_avto.Kod_vida_avto AND Gruzy.NAME_gruz='Танк'
--8. По Цене рейса определить виды грузов.
SELECT NAME_vid_gruza AS "Вид груза", Cost AS Цена FROM Reisy,Gruzy,Vidy_gruzov WHERE Reisy.Kod_gruza_F=Gruzy.Kod_gruza AND Gruzy.Kod_vida_gruza_F=Vidy_gruzov.Kod_vida_gruza AND Reisy.Cost BETWEEN 10000 AND 30000
--9. По Адресу отправки определить название организации.
SELECT NAME_organization AS "Название организации",Kuda AS Адрес FROM Zakazchiki, Reisy WHERE Reisy.Kod_zakazchika_F=Zakazchiki.Kod_zakazchika AND Reisy.Kuda LIKE 'г. Заречный%'
--10. По Дате прибытия определить виды автомобилей.
SELECT Data_pribytiya AS Дата,NAME_vid_avto AS "Виды автомобилей" FROM Reisy, Avto, Vidy_avto WHERE Reisy.Kod_avto_F=Avto.Kod_avto AND Avto.Kod_vida_avto_F=Vidy_avto.Kod_vida_avto AND Reisy.Data_pribytiya BETWEEN getdate()-70 AND getdate()
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__published: // IDE-managed Components
TADOStoredProc *ADOStoredProcDefaultSize;
void __fastcall DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect, int DataCol,
TColumn *Column, TGridDrawState State);
void __fastcall DBGrid1CellClick(TColumn *Column);
void __fastcall ButtonSearchClick(TObject *Sender);
void __fastcall ButtonCancelClick(TObject *Sender);
void __fastcall ButtonClearClick(TObject *Sender);
void __fastcall BitBtnDeleteClick(TObject *Sender);
void __fastcall BitBtnAddClick(TObject *Sender);
void __fastcall BitBtnEditClick(TObject *Sender);
void __fastcall BitBtnAvtoTableClick(TObject *Sender);
void __fastcall BitBtnZakazchikiClick(TObject *Sender);
void __fastcall BitBtnGruzTableClick(TObject *Sender);
void __fastcall BitBtnMarkaTableClick(TObject *Sender);
void __fastcall BitBtnVidyAvtoTableClick(TObject *Sender);
void __fastcall Edit_Kod_reisaKeyDown(TObject *Sender, WORD &Key, TShiftState Shift);
void __fastcall BitBtnVidyGruzivTableClick(TObject *Sender);
void __fastcall BitBtn1Click(TObject *Sender);
void __fastcall DBGrid_Default_setting();
__fastcall TFormMain(TComponent* Owner);
//---------------------------------------------------------------------------
extern PACKAGE TFormMain *FormMain;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
__fastcall TFormMain::TFormMain(TComponent* Owner)
ADOStoredProcDefaultSize->Parameters->Refresh();
n_defaultSize=ADOStoredProcDefaultSize->Parameters->Count-1;
ADOStoredProcDefaultSize->Parameters->Items[i]->Value=0;
ADOStoredProcDefaultSize->ExecProc();
defaultSize=new int[n_defaultSize];
defaultSize[i]=ADOStoredProcDefaultSize->Parameters->Items[i+1]->Value;
//---------------------------------------------------------------------------
void __fastcall TFormMain::DBGrid1DrawColumnCell(TObject *Sender, const TRect &Rect,
int DataCol, TColumn *Column, TGridDrawState State)
if(Column->Field->DataSet->FieldByName("Отметка об оплате")->AsBoolean==0)
DBGrid1->Canvas->Brush->Color = clSilver;
DBGrid1->Canvas->Brush->Color = (TColor)RGB(190,255,150);
if(Column->Field->DataSet->FieldByName("Отметка о возврате")->AsBoolean==1)
DBGrid1->Canvas->Brush->Color = (TColor)RGB(250,200,90);
if(Column->FieldName=="Заказчик" || Column->FieldName=="Номер автомобиля" || Column->FieldName=="Груз")
DBGrid1->Canvas->Font->Color = clBlue;
DBGrid1->Canvas->Font->Style = TFontStyles() << fsUnderline;
DBGrid1->DefaultDrawColumnCell(Rect, DataCol, Column, State);
//---------------------------------------------------------------------------
void __fastcall TFormMain::DBGrid1CellClick(TColumn *Column)
if(Column->FieldName=="Номер автомобиля")
TForm2 *Form2=new TForm2(this,ADOConnection1,3,ADOQuery1->Fields->Fields[9]->AsInteger);
else if(Column->FieldName=="Заказчик")
TForm3 *Form3=new TForm3(this,ADOQuery1->Fields->Fields[10]->AsInteger,ADOConnection1);
TForm4 *Form4=new TForm4(this,ADOQuery1->Fields->Fields[11]->AsInteger,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonSearchClick(TObject *Sender)
ADOQuery1->SQL->Add(System::String("")+
//---------------------------------------------------------------------------
void __fastcall TFormMain::DBGrid_Default_setting()
if(defaultSize[i]) DBGrid1->Columns->Items[i]->Width=defaultSize[i];
else DBGrid1->Columns->Items[i]->Visible=0;
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonCancelClick(TObject *Sender)
ADOQuery1->SQL->Add("EXEC SelectReisy");
//---------------------------------------------------------------------------
void __fastcall TFormMain::ButtonClearClick(TObject *Sender)
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnDeleteClick(TObject *Sender)
int kod_reisa=ADOQuery1->Fields->Fields[0]->AsInteger;
ADOQuery1->SQL->Add(System::String("")+"EXEC DeleteReisy "+kod_reisa);
ADOQuery1->SQL->Add("EXEC SelectReisy");
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnAddClick(TObject *Sender)
TForm5 *Form5=new TForm5(this,ADOConnection1,1);
ADOQuery1->SQL->Add("EXEC SelectReisy");
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnEditClick(TObject *Sender)
TForm5 *Form5=new TForm5(this,ADOConnection1,2,ADOQuery1->Fields->Fields[0]->AsInteger);
ADOQuery1->SQL->Add("EXEC SelectReisy");
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnAvtoTableClick(TObject *Sender)
TForm6 *Form6=new TForm6(this,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnZakazchikiClick(TObject *Sender)
TForm7 *Form7=new TForm7(this,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnGruzTableClick(TObject *Sender)
TForm8 *Form8=new TForm8(this,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnMarkaTableClick(TObject *Sender)
TForm9 *Form9=new TForm9(this,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnVidyAvtoTableClick(TObject *Sender)
TForm10 *Form10=new TForm10(this,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::Edit_Kod_reisaKeyDown(TObject *Sender, WORD &Key, TShiftState Shift)
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtnVidyGruzivTableClick(TObject *Sender)
TForm11 *Form11=new TForm11(this,ADOConnection1);
//---------------------------------------------------------------------------
void __fastcall TFormMain::BitBtn1Click(TObject *Sender)
TFormStat *Form=new TFormStat(this,ADOConnection1);
//---------------------------------------------------------------------------
Рис 13 Результат работы процедуры SearchReisy с параметром ФИО «на»
Рис 14. Результат работы процедуры SelectReisy
@st0 = @st0 OUTPUT,@st1 = @st1 OUTPUT,@st2 = @st2 OUTPUT,
@st3 = @st3 OUTPUT,@st4 = @st4 OUTPUT,@st5 = @st5 OUTPUT,
@st6 = @st6 OUTPUT,@st7 = @st7 OUTPUT,@st8 = @st8 OUTPUT,
@st9 = @st9 OUTPUT,@st10 = @st10 OUTPUT,@st11 = @st11 OUTPUT,
@st12 = @st12 OUTPUT, @st13 = @st13 OUTPUT
Рис 15. Результат работы процедуры DefaultSizeReisy
@kol_reysov_paid = @kol_reysov_paid OUTPUT,
@kol_reysov_not_paid = @kol_reysov_not_paid OUTPUT,
@kol_reysov_return = @kol_reysov_return OUTPUT,
@cost_reysov_paid = @cost_reysov_paid OUTPUT,
@cost_reysov_not_paid = @cost_reysov_not_paid OUTPUT,
@cost_reysov_return = @cost_reysov_return OUTPUT
Системный анализ предметной области. Выбор инструментальных средств для создания программного обеспечения. Программирование на стороне SQL-сервера. Создание клиентского Win-приложения, пользовательский интерфейс. Физическое проектирование базы данных. курсовая работа [3,7 M], добавлен 20.11.2013
Разработка приложения, позволяющего автоматизировать документооборот предприятия по списанию основных средств. Мероприятия по защите и обеспечению целостности базы данных. Разработка клиентского приложения. Запросы к базе данных, руководство пользователя. курсовая работа [700,0 K], добавлен 14.01.2015
Автоматизация системы снятия показаний счетчиков энергии. Разработка базы данных и клиентского приложения для структур жилищно-коммунального хозяйства, занимающихся составлением квитанций. Описание предметной области. Тестирование клиентского приложения. курсовая работа [953,3 K], добавлен 01.09.2016
Информационные задачи и круг пользователей системы. Выработка требований и ограничений. Разработка проекта базы данных. Программная реализация проекта базы данных. Разработка хранимых процедур для поддержки сложных ограничений целостности в базе данных. курсовая работа [706,2 K], добавлен 17.06.2012
Разработка базы данных для информационной системы "Библиотека". Системный анализ, инфологическое, даталогическое и физическое проектирование. Программирование бизнес-логики, разработка клиентского приложения. Создание web-приложения, web-доступ. курсовая работа [3,3 M], добавлен 15.09.2014
Анализ предметной области, формулировка общих и специальных требований к информационной системе с адаптивным интерфейсом. Разработка структур данных, программного обеспечения, модуля бизнес-логики, клиентского приложения; администрирование сервера. дипломная работа [2,5 M], добавлен 20.07.2014
Реализация базы данных и серверной части информационной системы склада средствами СУБД Microsoft SQL Server. Анализ предметной области, информационных задач, пользовательской системы. Программа реализации проекта. Выработка требований и ограничений. курсовая работа [2,4 M], добавлен 15.11.2015
Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д. PPT, PPTX и PDF-файлы представлены только в архивах. Рекомендуем скачать работу .

© 2000 — 2021



Информационная система транспортной компании в архитектуре клиент-сервер курсовая работа. Программирование, компьютеры и кибернетика.
Контрольная работа по теме Панорама современного естествознания
Реферат Уроки Карибского Кризиса
Контрольная работа по теме Прикладні задачі, які зводяться до розв'язання диференціальних рівнянь
Дипломная работа по теме Закладная
Контрольная работа по теме Конкурентоспособность услуги энергоаудита
Сочинение по теме Алоис Йирасек. Псоглавцы
Эксплуатация И Монтаж Курсовые
Сочинение: Тема Родины в творчестве А. Блока
Идентификация парфюмерно-косметических товаров
Реферат: Внутреннее содержание
Сыбайлас Жемқорлық Туралы Эссе
Реферат: Право на объект интеллектуальной собственности. Скачать бесплатно и без регистрации
Каким Должно Быть Введение В Реферате
Реферат: Управление конфликтами и методы их разрешения
Дипломная работа: Улучшение финансового состояния предприятия на базе системы принятия управленческих решений в ОАО "ММК имени Ильича"
Сочинение Чем Живет Моя Страна
Критерии Оценивается Эссе
Реферат: Women In Julius Ceasar Essay Research Paper
Реферат: Причины возникновения пожаров в жилых и общественных зданиях
Курсовая Работа На Тему Ремонт Основных Средств
Управление персоналом в малом бизнесе - Менеджмент и трудовые отношения курсовая работа
Правовое регулирование деятельности государственных и муниципальных органов в сфере занятости населения - Государство и право дипломная работа
Классификация федеративных государств - Государство и право курсовая работа


Report Page