Сеть компьютерных магазинов "21 век"
Разработка информационной системы с возможностями добавления, удаления, редактирования информации о магазинах, продавцах, поставщиках, продажах, покупателях, заказах, комплектующих, каталоге. Организация взаимодействия клиентской программы с базой данных.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 28.02.2013 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Федеральное агентство по образованию РФ
РГРТУ
Кафедра ВПМ
Пояснительная записка
к курсовому проекту
по дисциплине
«Клиент-серверные технологии баз данных»
по теме:
Сеть компьютерных магазинов “21 век”
Выполнили студенты группы 547:
Хрусталев К.Д.
Бехтин А.А.
Рязань, 2008
Введение
Одним из важнейших условий обеспечения эффективного функционирования любой организации является наличие развитой информационной системы.
Информационная система представляет собой систему, реализующую автоматизированный сбор, обработку и манипулирование данными и включающая технические средства обработки данных, программное обеспечение и обслуживающий персонал.
База данных обеспечивает хранение информации и представляет собой поименованную совокупность данных, организованных по определенным правилам, включающим общие принципы описания, хранения и манипулирования данными.
Процесс создания информационной системы обычно включает следующие этапы:
* проектирование БД;
* создание файла проекта БД;
* создание БД (формирование и связывание таблиц, ввод данных);
* создание меню приложения;
* создание запросов;
* создание экранных форм, отчетов;
* генерация приложения как исполняемой программы.
Предметная область проекта - сеть компьютерных магазинов.
В данном курсовом проекте реализуются добавление, удаление и редактирование записей, просмотр и печать отчетов.
1. Анализ задачи
1.1 Исследование информационных потребностей пользователя ИС
Задача курсового проекта заключается в создании такой информационной системы, которая включала бы в себя следующие возможности:
1. Добавление, удаление и редактирование информации о магазинах, продавцах, поставщиках, продажах, покупателях, заказах, комплектующих, каталоге. Необходимо предусмотреть для обеспечения наиболее эффективной работы пользователя удаление и редактирование путем непосредственного выбора записи из таблицы.
2. Просмотр информации о магазинах, продавцах, поставщиках, продажах, покупателях, заказах, комплектующих, каталоге.
3. Просмотр и печать информации о проданных товарах, содержащей сведения о покупателе, магазине, количестве и цене конкретного товара.
4. Просмотр и печать информации о комплектующих требуемого компьютера.
5. Осуществление поиска необходимой информации о товарах, магазинах, продавцах, поставщиках, продажах, покупателях, заказах, комплектующих и каталоге.
6. Осуществление операций продажи, заказов, а также, просмотр полного перечня сотрудников, клиентов и поставщиков конкретного магазина, выбор которого осуществляется при запуске клиентского приложения.
7. Возможность перехода из системы текущего магазина в систему необходимого.
8. Возможность входа в систему с разными уровнями доступа к данным: пользовательский (осуществляет только просмотр информации) и администраторский (осуществляет все возможные операции, представленные в системе).
9. Возможность смены пользователя в ходе работы программы.
10. Осуществление контроля введенных данных: проверка на соответствие типов, на ввод обязательных полей данных, а также, на ввод только возможных значений, считываемых из необходимых таблиц.
11. Возможность просмотра информации из таблиц в режиме реального времени.
1.2 Разработка общей структуры ИС
При разработке информационной системы была использована архитектура «Клиент-сервер».
Рис.1. Архитектура «Клиент-сервер»
В архитектуре «клиент-сервер» БД размещается на компьютере-сервере сети. Приложение, осуществляющее работу с этой БД, находится на компьютере пользователя. Приложение пользователя является клиентом. Клиент и сервер взаимодействуют следующим образом: клиент формирует и отсылает запрос (SQL-запрос) серверу, на котором размещена БД. Сервер выполняет запрос и выдает клиенту в качестве результатов требуемые данные. К достоинствам такой архитектуры относятся:
- для работы с данными используется реляционный способ доступа, что снижает нагрузку на сеть;
- приложение напрямую не управляет базой, управлением занимается только сервер; в связи с этим можно обеспечить высокую степень защиты данных;
- в приложении отсутствует код, связанный с управлением БД, поэтому приложения упрощаются.
Структура информационной системы представляет собой клиентское приложение, написанное на языке программирования высокого уровня Borland Delphi7, взаимодействующее с базой данных «Kursovaya» с помощью технологии ADO. База данных разработана на языке Transact-SQL в системе управления базами данных Microsoft SQL Server 2000.
2. Разработка серверной части информационной системы
2.1 Инфологическое проектирование БД
2.1.1 Выявление сущностей и связей
Инфологическая модель позволяет представить структуру данных в наиболее общем виде. Инфологическая модель строится по результатам анализа предметной области. Она позволяет отобразить все выявленные объекты и связи между ними. В рамках данной модели не отображаются списки выявленных свойств объектов, хотя при анализе предметной области объекта такие свойства выявляются. В инфологической модели объекты называют сущностями. Этап разработки данной модели является наиболее сложным. Ошибки в составлении модели, выявленные на последующих этапах разработки могут привести к необходимости полной переработки базы данных. Наиболее распространенным способом разработки инфологической модели является метод ER-диаграмм (метод “сущность-связь”). Суть метода заключается в том, что в предметной области выявляются сущности соответствующие всем присутствующим в предметной области классам объектов. Далее между сущностями выявляются связи. Полученные сущности и связи изображают с помощью ER-диаграмм.
Анализируя предметную область, можно выделить следующие сущности:
- Магазин - сущность, содержащая информацию о магазинах;
- Продажа - сущность, позволяющая вести отчет о проданных товарах;
- Покупатели - сущность для описания покупателей магазина;
- Продавцы - сущность для описания продавцов магазина;
- Каталог - сущность, содержащая информацию о предоставляемом товаре;
- Поставщики - сущность для описания поставщиков;
- Комплектующие - сущность, содержащая информацию о комплектующих компьютера;
- Заказы - сущность, позволяющая вести учет о заказах;
Рассмотрим связи между сущностями.
Сущность Покупатели связана с сущностью Заказы. Одна фирма может сделать несколько заказов. Степень связи - «один-ко-многим».
Рис. 2.
Сущность Покупатели связана с сущностью Продажа. Одна фирма может участвовать в нескольких продажах. Степень связи - «один-ко-многим».
Рис. 3.
Сущность Продавцы связана с сущностью Продажа.Один продавец может оформить несколько продаж. Степень связи - «один-ко-многим».
Рис. 4.
Сущность Продавцы связана с сущностью Заказы. Один продавец может оформить несколько заказов. Степень связи - «один-ко-многим».
Рис. 5.
Сущность Каталог связана с сущностью Продажа. Из каталога выбираются товары для продажи. Степень связи - «один-ко-многим».
Рис. 6.
Сущность Каталог связана с сущностью Заказы. Из каталога выбираются товары для оформления заказов. Степень связи - «один-ко-многим».
Рис. 7.
Сущность Магазин связана с сущностью Продавцы. В магазине может работать несколько продавцов. Степень связи - «один-ко-многим».
Рис. 8.
Сущность Магазин связана с сущностью Продажа. В одном магазине может осуществляться несколько операций продажи. Степень связи - «один-ко-многим».
1 N
Рис. 9.
Сущность Магазин связана с сущностью Заказы. В одном магазине может оформляться несколько заказов. Степень связи - «один-ко-многим».
Рис. 10.
Сущность Каталог связана с сущностью Комплектующие. Каждому товару из каталога соответствует совокупность комплектующих. Степень связи - «один-к-одному».
Рис. 11.
Сущность Поставщики связана с сущностью Каталог. Поставщики поставляют товары, которые вносятся в каталог. Степень связи - «один-ко-многим».
Рис. 12.
2.1.2 Выявление атрибутов сущностей. Назначение первичных ключей
Рассмотрим атрибуты каждой сущности:
· Покупатели (Номер покупателя, Название фирмы, ФИО, Адрес, Телефон);
· Продавцы (Номер магазина, Личный номер, ФИО);
· Поставщики (Номер поставщика, Название фирмы, Адрес, Телефон);
· Магазин (Номер магазина, Название, ФИО директора, Адрес);
· Каталог (Артикул, Наименование товара, Количество товара в наличии, Описание, Наличие, Цена, Номер поставщика);
· Комплектующие (Артикул, Наименование товара, Материнская плата,Процессор, Кулер, Видеокарта, Оперативная память, Винчестер, Клавиатура, Монипулятор, DVD_CD, Корпус, Floopy);
· Заказы (Личный номер, Номер покупателя, Номер магазина, Дата, Количество, Артикул);
· Продажа (Артикул, Номер покупателя, Номер магазина, Дата, Количество, Личный номер).
2.1.3 Построение Er-диаграммы
В результате получаем ER-диаграмму (рис.13):
Рис. 13. ER-диаграмма, полученная с помощью программы ER-Win
2.2 Даталогическое проектирование БД
2.2.1 Переход от ЕR-диаграммы к предварительным отношениям
При преобразовании модели ЕR-типов в реляционную модель данных использовались следующие правила:
1) Если имеет место степень связи 1:1 и классы принадлежности обеих сущностей обязательны, то формируется одно отношение, первичным ключом которого может быть первичный ключ любой из сущности;
2) Если имеет место связь 1:1 и класс принадлежности одной из сущности обязательный, другой - необязательный, то для каждой сущности формируется по одному предварительному отношению. Первичными ключами отношений будут первичные ключи сущностей. В отношении для сущности с обязательным классом принадлежности добавляется внешний ключ в виде атрибута, значения которого должны соответствовать значениям первичного ключа другой сущности;
3) Если имеет место связь 1:1 и класс принадлежности обеих сущностей необязательный, то необходимо сформировать три предварительных отношения: по одному - для каждой из сущности, одно - для связи. Ключами для сущностей будут первичные ключи соответствующих сущностей, а отношение связи будет иметь составной первичный ключ, состоящий из атрибутов, ссылающихся на первичные ключи отношений сущности.
4) Если имеет место связь 1:N (N:1) и класс принадлежности многосвязной сущности обязательный, то достаточно сформировать по одному предварительному отношению для каждой из сущности. Первичными ключами отношений будут являться первичные ключи соответствующих сущностей. В отношение для многосвязной сущности необходимо добавить атрибут связи, ссылающийся на первичный ключ односвязной сущности.
5) Если имеет место связь 1:N (N:1) и класс принадлежности многосвязной сущности необязательный, то необходимо сформировать три предварительных отношения: по одному - для каждой из сущностей, одно - для связи. Первичными ключами в отношениях для сущностей будут первичные ключи соответствующих сущностей. Отношение для связи будет иметь составной первичный из атрибутов, ссылающихся на первичные ключи отношений для сущностей.
6) Если имеет место связь N:N, то в любом случае необходимо формирование трех предварительных отношений: по одному - для каждой из сущности, одно - для связи.
2.2.2 Проверка предварительных отношений на соответсвие нормальным формам
В курсовом проекте требуется, чтобы все используемые таблицы БД на соответствие нормальной форме Бойса-Кодда.
Рассмотрим выполнение этого условия на примере одной таблицы Покупатели. Покажем последовательный переход от одной нормальной формы к другой:
1. Данное отношение находится в 1НФ, так как в нем каждое значение, содержащееся на пересечении строки и колонки, не расчленяемо на несколько значений.
2. Данное отношение находится в 2НФ, так как каждый не ключевой атрибут функционально полно зависит от первичного ключа - номер покупателя.
3. Данное отношение находится в 3НФ, так как каждый не ключевой атрибут зависит только от первичного ключа номер покупателя и не возникает информационной избыточности и аномалий.
4. Данное отношение находится в БКНФ, так как в нем отсутствуют функциональные зависимости атрибутов составного ключа от неключевых атрибутов. Это условие выполняется по умолчанию, так как в данной таблице ключ не является составным.
Аналогичным образом проверяются все остальные таблицы.
2.2.3 Построение схемы данных
Рис. 15. Схема данных
2.2.4 Задание частных ограничений целостности
При разработке данного клиент-серверного приложения был обеспечен контроль целостности данных по 3-уровневой схеме:
1. Контроль целостности связи.
2. Уровень хранимых процедур. Чтобы ограничить возможности пользователя по доступу к базе данных, в том числе и к совершению нежелательных и вредоносных действий, все операции, доступные пользователю, были оформлены в виде хранимых процедур.
3. Уровень клиентского приложения. Перед вызовом хранимых процедур приложение самостоятельно проверяет семантику некоторых передаваемых параметров.
Фрагмент приложения, который является примером обеспечения целостности третьего уровня:
val(edit1.Text,x,z1);
if edit11.Text<>''
then val(edit11.Text,x,z2)
else z2:=0;
if (z1=0) and (z2=0)
and (edit1.Text<>'') and (edit3.Text<>'')
then begin
ADOStoredProc2. Parameters.ParamValues['@nazv']:= Edit2.Text;
ADOStoredProc2. Parameters.ParamValues['@fio']:= Edit3.Text;
ADOStoredProc2.Parameters.ParamValues['@adr']:= Edit4.Text;
if edit11.Text<>''
then
ADOStoredProc2.Parameters.ParamValues['@tel']:= Edit11.Text;
adostoredproc2.Parameters.ParamValues['@nom']:=Edit1.Text;
ADOStoredProc2.ExecProc;
adotable2.Close;
adotable2.Open;
end
else showmessage('Неправильный ввод');
…
Данный фрагмент содержит обработчик исключений, который предотвращает ошибку SQL Server при некорректно введенном номере покупателя в параметр процедуры добавления записи путем ввода либо пустой строки, либо переменной сторокового типа (тип данных параметра @nom integer).
Еще одним примером обеспечения третьего уровня целостности может служить тот факт, что во всех случаях при добавлении (и изменении) данных в поля, которые связаны с полями других “дочерних” таблиц, производится выборка всех возможных значений, которые может содержать данное поле, после чего пользователю уже разрешается выбирать значение поля из имеющегося списка. Это обеспечивает практически полный контроль над целостностью связи.
2.3 Разработка хранимых процедур и функций
Основные процедуры, используемые в приложении, представлены в табл. 2.
Табл. 2. Процедуры
Функция |
Имя процедуры |
Название таблицы |
|
Добавление |
Proc2 |
Pokupateli |
|
Proc3 |
Postavschiki |
||
Proc4 |
Prodavci |
||
Proc5 |
Katalog |
||
Proc6 |
Prodazha |
||
Proc7 |
Zakazi |
||
Proc81 |
Komplektuyuschie |
||
Редактирование |
Procupdate1 |
Magazin |
|
Procupdate2 |
Pokupateli |
||
Procupdate3 |
Postavschiki |
||
Procupdate4 |
Prodavci |
||
Procupdate5 |
Katalog |
||
Procupdate7 |
Zakazi |
||
Procupdate8 |
Komplektuyuschie |
||
Удаление |
Procdel221 |
Pokupateli |
|
Procdel3 |
Postavschiki |
||
Procdel4 |
Prodavci |
||
Procdel5 |
Katalog |
||
Procdel7 |
Zakazi |
||
Procdel8 |
Komplektuyuschie |
||
Отчет |
Procreportkomplekt2 |
Komplektuyuschie |
|
Reportprodazha |
Prodazha |
Рассмотрим детально работу одной из процедур каждого раздела:
1) Добавление
Пример: процедура Proc2
CREATE PROCEDURE proc2 (
@nom int,
@nazv varchar(50),
@fio varchar(50),
@adr varchar(70),
@tel int
)
AS
INSERT INTO Pokupateli (Nomer_pokupatelya, Nazvanie_firmi, FIO, Adres, Telefon)
VALUES (@nom, @nazv, @fio, @adr, @tel)
GO
В данной процедуре происходит добавление записи о покупателе, входными параметрами для которой являются: Nomer_pokupatelya(@nom), Nazvanie_firmi(@nazv),FIO(@fio),Adres(@adr),Telefon(@tel).
2) Редактирование
Пример: процедура procupdate2
CREATE PROCEDURE procupdate2 (
@nom int,
@nazv varchar(50),
@fio varchar(70),
@adr varchar(70),
@tel int
)
AS
update Pokupateli
set Nazvanie_firmi=@nazv,
FIO=@fio,
Adres=@adr,
Telefon= @tel
where Nomer_pokupatelya=@nom
GO
Процедура выполняет редактирование записи о покупателе с номером @nom. Входными параметрами являются: Nomer_pokupatelya(@nom), Nazvanie_firmi(@nazv),FIO(@fio),Adres(@adr),Telefon(@tel).
3) Удаление
Пример: процедура procdel221
CREATE PROCEDURE procdel221 (
@N1 varchar(20)) AS
declare
@err int
if @N1 not in (select Nomer_pokupatelya from Pokupateli)
return 2
if (@N1 in (select Nomer_pokupatelya from Pokupateli )) and
(@N1 in (select Nomer_pokupatelya from Zakazi))and
(@N1 in (select Nomer_pokupatelya from Prodazha))
return 1
delete
pokupateli
where Nomer_pokupatelya=@N1
return @err
GO
Процедура выполняет удаление записи о покупателе с номером @n1 из таблицы Покупатели.
4) Отчет
Пример: процедура procdel221
CREATE PROCEDURE procreportkomplekt2 (@n int)
AS
select Artikul as art, Naimenovanie_tovara as tovar, Materinskaya_plata as plata,
Processor as proce, Kuler as kul, Videokarta as vid, Operativnaya_pamyat as pam,
Vinchester as vint, Klaviatura as kla, Monipulyator as man, DVD_CD as dvd, Korpus as kor, Floopy as fl
from Komplektuyuschie
where Artikul=@n
GO
Данная процедура позволяет вывести информацию о комплектующих компьютера с артикулем @n.
3. Разработка клиентской части информационной системы
3.1 Организация взаимодействия клиентской программы с БД
Приложение разрабатывалось в среде Borland Delphi 7.0. Взаимодействие с БД осуществляется с помощью следующих компонентов, входящих в стандартный набор этой системы:
1) ADOConnection;
2) DataSource;
3) ADOTable;
4) DBGrid;
5) ADOStoredProc;
6) DBlookupcombobox:
7) DBNavigator.
Компонент ADOConnection (соединение с базой данных) имеет ряд свойств для настройки подключения к БД.
Доступ к ресурсам осуществляется с помощью хранимых процедур - компонентов ADOStoredProc. Данный компонент применяется для выполнения процедур, хранимых на сервере. Основными свойствами StoredProc являются StoredProcName, в котором задается имя хранимой процедуры, хранящейся непосредственно на сервере БД, и свойство Params, в которое мы передаем необходимые для запуска хранимой процедуры параметры.
Компонент ADOTable обеспечивает взаимодействие с таблицей БД. Для связи с требуемой таблицей нужно установить соответствующее значение свойствам DatabaseName, указывающему имя БД, и TableName, указывающему имя таблицы.
Компонент DataSource является промежуточным звеном между компонентами ADOTable или StoredProc и визуальными компонентами (например, DBGrid). Чтобы связать компонент ADOTable и компонент DataSource, указывают название первого в свойстве DataSet последнего.
Для представления пользователю полученных в результате работы данных в более удобной форме используют компоненты DBGrid (таблица).
Компонент DBGrid используется только для представления данных, а добавление, редактирование и удаление данных осуществляется с помощью системы хранимых процедур.
3.2 Разработка интерфейса пользователя
3.2.1 Разработка форм
После запуска исполняемого файла приложения на экране появляется форма, в которой требуется выбрать учетную запись: администратор или пользователь. После выбора пользователя и ввода пароля появляется главное окно программы. При первом запуске пароли пустые, их можно задать позже из соответствующего пункта меню.
Приведем список форм, из которых состоит приложение, с указанием визуальных компонентов, расположенных на них.
1. Form1 (модуль Unit1) - форма главного окна программы (рис. 16).
Рис. 16. Форма главного окна программы
Список компонентов, расположенных на форме Form1:
1) MainMenu1 - основное меню;
2) PageControl1 - набор вкладок;
3) DBGrid1 - таблица для вывода информации о магазинах;
4) DBGrid2 - таблица для вывода информации о покупателях;
5) DBGrid3 - таблица для вывода информации о поставщиках;
6) DBGrid4 - таблица для вывода информации о продавцах;
7) DBGrid5 - таблица для вывода информации о каталоге;
8) DBGrid6 - таблица для вывода информации о продажах;
9) DBGrid7 - таблица для вывода информации о заказах;
10) DBGrid8 - таблицы для вывода информации о комплектующих;
11) Label - набор надписей;
12) Edit- набор полей данных;
13) Button - набор кнопок.
2. Form2 (модуль Unit2) - форма для выбора пользователя приложения и ввода пароля (рис. 17).
Рис. 17. Форма для выбора пользователя приложения
4. Form4 (модуль Unit4) - форма для изменения пользователя приложения (рис. 19).
Рис. 19. Форма для изменения пользователя приложения
5. Form5 (модуль Unit5) - форма для изменения пароля пользователя (рис. 20).
Рис. 20. Форма для изменения пароля пользователя
3.2.2 Разработка отчетов
Для создания отчетов в данном проекте использовалась технология Rave Reports. Использовались следующие компоненты:
· TRvProject - компонент отчета. Обеспечивает загрузку ранее созданного в визуальной среде Rave Reports отчета из файла с расширением rav.
· TRvSystem - компонент управления отчетом. Обеспечивает работу приложения с отчетом. Взаимодействуя с компонентом отчета, с одной стороны, и сервером отчета Rave Reports, с другой, этот компонент обеспечивает просмотр и печать отчетов.
· TRvDataSetConnection - компонент соединения с источниками данных, предназначенные для подключения отчетов к различным источникам данных.
Основой отчета является файл отчета с расширением rav, который создается в визуальной среде разработки Rave Reports и называется проектом отчета. Созданный проект отчета необходимо связать с приложением Delphi. Для этого используется компонент TRvProject, который обеспечивает представление отчета в приложении. Для просмотра и печати отчета используется компонент TRvSystem, который взаимодействует непосредственно с ядром Rave Reports. При компоновке приложения ядро Rave Reports автоматически включается в его состав.
В проекте были созданы следующие отчеты:
1. Отчет «Гарантийный талон»
2. Отчет «Комплектующие»
3.3 Разработка сценария инсталляции клиентской программы
Процесс установки приложения описывается с помощью так называемого сценария установки, представляющего собой текстовый файл с расширением *.iss. Рассмотрим процесс создания простого сценария для установки приложения project1.exe.
Сценарий состоит из нескольких секций, начинающихся с названия, заключенного в квадратные скобки.
Секция [Setup] содержит основные настройки процесса установки. К наиболее часто используемым настройкам относится следующее:
1. Полное название приложения. Позволяет задать полное название приложения, которое будет выводится на экран в процессе установки. Например:
AppName= Центр продажи компьютерной техники
2. Краткое название приложения и версия. Позволяет задать сокращенное название приложения, которое будет использоваться при создании ярлыков и пунктов главного меню. Также позволяет указать версию приложения. Например:
AppVerName= 21 век 1.0
3. Автор приложения. Позволяет задать имя автора, создавшего приложение. Например:
AppPublisher= Хрусталев
4. Каталог установки. Позволяет задать каталог, куда по умолчанию будет устанавливаться приложение. Например:
DefaultDirName={pf}\ BD
Ключевое слово {pf} означает ссылку на стандартный каталог Program Files.
5. Имя группы. Позволяет задать имя папки в главном меню, где будут созданы ярлыки для приложения. Например:
DefaultGroupName= 21 век
6. Запрет приглашения. Позволяет запретить показ приглашения перед началом установки. Например:
DisableStartupPrompt=yes
Секция [Languages] позволяет задать язык, на котором будут выводиться сообщения. Чтобы использовать русский язык следует указать:
[Languages]
Name: "ru"; MessagesFile: "compiler:russian.isl"
Секция [Types] позволяет указать различные типы установки приложения: полную, стандартную, выборочную, минимальную и т.п. Например:
[Types]
Name: "custom"; Description: "Выборочная установка";
Flags: iscustom
Name: "full"; Description: "Полная установка"
В данном примере используются два типа установки: выборочная и полная. Каждому типу установки ставится в соответствие имя, задаваемое с помощью параметра Name. С помощью параметра Description задается название типа установки, которое будет выводиться в процессе установки. Параметр Flags со значением iscustom позволяет указать, что данный тип установки является выборочным, т.е. пользователь может выбирать компоненты приложения, который требуется установить.
Секция [Components] позволяет перечислить те компоненты, из которых состоит приложение. Под компонентом понимают группу логически взаимосвязанных файлов, которые должны устанавливаться совместно. Каждому компоненту задается имя с помощью параметра Name. С помощью параметра Description задается название компонента, которое будет выводиться в процессе установки. Параметр Types позволяет перечислить имена типов установки, для которых разрешено использование данного компонента.
Секция [Files] позволяет указать файлы, из которых состоят компоненты. Для каждого файла задаются следующие параметры:
* Source - полный или относительный путь к файлу на компьютере, где создается дистрибутив;
*DestDir - полный или относительный путь, куда будет устанавливаться файл,. Путь относительно к каталогу установки, выбранного пользователем может быть задан с помощью ключевого слова {app}. Ссылка на каталог временных файлов осуществляется с помощью ключевого слова {tmp}.
* CopyMode - режим копирования, alwaysoverwrite означает, что файл в любом случае будет переписан, даже поверх уже существующего;
* Components - имя компонента, к которому относится файл.
Например:
[Files]
;Приложение
Source: "project1.exe"; DestDir: "{app}";
CopyMode: alwaysoverwrite; Components: program
Секция [Run] позволяет перечислить исполняемые файлы, которые будут автоматически запущены после окончания процесса установки.
Секция [Icons] позволяет создать ярлыки для приложения, расположенные в главном меню или на рабочем столе. Для определения каждого ярлыка требуется задать следующие параметры:
Name - имя ярлыка и его местоположение ({group} - папка в главном меню; {userdesktop} - на рабочем столе)
; Filename - путь и имя файла, для которого создается ярлык
; WorkingDir - рабочий каталог программы
; Components - компонент, к которому относится данный ярлык
Для создания дистрибутива приложения необходимо запустить сценарий на выполнение. Созданный дистрибутив будет размещен в папке Output, расположенной в папке, где сохранен сценарий.
По окончании создания дистрибутив будет автоматически запущен для пробной установки, что позволяет проверить правильность разработанного сценария.
3.4 Руководство пользователя
3.4.1 Общие сведения о программе
Программа предназначена для получения информации о структуре и деятельности центра по продаже компьютерной техники.
Возможности программы реализованы в соответствии с задачами, поставленными в п. 1.1.
3.4.2 Условия применения программы
Технические требования:
1) ПК типа IBM PC на базе процессора i486 или выше;
2) 5 МБ свободного пространства на жестком диске;
3) VGA-совместимый адаптер;
4) Клавиатура;
5) манипулятор.
Программные требования:
o Windows 95/98/ME/2000/XP;
o MS SQL Server 2000.
3.4.3 Сведения о входных и выходных данных
Входными данными является информация, занесенная пользователем в качестве значений полей новой или изменяемой записи любой из таблиц.
Выходными данными является информация, которую может использовать пользователь посредством просмотра записей таблиц, выполнения различных запросов, просмотра и печати отчетов.
3.4.4 Проверка программы
Администратор может вносить изменения в БД, а пользователь может только просматривать информацию. Затем требуется ввести пароль и нажать кнопку "Вход", Если введен пароль правильно, то появится окно основной программы (рис.24.).
Рис. 24. Основное окно программы
Для обновления информации о магазине на вкладке Магазины требуется нажать кнопку "Обновить информацию о магазине". После чего появятся поля данных для обновления (рис.25). Для подтверждения обновления требуется нажать кнопку "Выполнить обновление". Для завершения обновления записей требуется нажать кнопку "Завершить обновление".
Рис. 25. Вкладка Магазины
На вкладке Покупатели для добавления, обновления или удаления покупателя требуется нажать на соответствующую кнопку: "Добавить нового покупателя","Обновить информацию о покупателе", "Удалить покупателя" (рис.26).
Рис. 26. Вкладка Покупатели
Например, для добавления нового покупателя требуется нажать кнопку "Добавить нового покупателя". После чего появятся поля данных для обновления (рис.27). Для подтверждения добавления требуется нажать на кнопку "Выполнить добавление". Для завершения добавления записей требуется нажать кнопку "Завершить добавление".
Рис. 27. Вкладка Покупатели
На вкладке Поставщики для добавления, обновления или удаления поставщика требуется нажать на соответствующую кнопку: "Добавить нового поставщика","Обновить информацию о поставщике", "Удалить поставщика" (рис.28).
Рис. 28. Вкладка Поставщики
Например, для удаления поставщика требуется нажать кнопку "Удалить поставщика". После чего появится список существующих в данный момент поставщиков, с помощью которого выбирается поставщик для удаления. (рис.29). Для подтверждения удаления требуется нажать на кнопку "Выполнить удаление". Для завершения удаления записей требуется нажать кнопку "Завершить удаление".
Рис. 29. Вкладка Поставщики
На вкладке Продавцы для добавления, обновления или удаления записи о продавце требуется нажать на соответствующую кнопку: "Принять на работу нового продавца","Обновить информацию о продавце", "Уволить продавца" (рис.30).
Рис. 30. Вкладка Продавцы
Например, для обновления информации о продавце требуется нажать кнопку "Обновить информацию о продавце". После чего появится список работающих в данный момент продавцов, с помощью которого выбирается продавец, информацию о котором требуется изменить. После выбора продавца появятся поля данных для обновления (рис.31). Для подтверждения обновления требуется нажать на кнопку "Выполнить обновление". Для завершения обновления записей требуется нажать кнопку "Завершить обновление".
Рис. 31. Вкладка Продавцы
На вкладке Каталог для добавления, обновления или удаления записи о товаре требуется нажать на соответствующую кнопку: "Добавить новый товар","Обновить информацию о товаре", "Удалить товар" (рис.32).
Рис. 32. Вкладка Каталог
Например, для обновления информации о товаре требуется нажать кнопку "Обновить информацию о товаре". После чего появится список товаров, с помощью которого выбирается товар, информацию о котором требуется изменить. После выбора товара появятся поля данных для обновления (рис.32). Для подтверждения обновления требуется нажать на кнопку "Выполнить обновление". Для завершения обновления записей требуется нажать кнопку "Завершить обновление".
Рис. 32. Вкладка Каталог
На вкладке Комплектующие для добавления, обновления или удаления записи о товаре, а также для вывода отчета требуется нажать на соответствующую кнопку: "Добавить новый товар","Обновить информацию о товаре", "Удалить товар", "Комплектующие" (рис.33).
Рис. 33. Вкладка Комплектующие
Например, для вывода отчета о товаре требуется нажать кнопку "Комплектующие". После чего появится список товаров, с помощью которого выбирается товар, информацию о котором требуется вывести (рис.34). Для подтверждения вывода отчета требуется нажать на кнопку "Распечатать комплектующие".
Рис. 34. Вкладка Комплектующие
На вкладке Заказы для добавления, обновления или удаления записи о заказанном товаре требуется нажать на соответствующую кнопку: "Оформить заказ","Изменить условия заказа", "Отменить заказ" (рис.35).
Рис. 35. Вкладка Заказы
Например, для обновления информации о заказе требуется нажать кнопку "Изменить условия заказа". После чего появится список покупателей, с помощью которого выбирается покупатель, информацию о заказе которого требуется изменить. После выбора покупателя появятся поля данных для обновления (рис.36). Для подтверждения обновления требуется нажать на кнопку "Выполнить обновление". Для завершения обновления записей требуется нажать кнопку "Завершить обновление".
На вкладке Продажи для добавления записи о проданном товаре требуется нажать на соответствующую кнопку: "Оформить продажу"
Например, для вывода отчета требуется нажать кнопку "Гарантийный талон". После чего появится список покупателей, с помощью которого выбирается покупатель
Для подтверждения вывода отчета требуется нажать на кнопку "Распечатать гарантийный талон".
Для изменения пользователя приложения требуется нажать соответствующий пункт меню "Сменить пользователя". После чего появится окно, в котором требуется ввести пароль и нажать кнопку "Смена пользователя"
Для изменения пароля пользователя требуется нажать соответствующий пункт меню "Сменить пароль". После чего появится окно, в котором требуется ввести старый и новый пароли и нажать кнопку "Ввод нового пароля"
информационный магазин клиентский данные
Заключение
В ходе курсового проекта были решены следующие задачи:
· Проектирование БД;
· Разработка клиентского приложения.
В данном курсовом проекте возможен ряд усовершенствований, которые упростят работу с приложением.
Список используемой литературы
1. Архангельский А.Я. Приемы программирования в Delphi на основе VCL. - М.: ООО «Бином-Пресс», 2006 г. - 944 с.: ил.
2. Благодаров А.В., Гринченко Н.Н., Овечкин Г.В. Клиент-серверные технологии баз данных. Методические указания к лабораторным работам. РГРТУ, Рязань, 2007.
3. http://delphiworld.narod.ru - 5000 статей
Приложение 1
Исходный текст хранимых процедур
CREATE PROCEDURE proc2 (
@nom int,
@nazv varchar(50),
@fio varchar(50),
@adr varchar(70),
@tel int
)
AS
INSERT INTO Pokupateli (Nomer_pokupatelya, Nazvanie_firmi, FIO, Adres, Telefon)
VALUES (@nom, @nazv, @fio, @adr, @tel)
GO
CREATE PROCEDURE proc3 (
@nom int,
@nazv varchar(50),
@adr varchar(70),
@tel int
)
AS
INSERT INTO Postavschiki (Nomer_postavschika, Nazvanie_firmi, Adres, Telefon)
VALUES (@nom, @nazv, @adr, @tel)
GO
CREATE PROCEDURE proc4 (
@nom int,
@lnom int,
@fio varchar(70)
)
AS
INSERT INTO Prodavci (Nomer_magazina, Lichniy_nomer, FIO)
VALUES (@nom, @lnom, @fio)
GO
CREATE PROCEDURE proc5 (
@art int,
@naim varchar(50),
@kol int,
@opis varchar(50),
@nal varchar(10),
@n int,
@cena int
)
AS
INSERT INTO Katalog (Artikul, Naimenovanie_tovara, Kolichestvo_tovara_v_nalichii, Opisanie, Nalichie,Nomer_postavschika,cena)
VALUES (@art, @naim, @kol, @opis, @nal,@n,@cena)
GO
CREATE PROCEDURE proc6 (
@art int,
@nomp int,
@nomm int,
@data datetime,
@kol int,
@l int)
AS
declare @f int
select @f=Kolichestvo_tovara_v_nalichii
from katalog
where Artikul=@art
if @f>=@kol
begin
INSERT INTO Prodazha (Artikul, Nomer_pokupatelya, Nomer_magazina, Data, Kolichestvo,Lichniy_nomer)
VALUES (@art, @nomp, @nomm, @data, @kol,@l)
update katalog
set Kolichestvo_tovara_v_nalichii=Kolichestvo_tovara_v_nalichii-@kol
where Artikul=@art
end
else return 1
GO
CREATE PROCEDURE proc7 (
@lnom int,
@nompo int,
@nomm int,
@data datetime,
@kol int,
@art int
)
AS
INSERT INTO Zakazi (Lichniy_nomer, Nomer_pokupatelya, Nomer_magazina, Data, Kolichestvo, Artikul)
VALUES (@lnom, @nompo, @nomm, @data, @kol, @art)
GO
CREATE PROCEDURE proc81 (
@naim varchar(150),
@mp varchar(150),
@proc varchar(150),
@kuler varchar(150),
@vid varchar(150),
@op varchar(150),
@vin varchar(150),
@klav varchar(150),
@manip varchar(150),
@DC varchar(150),
@Kor varchar(150),
@Floopy varchar(150),
@arti int
)
AS
INSERT INTO Komplektuyuschie ( Naimenovanie_tovara, Materinskaya_plata, Processor, Kuler, Videokarta, Operativnaya_pamyat, Vinchester, Klaviatura, Monipulyator, DVD_CD, Korpus, Floopy, Artikul)
VALUES (@naim, @mp, @proc, @kuler, @vid, @op, @vin, @klav, @manip, @DC, @Kor, @Floopy, @arti)
GO
CREATE PROCEDURE procupdate1 (
@nom int,
@nazv varchar(50),
@fio varchar(50),
@adr varchar(70))
as
update magazin
set
Nazvanie=@nazv,
FIO_directora=@fio,
Adres=@adr
where Nomer_magazina=@nom
GO
CREATE PROCEDURE procupdate2 (
@nom int,
@nazv varchar(50),
@fio varchar(70),
@adr varchar(70),
@tel int
)
AS
update Pokupateli
set Nazvanie_firmi=@nazv,
FIO=@fio,
Adres=@adr,
Telefon= @tel
where Nomer_pokupatelya=@nom
GO
CREATE PROCEDURE procupdate3 (
@nom int,
@nazv varchar(50),
@adr varchar(70),
@tel int
)
AS
update Postavschiki
set Nazvanie_firmi=@nazv, Adres=@adr, Telefon=@tel
where Nomer_postavschika=@nom
GO
CREATE PROCEDURE procupdate4 (
@nom int,
@lnom int,
@fio varchar(70)
)
AS
update Prodavci
set Nomer_magazina=@nom,FIO=@fio
where Lichniy_nomer=@lnom
GO
CREATE PROCEDURE procupdate5 (
@art int,
@naim varchar(50),
@kol int,
@opis varchar(100),
@nal varchar(10),
@n int,@cena int
)
AS
update Katalog
set
Naimenovanie_tovara=@naim,Kolichestvo_tovara_v_nalichii=@kol,
Opisanie=@opis,Nalichie=@nal,Nomer_postavschika=@n,cena=@cena
where Artikul=@art
GO
CREATE PROCEDURE procupdate7 (
@lnom int,
@nompo int,
@nomm int,
@data datetime,
@kol int,
@art int
)
AS
update Zakazi
set Lichniy_nomer=@lnom,Nomer_magazina=@nomm,Data=@data,
Kolichestvo=@kol,Artikul=@art
where Nomer_pokupatelya=@nompo
GO
create procedure procup8
(
@art int,
@naim varchar(150),
@mp varchar(150),
@proc varchar(150),
@kuler varchar(150),
@vid varchar(150),
@op varchar(150),
@vin varchar(150),
@klav varchar(150),
@manip varchar(150),
@DC varchar(150),
@Kor varchar(150),
@Floopy varchar(150)
)
as
update Komplektuyuschie
set Naimenovanie_tovara=@naim,Materinskaya_plata=@mp,Processor=@proc,Kuler= @kuler,
Videokarta=@vid,Operativnaya_pamyat=@op,Vinchester=@vin,Klaviatura=@klav,Monipulyator=@manip,
DVD_CD=@DC, Korpus=@Kor,Floopy=@Floopy
where
Artikul=@art
GO
CREATE PROCEDURE procdel221 (
@N1 varchar(20)) AS
declare
@err int
if @N1 not in (select Nomer_pokupatelya from Pokupateli)
return 2
if (@N1 in (select Nomer_pokupatelya from Pokupateli )) and
(@N1 in (select Nomer_pokupatelya from Zakazi))and
(@N1 in (select Nomer_pokupatelya from Prodazha))
return 1
delete
pokupateli
where Nomer_pokupatelya=@N1
return @err
GO
CREATE PROCEDURE procdel3 (
@N1 int) AS
declare
@err int
if @N1 not in (select Nomer_postavschika from Postavschiki)
return 2
if (@N1 in (select Nomer_postavschika from Postavschiki ))
and (@N1 in (select Nomer_postavschika from Katalog ))
return 1
delete
Postavschiki
where Nomer_postavschika=@N1
return @err
GO
CREATE PROCEDURE procdel4 (
@N1 int) AS
declare
@err int
if @N1 not in (select Lichniy_nomer from Prodavci)
return 2
if (@N1 in (select Lichniy_nomer from Prodavci ))
and
(@N1 in (select Lichniy_nomer from Zakazi))
or
(@N1 in (select Lichniy_nomer from Prodazha))
return 1
delete
Prodavci
where Lichniy_nomer=@N1
return @err
GO
CREATE PROCEDURE procdel5 (
@N1 int) AS
declare
@err int
if @N1 not in (select Artikul from Katalog)
return 2
if (@N1 in (select Artikul from Katalog ))
and
(@N1 in (select Artikul from Zakazi))
or
(@N1 in (select Artikul from Prodazha))
or
(@N1 in (select Artikul from Komplektuyuschie))
return 1
delete
Katalog
where Artikul=@N1
return @err
GO
CREATE PROCEDURE procdel7 (
@N1 int) AS
declare
@err int
if @N1 not in (select Nomer_pokupatelya from Zakazi)
return 2
delete
Zakazi
where Nomer_pokupatelya=@N1
return @err
GO
CREATE PROCEDURE procdel8 (
@N1 int) AS
declare
@err int
if @N1 not in (select Artikul from Komplektuyuschie)
return 2
if @N1 in (select Artikul from Komplektuyuschie)
and @N1 in (select Artikul from Prodazha)
and @N1 in (select Artikul from Zakazi)
return 1
delete
Komplektuyuschie
where Artikul=@N1
return @err
GO
CREATE PROCEDURE procreportkomplekt2 (@n int)
AS
select Artikul as art, Naimenovanie_tovara as tovar, Materinskaya_plata as plata,
Processor as proce, Kuler as kul, Videokarta as vid, Operativnaya_pamyat as pam,
Vinchester as vint, Klaviatura as kla, Monipulyator as man, DVD_CD as dvd, Korpus as kor, Floopy as fl
from Komplektuyuschie
where Artikul=@n
GO
CREATE PROCEDURE reportprodazha (@n int
)
AS
select Prodavci.FIO as fioprod,
Nazvanie_firmi as firma,
Nazvanie as nazv,
Data as data1,
katalog.Cena as cena1,
Kolichestvo as kol,magazin.adres as adres1,Naimenovanie_tovara as tovar,
Prodazha.Artikul as art,katalog.Cena*Kolichestvo as summa1
from Prodazha inner join Pokupateli on Prodazha.Nomer_pokupatelya=Pokupateli.Nomer_pokupatelya
inner join magazin on Prodazha.Nomer_magazina=magazin.Nomer_magazina
inner join katalog on Prodazha.Artikul=katalog.Artikul
inner join prodavci on Prodazha.Lichniy_nomer=prodavci.Lichniy_nomer
where Prodazha.Nomer_pokupatelya=@n
GO
Приложение 2
Исходный текст клиентской программы
Текст программы основного модуля
unit unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, DB, ADODB, StdCtrls, Grids, DBGrids, DBTables
,unit3, RpCon, RpConDS, RpBase, RpSystem, RpDefine, RpRave,
unit2,unit4,unit5,unit6, Menus, ExtCtrls, DBCtrls, MXGRID, MXPIVSRC,
MXDB, Mxstore, TeeProcs, TeEngine, Chart, MXGRAPH, Series, XPMan;
type
TForm1 = class(TForm)
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOStoredProc1: TADOStoredProc;
DataSource3: TDataSource;
ADOStoredProc3: TADOStoredProc;
ADOTable3: TADOTable;
ADOTable4: TADOTable;
ADOStoredProc4: TADOStoredProc;
DataSource4: TDataSource;
DataSource5: TDataSource;
ADOStoredProc5: TADOStoredProc;
ADOTable5: TADOTable;
DataSource6: TDataSource;
ADOStoredProc6: TADOStoredProc;
ADOTable6: TADOTable;
DataSource7: TDataSource;
ADOStoredProc7: TADOStoredProc;
ADOTable7: TADOTable;
DataSource8: TDataSource;
ADOStoredProc8: TADOStoredProc;
ADOTable8: TADOTable;
DataSource2: TDataSource;
ADOTable2: TADOTable;
ADOStoredProc2: TADOStoredProc;
ADOStoredProc9: TADOStoredProc;
ADOStoredProc10: TADOStoredProc;
ADOStoredProc11: TADOStoredProc;
ADOStoredProc12: TADOStoredProc;
ADOStoredProc13: TADOStoredProc;
ADOStoredProc14: TADOStoredProc;
RvProject1: TRvProject;
RvSystem1: TRvSystem;
RvDataSetConnection1: TRvDataSetConnection;
RvDataSetConnection2: TRvDataSetConnection;
ADOStoredProc15: TADOStoredProc;
ADOStoredProc16: TADOStoredProc;
RvProject2: TRvProject;
RvSystem2: TRvSystem;
RvDataSetConnection3: TRvDataSetConnection;
RvDataSetConnection4: TRvDataSetConnection;
ADOStoredProc17: TADOStoredProc;
ADOStoredProc18: TADOStoredProc;
ADOQuery1: TADOQuery;
ADOQuery2: TADOQuery;
ADOStoredProc19: TADOStoredProc;
ADOStoredProc20: TADOStoredProc;
ADOStoredProc21: TADOStoredProc;
ADOStoredProc22: TADOStoredProc;
ADOStoredProc23: TADOStoredProc;
ADOStoredProc24: TADOStoredProc;
MainMenu1: TMainMenu;
N4: TMenuItem;
N5: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label51: TLabel;
Label52: TLabel;
Label53: TLabel;
Label54: TLabel;
Button1: TButton;
DBGrid1: TDBGrid;
Button9: TButton;
Edit53: TEdit;
Edit54: TEdit;
Edit55: TEdit;
Edit56: TEdit;
Button26: TButton;
Button27: TButton;
TabSheet2: TTabSheet;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label18: TLabel;
DBGrid2: TDBGrid;
Edit11: TEdit;
Edit4: TEdit;
Edit3: TEdit;
Edit2: TEdit;
Edit1: TEdit;
Button2: TButton;
Button10: TButton;
Button20: TButton;
TabSheet3: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Label19: TLabel;
Label20: TLabel;
Button3: TButton;
DBGrid3: TDBGrid;
Edit5: TEdit;
Edit6: TEdit;
Edit13: TEdit;
Edit14: TEdit;
Button11: TButton;
Button21: TButton;
Button28: TButton;
Button29: TButton;
Button30: TButton;
Button31: TButton;
Button32: TButton;
Button33: TButton;
TabSheet4: TTabSheet;
Label11: TLabel;
Label12: TLabel;
Label21: TLabel;
Button4: TButton;
Edit8: TEdit;
DBGrid4: TDBGrid;
Edit15: TEdit;
Button12: TButton;
Button22: TButton;
Button34: TButton;
Button35: TButton;
Button36: TButton;
Button37: TButton;
Button38: TButton;
Button39: TButton;
TabSheet5: TTabSheet;
Label14: TLabel;
Label15: TLabel;
Label22: TLabel;
Label23: TLabel;
Label44: TLabel;
DBGrid5: TDBGrid;
Edit9: TEdit;
Edit10: TEdit;
Button5: TButton;
Edit16: TEdit;
Edit17: TEdit;
Edit38: TEdit;
Button13: TButton;
Button23: TButton;
Button40: TButton;
Button41: TButton;
Button42: TButton;
Button43: TButton;
Button44: TButton;
Button45: TButton;
TabSheet6: TTabSheet;
Label17: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label28: TLabel;
Label55: TLabel;
Button6: TButton;
DBGrid6: TDBGrid;
Edit22: TEdit;
Button16: TButton;
Button18: TButton;
Button47: TButton;
Button24: TButton;
TabSheet8: TTabSheet;
Label37: TLabel;
Label38: TLabel;
DBGrid8: TDBGrid;
Button8: TButton;
Button15: TButton;
Button19: TButton;
Button48: TButton;
Button55: TButton;
Button56: TButton;
Button57: TButton;
Button58: TButton;
Button59: TButton;
Button60: TButton;
Button61: TButton;
Button62: TButton;
Button63: TButton;
Button64: TButton;
Button65: TButton;
RvProject3: TRvProject;
RvSystem3: TRvSystem;
RvDataSetConnection5: TRvDataSetConnection;
RvDataSetConnection6: TRvDataSetConnection;
ADOStoredProc25: TADOStoredProc;
ADOStoredProc26: TADOStoredProc;
ADOQuery3: TADOQuery;
ADOQuery4: TADOQuery;
Button66: TButton;
Button67: TButton;
N3: TMenuItem;
DBNavigator3: TDBNavigator;
DBNavigator4: TDBNavigator;
DBNavigator5: TDBNavigator;
DBNavigator6: TDBNavigator;
DBNavigator7: TDBNavigator;
DBNavigator8: TDBNavigator;
DataSource9: TDataSource;
ADOTable9: TADOTable;
Label58: TLabel;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
Label59: TLabel;
Label60: TLabel;
DBLookupComboBox4: TDBLookupComboBox;
Label61: TLabel;
DBLookupComboBox5: TDBLookupComboBox;
Label62: TLabel;
DBLookupComboBox6: TDBLookupComboBox;
Label63: TLabel;
DBLookupComboBox7: TDBLookupComboBox;
Label64: TLabel;
DBLookupComboBox8: TDBLookupComboBox;
DBLookupComboBox9: TDBLookupComboBox;
DBLookupComboBox10: TDBLookupComboBox;
Label65: TLabel;
Label66: TLabel;
Label67: TLabel;
Label68: TLabel;
Label69: TLabel;
Label70: TLabel;
DBLookupComboBox12: TDBLookupComboBox;
Label71: TLabel;
DBLookupComboBox13: TDBLookupComboBox;
Label72: TLabel;
Label73: TLabel;
Label74: TLabel;
Label75: TLabel;
Label76: TLabel;
Label77: TLabel;
DBLookupComboBox14: TDBLookupComboBox;
DBLookupComboBox15: TDBLookupComboBox;
DBLookupComboBox16: TDBLookupComboBox;
DBLookupComboBox17: TDBLookupComboBox;
DBLookupComboBox18: TDBLookupComboBox;
DateTimePicker1: TDateTimePicker;
TabSheet7: TTabSheet;
Label29: TLabel;
Label31: TLabel;
Label32: TLabel;
Label33: TLabel;
Label35: TLabel;
Label36: TLabel;
Label27: TLabel;
Label30: TLabel;
DBGrid7: TDBGrid;
Edit29: TEdit;
Button7: TButton;
Button14: TButton;
Button17: TButton;
Button25: TButton;
Button46: TButton;
Button49: TButton;
Button50: TButton;
Button51: TButton;
Button52: TButton;
Button53: TButton;
Button54: TButton;
DBNavigator1: TDBNavigator;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox19: TDBLookupComboBox;
DBLookupComboBox20: TDBLookupComboBox;
DateTimePicker2: TDateTimePicker;
DBLookupComboBox21: TDBLookupComboBox;
DBLookupComboBox22: TDBLookupComboBox;
Label34: TLabel;
ADOTable7Lichniy_nomer: TIntegerField;
ADOTable7Nomer_pokupatelya: TIntegerField;
ADOTable7Nomer_magazina: TIntegerField;
ADOTable7Data: TDateTimeField;
ADOTable7Kolichestvo: TIntegerField;
ADOTable7Artikul: TIntegerField;
ADOTable9Artikul: TIntegerField;
ADOTable9Naimenovanie_tovara: TStringField;
ADOTable9Kolichestvo_tovara_v_nalichii: TIntegerField;
ADOTable9Opisanie: TStringField;
ADOTable9Nalichie: TStringField;
ADOTable9Cena: TBCDField;
ADOTable9Nomer_postavschika: TIntegerField;
ADOTable7firma: TStringField;
ADOTable7tovar: TStringField;
DBLookupComboBox23: TDBLookupComboBox;
Label78: TLabel;
Label79: TLabel;
DBLookupComboBox24: TDBLookupComboBox;
DBLookupComboBox25: TDBLookupComboBox;
Label80: TLabel;
DBLookupComboBox11: TDBLookupComboBox;
Label81: TLabel;
Label82: TLabel;
ADOTable6Artikul: TIntegerField;
ADOTable6Nomer_pokupatelya: TIntegerField;
ADOTable6Nomer_magazina: TIntegerField;
ADOTable6Data: TDateTimeField;
ADOTable6Kolichestvo: TIntegerField;
ADOTable6Lichniy_nomer: TIntegerField;
ADOTable6Field: TStringField;
Label83: TLabel;
DBLookupComboBox26: TDBLookupComboBox;
DBLookupComboBox27: TDBLookupComboBox;
ADOTable6firma: TStringField;
ADOTable6cena: TIntegerField;
ADOStoredProc27: TADOStoredProc;
ADOStoredProc28: TADOStoredProc;
RvDataSetConnection7: TRvDataSetConnection;
RvDataSetConnection8: TRvDataSetConnection;
RvSystem4: TRvSystem;
RvProject4: TRvProject;
RvProject5: TRvProject;
RvSystem5: TRvSystem;
RvDataSetConnection9: TRvDataSetConnection;
ADOStoredProc29: TADOStoredProc;
Label84: TLabel;
DBLookupComboBox28: TDBLookupComboBox;
Button68: TButton;
Button69: TButton;
RvProject6: TRvProject;
RvSystem6: TRvSystem;
RvDataSetConnection10: TRvDataSetConnection;
ADOStoredProc30: TADOStoredProc;
RvDataSetConnection11: TRvDataSetConnection;
ADOStoredProc31: TADOStoredProc;
Edit7: TEdit;
Label85: TLabel;
ADOStoredProc33: TADOStoredProc;
hggfh1: TMenuItem;
Label86: TLabel;
Label87: TLabel;
Button70: TButton;
Label88: TLabel;
Edit12: TEdit;
Button71: TButton;
Edit18: TEdit;
Label89: TLabel;
Button72: TButton;
Button73: TButton;
Button74: TButton;
Label90: TLabel;
Edit19: TEdit;
Button75: TButton;
Button76: TButton;
Label91: TLabel;
Edit20: TEdit;
Button77: TButton;
Button78: TButton;
Edit21: TEdit;
Button79: TButton;
Button80: TButton;
Label93: TLabel;
DBLookupComboBox29: TDBLookupComboBox;
Button81: TButton;
Button82: TButton;
ADOStoredProc32: TADOStoredProc;
Button83: TButton;
Button84: TButton;
Button85: TButton;
ADOStoredProc34: TADOStoredProc;
ADOTable7nomer: TIntegerField;
Edit23: TEdit;
Label94: TLabel;
Button87: TButton;
Button86: TButton;
Button88: TButton;
DBLookupComboBox30: TDBLookupComboBox;
Label95: TLabel;
ADOStoredProc35: TADOStoredProc;
DBLookupComboBox31: TDBLookupComboBox;
DBLookupComboBox32: TDBLookupComboBox;
DBLookupComboBox33: TDBLookupComboBox;
DBLookupComboBox34: TDBLookupComboBox;
DBLookupComboBox35: TDBLookupComboBox;
DBLookupComboBox36: TDBLookupComboBox;
DBLookupComboBox37: TDBLookupComboBox;
DBLookupComboBox38: TDBLookupComboBox;
DBLookupComboBox39: TDBLookupComboBox;
DBLookupComboBox40: TDBLookupComboBox;
DBLookupComboBox41: TDBLookupComboBox;
DBLookupComboBox42: TDBLookupComboBox;
DBLookupComboBox43: TDBLookupComboBox;
DBLookupComboBox44: TDBLookupComboBox;
Label96: TLabel;
Image1: TImage;
Label40: TLabel;
ADOStoredProc36: TADOStoredProc;
RvDataSetConnection12: TRvDataSetConnection;
DecisionCube1: TDecisionCube;
DecisionSource1: TDecisionSource;
DecisionPivot1: TDecisionPivot;
DecisionGrid1: TDecisionGrid;
ADOQuery5: TADOQuery;
DataSource10: TDataSource;
ADOQuery6: TADOQuery;
ADOTable10: TADOTable;
DecisionSource2: TDecisionSource;
DecisionCube2: TDecisionCube;
DecisionGraph1: TDecisionGraph;
DecisionPivot2: TDecisionPivot;
ADOTable8Artikul: TIntegerField;
ADOTable8Naimenovanie_tovara: TStringField;
ADOTable8Materinskaya_plata: TStringField;
ADOTable8Processor: TStringField;
ADOTable8Kuler: TStringField;
ADOTable8Videokarta: TStringField;
ADOTable8Operativnaya_pamyat: TStringField;
ADOTable8Vinchester: TStringField;
ADOTable8Klaviatura: TStringField;
ADOTable8Monipulyator: TStringField;
ADOTable8DVD_CD: TStringField;
ADOTable8Korpus: TStringField;
ADOTable8Floopy: TStringField;
ADOStoredProc37: TADOStoredProc;
ADOStoredProc38: TADOStoredProc;
ADOStoredProc39: TADOStoredProc;
ADOStoredProc40: TADOStoredProc;
ADOStoredProc41: TADOStoredProc;
ADOStoredProc42: TADOStoredProc;
ADOStoredProc43: TADOStoredProc;
ADOStoredProc44: TADOStoredProc;
ADOStoredProc45: TADOStoredProc;
ADOStoredProc46: TADOStoredProc;
ADOStoredProc47: TADOStoredProc;
RvDataSetConnection13: TRvDataSetConnection;
RvDataSetConnection14: TRvDataSetConnection;
RvDataSetConnection15: TRvDataSetConnection;
RvDataSetConnection16: TRvDataSetConnection;
RvDataSetConnection17: TRvDataSetConnection;
RvDataSetConnection18: TRvDataSetConnection;
RvDataSetConnection19: TRvDataSetConnection;
RvDataSetConnection20: TRvDataSetConnection;
RvDataSetConnection21: TRvDataSetConnection;
RvDataSetConnection22: TRvDataSetConnection;
Подобные документы
Организационно-управленческая структура ООО "Гранит". Оценка проблемных ситуаций, поиск методов их разрешения. Разработка баз данных, содержащих информацию о поставщиках, покупателях, покупках и продажах предприятия ООО "Гранит", программные требования.
дипломная работа [8,1 M], добавлен 01.07.2011Программа управления базой данных "Отдел сбыта", содержащей информацию об организациях, приобретающих продукцию завода, о продукции и ее продаже. Обеспечение хранения, добавления, удаления и редактирования информации, использования запросов и отчетов.
курсовая работа [567,8 K], добавлен 18.08.2009Разработка программы, создающей и управляющей базой данных, ее реализация на языке Turbo Pascal. Организация алгоритма программы. Вывод информации и возможность добавления информации в базу данных. Поиск информации в базе данных по заданному значению.
курсовая работа [26,7 K], добавлен 19.06.2010Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015Разработка информационной системы по учету, хранению, анализу информации о персонале автосервиса, поставках автозапчастей, клиентах, заказах, информации об услугах автосервиса и сроках их выполнения. Руководство пользователя для работы с базой данных.
курсовая работа [2,1 M], добавлен 25.09.2010Проектирование концептуальной, логической и физической модели базы данных. Формирование сущностей и связей между ними. Создание форм с функциями добавления, редактирования, удаления, поиска, печати. Разработка клиентской части БД с помощью среды Lazarus.
курсовая работа [1,3 M], добавлен 05.04.2015Cоздание базы данных "Договора" для сети компьютерных магазинов "Вега" в целях автоматизации процессов учета поставки товаров, обеспечения уверенного поиска поставщиков (комплектующих) по заданным условиям. Организация работы базы данных в локальной сети.
курсовая работа [1,9 M], добавлен 05.06.2013Разработка модели информационной системы "Рыболовный магазин" с помощью СУБД Firebird. Компоненты программного продукта. Физическая диаграмма базы данных, обзор функций добавления, изменения, удаления и сортировки данных. Руководство администратора.
курсовая работа [406,2 K], добавлен 21.02.2016Проектирование системы управления базой данных "Почтовые отделения" для создания единой информационной системы: создание таблиц для хранения данных, ввод данных, разработка элементов базы, предназначенных для просмотра, редактирования и вывода информации.
курсовая работа [1,4 M], добавлен 31.03.2010Разработка программного продукта "Железная дорога". Вид и классификация инструментальных средств, используемых для создания прикладного ПО. Организация взаимодействия клиентской программы с базой данных; реализация системы контроля движения поездов.
курсовая работа [895,0 K], добавлен 11.11.2010