Проектирование базы данных «Рабочее место кассира»
Теперь необходимо организовать подстановку для поля код кассира, чтобы пользователь видел ФИО кассиров из справочника. Для этого сначала сделайте поле код кассира невидимым (Visible → False). Затем добавьте новое поле Object Inspector — tbСheck — New field, появившееся окно на рисунке 10. Перейти к области Detail. Под заголовками поставить пять компонентов QRDBText. Установить в свойстве DataSet… Читать ещё >
Проектирование базы данных «Рабочее место кассира» (реферат, курсовая, диплом, контрольная)
1. Инфологическая модель
1.1 Информационные объекты и их атрибуты
1.2 Требования к функциональным характеристикам
2. Создание проекта в Delphi
2.1 Описание компонентов для реализации графического интерфейса
2.2 Организация доступа к базе данных из Delphi
3. Разработка интерфейса ввода справочника кассиров
4. Создание отчета Заключение Список использованных источников Приложения
В настоящее время среди разработчиков базы данных (БД) большой популярностью пользуется реляционная СУБД ACCESS, входящая в состав пакета Microsoft Office 2003. Дружественный интерфейс и простота настройки, эффективные средства создания таблиц, форм, запросов, интеграция с другими приложениями пакета, средства организации работы с базами данных и защита информации — вот далеко не полный перечень достоинств этого приложения.
Основные функции СУБД — это описание структуры базы данных, обработка данных и управление данными.
База данных — это совокупность сведений о реальных объектах, процессах, событиях или явлениях, относящихся к определённой теме или задаче, организованная таким образом, чтобы обеспечить удобное представление этой совокупности, как в целом, так и любой её части. Реляционная база данных представляет собой множество взаимосвязанных таблиц, каждая из которых содержит информацию об объектах определённого типа. Каждая строка таблицы содержит данные об одном объекте (например, клиенте, автомобиле, документе), а столбцы таблицы содержат различные характеристики этих объектов — атрибуты (например, наименования и адреса клиентов, марки и цены автомобилей). Строки таблицы называются записями, все записи имеют одинаковую структуру — они состоят из полей, в которых хранятся атрибуты объекта. Каждое поле в записи содержит одну характеристику объекта и имеет строго определённый тип данных (например, текстовая строка, число, дата). Все записи имеют одни и те же поля, только в них содержатся разные значения атрибутов.
Объект исследования — касса продуктового магазина.
Цель данной курсовой работы — создать базу данных в СУБД ACCESS, разработать программное обеспечение в среде программирования Delphi.
Задачи:
— необходимо создать базу данных, которая хранила бы информацию о товарах, кассирах, покупках и чеках.
— реализовать в среде программирования Delphi
— разработанное программное обеспечение должно позволять просматривать, добавлять, удалять в базу информацию о новых товарах, кассирах, покупках, чеках.
Инструмент создания базы данных:
В качестве инструмента создания базы данных и сопутствующего программного обеспечения используется Delphi 7 — императивный, структурированный, объектно-ориентированный язык программирования.
1. Инфологическая модель
1.1 Информационные объекты и их атрибуты
Первым этапом и самым главным этапом в процессе проектирования и создания базы данных, является разработка инфологической модели.
Цель инфологического моделирования — обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства.
Ключ — минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности. Минимальность означает, что исключение из набора любого атрибута не позволяет идентифицировать сущность по оставшимся.
Связь — ассоциирование двух или более сущностей. Если бы назначением базы данных было только хранение отдельных, не связанных между собой данных, то ее структура могла бы быть очень простой. Однако одно из основных требований к организации базы данных — это обеспечение возможности отыскания одних сущностей по значениям других.
Реляционная база данных — это совокупность отношений, содержащих всю информацию, которая должна храниться в БД. Однако пользователи могут воспринимать такую базу данных как совокупность таблиц.
Для базы данных продуктового магазина реляционная модель будет выглядеть так (Рисунок 1):
Рисунок 1 — Реляционная модель базы данных кассира продуктового магазина
1.2 Требования к функциональным характеристикам
База данных «Рабочее место кассира» должна выполнять следующие функции:
— хранение информации о кассирах, товарах;
— просмотр информации;
— добавление данных в имеющийся список;
— удаление информации.
Оперативная информация
Таблица «Чеки» состоит из:
— код чека;
— дата покупки;
— код кассира;
— стоимость покупки.
Таблица «Покупки»
— код покупки;
— код чека;
— код кассира;
— код товара;
— код единицы измерения;
— код вида;
— количество;
— стоимость.
Справочная информация:
Таблица «Товар»
— код товара;
— наименование товара;
— срок годности;
— цена;
— код единицы;
— код вида.
Таблица «Вид товара»
— код вида;
— наименование вида.
Таблица «единицы измерения»
— код единицы;
— наименование.
Таблица «кассиры»
— код кассира;
— ФИО.
2. Создание проекта в Delphi
2.1 Описание компонентов для реализации графического интерфейса
Интерфейс приложений составляет компоненты, которые разработчик выбирает в палитре компонентов и размещает их на форме.
TMainMenu — предназначен для добавления к программе главного меню, элемента без которого не обходится ни одно из приложений для Windows. Компоненты невизуальный, то есть, в работающей программе не будет виден.
Форма — это диалоговое окно, через которое осуществляется интерфейс пользователя. Формы используются для различных целей:
— для ввода данных в таблицу;
— как кнопочная форма для открытия других форм или отчётов;
— как специальное диалоговое окно для выбора, предварительного просмотра и печати нужного отчёта.
Большая часть данных, представленных в форме, берётся из таблицы или запроса. Другая информация, не связанная ни с таблицей, ни с запросом, хранится в макете формы.
Для создания связи между формой и записями таблицы, являющейся источником данных формы, используются графические объекты, называемые элементами управления. Чаще всего для отображения и ввода данных используется поле.
Элемент «TButton"предназначен для отправки данных формы на сервер. Является компонентом для выдачи команд на выполнение определенных действий.
Элемент «DataSourсe» — представляется для связи сетки отображения данных с самой БД.
Элемент «Dbgrid» — предназначен для отображение данных БД и сортировки колонок.
Рисунок 2 — Создание главного меню
2.2 Организация доступа к базе данных из Delphi
ADO (Active Data Obiect) — высокоуровневый компонент технологии доступа к данным от Microsoft.
1. Для доступа к базе данных создадим отдельный модуль.
2. Для доступа к базе нужен компонент TADOConnection, а для обращения к справочнику специальностей — компонент TADOTable.
3.Разместим их на нашем модуле.
4. TADOConnection предназначен для подключение БД через провайдер. В нашем случае это Microsoft Jet 4.0 OLE DB Provider нажмем далее
5. Теперь для первого пункта 1. Выберите или введите имя базы данных нажмите кнопку выбора и укажите файл Kass.mdb, расположенный в вашей папке и нажмите Открыть
6.После этого, для проверки, нажмите Проверить Соединение, должно появиться сообщение Проверка соединения выполнена.
7. Нажмите ОК в текущем окне, и в следующем за ним.
8. В окне Object Inspector для компонента ADOConnection1 установите свойство LoginPrompt в False, а затем свойство Connected — в True. Теперь подключаем таблицу Кассир и переименовываем компонент доступа к таблице для удобства.
В основном окне выберем компонент ADOTable1, а в окне Object Inspector последовательно установим следующие свойства:
— Name — tbKass
— Connection — ADOConnection1
— TableName — Kassir
Далее необходимо указать поля, с которыми будет работать компонент tbKass. В окне Structure нажмите правую кнопку на элементе Fields. Сохраните проект полностью. Аналогично добавляем Вид кассира, товар, единицы измерения, покупки, чеки.
Рисунок 3 — Организация доступа к базе данных через ADOConnection и ADOTable
3. Разработка интерфейса ввода справочника кассиров
база данные кассир интерфейс Справочники удобнее всего вести в виде таблицы. Для реализации такого подхода создается форма с соответствующими элементами.
Для того, чтобы форма показывалась только по вызову из главного меню, перейдем в параметры проекта: Project -> Options. Теперь необходимо перевести форму из состояния Auto-сreate в Available. Для того, чтобы вызвать справочник из меню, перейдем в основном окне в модуль frmMain и в режиме Code (закладка внизу основного окна) добавим после implementation строку Uses frmKassir, вернутся обратно в режим Design. В левом верхнем окне Structure раскроем полностью главное меню (MainMenu1) и дважды щелкнем на пункте Кассиры.
И в открывшемся окне кода после строки begin добавляем TfmKassir. Create (Application).
Добавляем на форму кнопки, TBGrid, datasource, и указываем свойства
— для Button1:
Caption — Новая запись
Font — Style — fsBold — True
NamebtNewRecord
— для Button2:
Caption — Удалить запись
Font — Style — fsBold — True
Name — btDelRecord
— для Button3:
Caption — Закрыть
Font — Style — fsBold — True
Name — btClose
— для DataSource1:
DataSet — mdKassirDB. tbKass
DataSet — Active — True
— для DBGrid1:
DataSource — DataSource1
Options — dgColumnResize — False
Добавление новой записи в справочник кассира
mdKassirDB.tbKass.Append;
DBGrid1.SetFocus;
Таким же образом добавьте обработчик события нажатия кнопки btDelRecord («Удалить запись»). В поле кода напишите:
Удаление записи из справочника кассира
if dbgrid1.DataSource.DataSet.RecordCount<>0 then begin
mdUspDB.tbKassirDB.Delete;
mdUspDB.tbKassirDB.Refresh;
end;
Для btClose («Закрыть») напишите следующий обработчик события нажатия кнопки:
Закрытие формы справочника кассира
Close;
Теперь добавьте обработчики событий открытия и закрытия формы. При открытии нам нужно, чтобы пользователь сразу попадал на таблицу. Поэтому, выберите в режиме Design всю форму fmKassir, щелкнув на заголовке формы в главном окне. Затем, в окне Object Inspector выберите вкладку Events, и для события OnActivate напишите обработчик:
Установка указателя сразу на таблицу специальностей
DBGrid1.SetFocus;
Для события OnClose напишите:
Разрешить полностью закрыть форму и высвободить память
Action:=caFree;
Таблица «Кассиры» представлена на рисунке 4.
Рисунок 4- Таблица «Кассиры»
Аналогично создаем следующие таблицы.
Рисунок 5 — Таблица «Вид товаров»
Рисунок 6 — Таблица «Справочник товаров»
Рисунок 7 — Таблица «Единицы измерения»
Отображение оперативной информации
Рисунок 8 — Отображение оперативной информации «Чеки»
Рисунок 9 — Таблица «Покупки»
Теперь необходимо организовать подстановку для поля код кассира, чтобы пользователь видел ФИО кассиров из справочника. Для этого сначала сделайте поле код кассира невидимым (Visible -> False). Затем добавьте новое поле Object Inspector — tbСheck — New field, появившееся окно на рисунке 10.
Рисунок 10 — Подстановка полей
4. Создание отчета
Отчет — это печатный документ, содержащий записи БД. В Delphi для создания отчетов служит генератор отчетов QuickReport, содержащий обширный набор компонентов. Компоненты, предназначенные для создания отчетов, находятся на закладке QReport палитры компонентов.
Главным элементом отчета является компонент-отчет QuickRep, представляющий собой основу, на которой размещаются другие компоненты. Компонент QuickRep обычно размещается на отдельной форме, предназначенной для создания отчета.
1. Открыть приложение «Чеки».
2. Добавить на форму кнопку «Создание отчета».
3. Создать новую форму «Отчет», которая будет вызываться нажатием на кнопку «Создание отчета».
4. На форму установить компоненту QuickRep с закладки QReport. Выделить этот компонент и в объектном инспекторе включить параметры HasTitle и HasDetail свойства Bands.
5. Расположим компоненты в секциях QuickRep1, которые будут отображать нужную информацию отчета. На закладке QReport палитры компонентов доступны следующие компоненты, которые можно расположить в этих разделах:
· QRLabel — надпись. Этот компонент похож на стандартный компонент TLabel и просто отображает нужные данные.
· QRDBText — данные. Этот компонент тоже похож на TLabel, только он предназначен для отображения значения какого либо поля из базы данных.
· QRSysData — системная информация. Это опять копия TLabel только с возможностью отображать системную информацию — дату, время, номер страницы, номер строки в таблицы, общее количество страниц и т. д.
6. Увеличить область заголовка Title. В верхний угол поместите один компонент QRSysData. Выделить его и в свойстве Data выбрать значение qrsDateTime. Теперь этот компонент будет отображать в правом, верхнем углу дату распечатки документа.
7. В центре области Tittle установить компонент QRLabel, увеличь шрифт в свойстве Font и написать в свойстве Caption текст «Отчет».
8. Расположить в области Tittle компоненты QRLabel и дать им заголовки: ФИО кассира.
9. Перейти к области Detail. Под заголовками поставить пять компонентов QRDBText. Установить в свойстве DataSet компонентов QRDBText набор данных mdKassirDB. tbChek, а в свойстве DataField для QRDBText 1 указать FIO. У всех остальных компонентов QRDBText указать соответствующие имена полей.
10. Перейти в главный модуль и по нажатию кнопки «Создание отчета» написать следующий код.
procedure TfmChek. SpeedButton1Click (Sender: TObject);
begin
fmOtc.QuickRep1.Preview;
end;
11. Выделить компонент QuickRep1 и в свойстве DataSet указать таблицу mdKassirDb.tbKassir.
12. Если сделать это, то компонент QuickRep1 автоматически будет перебирать все записи из этой таблицы и использовать их в компонентах, которые стоят в блоке DetailBand1.
13. Установить на форму отчета компонент — QRSubDetail с закладки QReport. Этот компонент предназначен для перебора данных относящихся к подчиненным таблицам.
14. Установить следующие свойства: DataSet — mdKassirDB.tbPokupki, чтобы связать блок с таблицей mdKassirDB.tbChek.
15. В свойстве Master нужно указать главный компонент с основными данными. Выбрать в этом свойстве QuickRep1.
16. Расположить на компоненте QRSubDetail компоненты QRDBText в свойстве указав, к каким полям подчиненной таблицы они обращаются.
17. После этого в отчете появятся все записи таблицы:
Рисунок 11- Отчет «Товары, проданные каждым кассиром»
Рисунок 12 — Отчет «Весь товар»
Заключение
При выполнении курсового проекта были изучены разработки простейшей базы данных, используя приемы работы с Microsoft Access в среде программирования Delphi.
В курсовом проекте были разработаны:
— база данных Access;
— проект в Delphi;
Ознакомлены с компонентами: TMainMenu, TSpeccButton, TADOConnection, TADOTable, DataModule.
Разработанная в данном курсовом проекте база данных для решения задач кассира в продуктовом магазине, позволяет автоматизировать весь документооборот, что позволяет разгрузить отчетный документооборот, и сократить ошибки в документации. При появлении новых производственных задач разработчик может в кратчайшие сроки реализовать их в базе данных, путем добавления строк, столбцов и целых таблиц.
Разработанная программа, работающая с базой данных, решает все установленные перед ней задачи.
Список использованных источников
1. Delphi 2007 на примерах (+ CD-ROM): Владимир Шупрута — Санкт Петербург, БХВ-Петербург, 2009 г.- 528 с.
2. Delphi 7. Основы программирования. Решение типовых задач. Самоучитель: Л. М. Климова — Москва, КУДИЦ-Образ, 2006 г.- 480 с.
3. Delphi в задачах и примерах (+ CD-ROM): Никита Культин — Москва, БХВ-Петербург, 2008 г.- 288 с.
4. Delphi. Профессиональное программирование: Дмитрий Осипов — Санкт-Петербург, Символ-Плюс, 2006 г.- 1056 с.
5. Turbo Delphi для новичков и не только: С. А. Любавин — Москва, НТ Пресс, 2008 г.- 320 с.
6.Основы программирования в интегрированной среде DELPHI: А. Желонкин — Санкт-Петербург, Бином. Лаборатория знаний, 2004 г.- 240 с.
7.Основы программирования в интегрированной среде Delphi. Практикум: А. Желонкин — Санкт-Петербург, Бином. Лаборатория знаний, 2006 г.- 240 с.
8. Приемы программирования в Delphi на основе VCL (+ CD-ROM): А. Я. Архангельский — Санкт-Петербург, Бином-Пресс, 2009 г.- 944 с.
9.Программирование в Turbo Pascal. Переход к Delphi (+ CD-ROM): Ю. А. Шпак — Санкт-Петербург, МК-Пресс, 2006 г.- 416 с.
10. Программируем в Turbo Delphi: С. А. Любавин — Москва, НТ Пресс, 2008 г.- 320 с.
11. Разработка приложений Microsoft Office 2007 в Delphi: Юрий Магда — Москва, БХВ-Петербург, 2009 г.- 160 с.
12. Самоучитель Delphi 7 Studio: Вячеслав Понамарев — Санкт-Петербург, БХВ-Петербург, 2003 г.- 504 с.
13. Сайт Wikipedia.org.
Приложение 1
Программный код главной формы
unit frmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, StdCtrls;
type
TfmMain = class (TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
procedure N1Click (Sender: TObject);
procedure N3Click (Sender: TObject);
procedure N5Click (Sender: TObject);
procedure N4Click (Sender: TObject);
procedure N7Click (Sender: TObject);
procedure N6Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
Uses frmKassir, frmVid, frmEd, frmTov, frmPokupki, frmChek, frmOtc,
ModKassirDB;
{$R *.dfm}
procedure TfmMain. N1Click (Sender: TObject);
begin
TfmKassir.Create (Application);
end;
procedure TfmMain. N3Click (Sender: TObject);
begin
TfmVid.Create (Application);
end;
procedure TfmMain. N5Click (Sender: TObject);
begin
TfmEd.Create (Application);
end;
procedure TfmMain. N4Click (Sender: TObject);
begin
TfmTov.Create (Application);
end;
procedure TfmMain. N7Click (Sender: TObject);
begin
TfmPokupki.Create (Application);
end;
procedure TfmMain. N6Click (Sender: TObject);
begin
TfmChek.Create (Application);
end;
end.
Приложение 2
Программный код формы для оперативной информации «Чеки»
unit frmChek;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids, jpeg, ExtCtrls, Buttons;
type
TfmChek = class (TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
btNewRecord: TButton;
btDelRecord: TButton;
btClose: TButton;
Label1: TLabel;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure btNewRecordClick (Sender: TObject);
procedure btDelRecordClick (Sender: TObject);
procedure btCloseClick (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
procedure SpeedButton1Click (Sender: TObject);
procedure SpeedButton2Click (Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmChek: TfmChek;
implementation
uses frmEd, frmKassir, frmMain, frmPokupki, frmTov, frmVid, ModKassirDB,
frmOtc, frmOtc2;
{$R *.dfm}
procedure TfmChek. btNewRecordClick (Sender: TObject);
begin
mdKassirDB.tbChek.Append;
DBGrid1.SetFocus;
end;
procedure TfmChek. btDelRecordClick (Sender: TObject);
begin
if dbgrid1.DataSource.DataSet.RecordCount<>0 then begin
mdKassirDB.tbChek.Delete;
mdKassirDB.tbChek.Refresh;
end;
end;
procedure TfmChek. btCloseClick (Sender: TObject);
begin
Close;
end;
procedure TfmChek. FormActivate (Sender: TObject);
begin
DBGrid1.SetFocus;
end;
procedure TfmChek. FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
procedure TfmChek. SpeedButton1Click (Sender: TObject);
begin
fmOtc.QuickRep1.Preview;
end;
procedure TfmChek. SpeedButton2Click (Sender: TObject);
begin
fmOtc2.QuickRep1.Preview;
end;
end.
Приложение 3
Программный код формы для оперативной информации «Покупки»
unit frmPokupki;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, Grids, DBGrids;
type
TfmPokupki = class (TForm)
DataSource1: TDataSource;
btNewRecord: TButton;
btDelRecord: TButton;
btClose: TButton;
DBGrid1: TDBGrid;
procedure btNewRecordClick (Sender: TObject);
procedure btDelRecordClick (Sender: TObject);
procedure btCloseClick (Sender: TObject);
procedure FormActivate (Sender: TObject);
procedure FormClose (Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmPokupki: TfmPokupki;
implementation
uses frmEd, frmKassir, frmMain, frmTov, frmVid, ModKassirDB;
{$R *.dfm}
procedure TfmPokupki. btNewRecordClick (Sender: TObject);
begin
mdKassirDB.tbPokupki.Append;
DBGrid1.SetFocus;
end;
procedure TfmPokupki. btDelRecordClick (Sender: TObject);
begin
if dbgrid1.DataSource.DataSet.RecordCount<>0 then begin
mdKassirDB.tbPokupki.Delete;
mdKassirDB.tbPokupki.Refresh;
end;
end;
procedure TfmPokupki. btCloseClick (Sender: TObject);
begin
Close;
end;
procedure TfmPokupki. FormActivate (Sender: TObject);
begin
DBGrid1.SetFocus;
end;
procedure TfmPokupki. FormClose (Sender: TObject; var Action: TCloseAction);
begin
Action:=caFree;
end;
end.
Приложение 4
Руководство пользователя
После того, как Вы запустите программу, перед вами появится главное меню приложения, содержащая пункты:
— «Кассиры»,
— «Виды товаров»,
— «Товары»,
— «Единицы измерения»,
— «Чеки»,
— «Покупки»
Нажав на какой либо пункт, вы попадете на новую форму, которая позволит Вам модифицировать таблицу соответствующих сущностей при помощи пользовательского интерфейса.
Также рядом расположены 3 кнопки Новая запись — позволяет добавить новую запись в таблицу.
Удалить запись — позволяет удалить последнюю запись.
Закрыть — закрыть окно с таблицей.
Вывод отчёта происходит также по нажатию кнопки «Создание отчета», находящаяся в пункте «Чеки».