Разработка базы данных для хранения информации данных характеристик товара
Содержание
Введение
. Анализ предметной области
. Описание входной и выходной информации
.1 Входная информация
.2 Выходная информация
. Обоснование выбора среды реализации
.1 Выбор среды реализации
.2 Выбор состава и параметров технических средств
. Построение реляционной базы данных
4.1 Разработка логической и физической модели базы данных
. Проектирование и реализация интерфейса программы
Заключение
Список использованных источников
Приложение
Введение
В курсовой работе будет разработана программа, которая автоматизирует
работу кассира, позволяет автоматически генерировать отчеты в разрезе
материально-ответственных лиц, также будут получены навыки по созданию баз
данных с использованием Database Desktop.
Разработка программы будет вестись Delphi 7- это среда быстрой разработки, в которой в качестве
языка программирования используется строго типизированный
объектно-ориентированный язык Delphi.
1. Анализ предметной области
Касса
- это подразделение организации, выполняющее кассовые операции с наличными
деньгами и денежными ценностями. Для обеспечения надежной сохранности наличных
денежных средств и ценностей помещение кассы должно отвечать требованиям по
технической укрепленности и оборудованию сигнализацией помещений
<#"787632.files/image001.gif">
Рис.1. Логическая модель
В построенной модели используется следующий вид связи - не
идентифицирующая связь, типа «один ко многим». Значит, что один экземпляр одной
сущности связан с множеством экземпляров другой сущности.
Рис. 2. Физическая модель
5. Проектирование и реализация интерфейса программы
Представленный курсовой проект содержит следующий перечень форм:
- Form1;
Data Module;
Data Module- это
средство для эффективной работы с базами данных.На форме Data Module установлены компоненты для работы с базами данных.В
данном случаи это компоненты:
Table(контейнеры
для размещения БД)
DataSource(связующие компоненты)
В результате мы получаем следующий вид для формы Data Module:
Рис. 3. Форма Data Module
На Form 1 будут находиться основные
элементы, а Data Module предназначен для эффективной работы с БД.
На Form1 представлены следующие компоненты:
DBGrid (специальная таблица для базы данных)
Button
(командная кнопка для реализации в программе команд)
Edit
(основной компонент для ввода)
BitBtn
(пиктографическая кнопка представляющая собой один из вариантов стандартной
кнопки Button.
DBNavigator (для навигации в таблице DBGrid)
Label
(надпись)
RadioButton ("радиокнопка" служит для "переключения каналов")
Date Time Picker(поле ввода даты и времени)
В результате мы получаем следующий вид для формы Form1:
Рис. 4. Форма Form1
После запуска программы мы из базы данных Kassir.db
выбираем кассира, выбираем из БД Tovar
любой товар, при этом цена автоматически заполняет компонент Edit:
Далее в ручную заполняем Дебет, Кол-во, Кредит, устанавливаем дату, из
групп операций выбираем операцию, которую нужно провести и нажимаем на кнопку
ОК.
Рис. 5. Выбор товара из БД Tovar
на форме Form1
Рис. 6. Заполнение оставшихся компонентов на форме Form1
Кнопка ОК предназначена для добавление операций в журнал операций,
которая представляет собой базу данных GurOper1.db, а
также получение результата для выполненного процесса.
В результате мы имеем следующий вид:
Рис. 7. Выполнение процесса при нажатии кнопки ОК на форме Form1
Кнопка Отчет кассира предназначен для вывода в excel формат отчет кассира. Этот отчет строится на основе
выборке из журнала операции GurOper1. Для вывода мы указываем дату операции и
выбираем из базы данных Kassir.db кассира, и если такие есть в журнале
операций GurOper1.db, то они
выводятся в excel формате.
Рис. 8. Отчет кассира
Кнопка Close предназначена для выхода из
программы.
Заключение
В рамках курсового проектирования был разработан проект, который
автоматизирует рабочее место кассира.
Разработана база данных для хранения информации данных характеристик
товара.
В результате изучены информационные потоки данных, определена технология
обработки данных, вид входных и выходных документов.
Внедрение разработанной информационной системы позволит предприятию вести
централизованный учет расходов на товары и оперативно формировать отчеты по
кассирам.
интерфейс программа database desktop
Список использованных источников
1. Фленов М.Е. Библия Delphi: 2004. - 668с.
. Петров В.Н. Информационные системы. - СПб.: Питер,
2008.
. Фаронов В.В. Программирование баз данных в Delphi 7:
Учебный курс. - СПб.: Питер, 2004 - 464 с.
. Ульман Дж., Уидом Дж. Введение в системы баз данных.
- М.: Лори, 2006. - 374с.
. Карпова Т.С. Базы данных: модели, разработка. -
СПб.: Питер, 2009, 304 с.
Приложение
Листинг кода главной формы проекта:
unit Unit1;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
Buttons, StdCtrls, ExtCtrls, DBCtrls, Grids,
DBGrids,ComObj, ComCtrls;
type= class(TForm): TDBGrid;: TDBNavigator;: TDBGrid;:
TDBNavigator;: TDBGrid;: TDBNavigator;: TGroupBox;: TLabel;: TEdit;: TLabel;:
TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TLabel;: TEdit;: TGroupBox;:
TRadioButton;: TRadioButton;: TRadioButton;: TEdit;: TEdit;: TEdit;: TLabel;: TLabel;:
TBitBtn;: TBitBtn;: TDateTimePicker;: TRadioButton;: TRadioButton;:
TRadioButton;: TButton;DBGrid1CellClick(Column: TColumn);BitBtn1Click(Sender:
TObject);RadioButton3Click(Sender: TObject);Button2Click(Sender: TObject);
{ Private declarations }
{ Public declarations };: TForm1;:string;:boolean;:
integer;LAV,Modul1;
{$R *.dfm}TForm1.DBGrid1CellClick(Column:
TColumn);.Text:=Ligidov.Tovar.FieldByName('Cena').AsString;;TForm1.BitBtn1Click(Sender:
TObject);:string;:string;:string;
// stoim, naz,nar:string;.GurOper1.Insert;.GurOper1.FieldByName('Debet').AsString:=
Edit3.Text;.GurOper1.FieldByName('Kredit').AsString:=
Edit4.Text;.GurOper1.FieldByName('DatOper').AsString:=DateToStr(DateTimePicker1.Date);.GurOper1.FieldByName('KodKassira').AsString:=Ligidov.Kassir.FieldByName('KodKassira').AsString;.GurOper1.FieldByName('Kolic').AsString:=Edit2.Text;:=CalKuljator(Edit1.Text,Edit2.Text,'*',2);:=ZnakZamena(a0,'.',',');.GurOper1.FieldByName('summa').AsString:=a0;.Text:=a0;radiobutton1.Checked
then.Text:=a0;.Text:=inttostr(0);:='продажа
';:=a1+Ligidov.Tovar.FieldByName('Tovar').AsString;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton2.Checked
then.Text:=inttostr(0);.Text:=a0;:='возврат
';:=a1+Ligidov.Tovar.FieldByName('Tovar').AsString;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton3.Checked
then:=edit6.text;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton4.Checked
then.Text:=inttostr(0);.Text:=a0;:='Оклад';:=a1+Ligidov.Kassir.FieldByName('FIO').AsString;.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton5.Checked
then.Text:=inttostr(0);.Text:=a0;
a1:='наличка в Банк';:=a1;
Ligidov.GurOper1.FieldByName('Operac').AsString:=a2;;radiobutton6.Checked
then.Text:=a0;.Text:=inttostr(0);:='погасили долг';:=a1;.GurOper1.FieldByName('Operac').AsString:=a2;;.GurOper1.FieldByName('DebetS').AsString:=
Edit7.Text;.GurOper1.FieldByName('KreditS').AsString:=
Edit8.Text;.GurOper1.Post;;TForm1.RadioButton3Click(Sender:
TObject);.Text:='';;TForm1.Button2Click(Sender: TObject);,dat1,dat2,G0,s0,k0, kodW,KodPr,a0,a01,a1,a2
:string;,Gir1,SGir1,sum0,kol0,Sum1,kol1,Ssum1,Skol1:real;,
n2,i1,i,s1,s2,s3:integer;,Sheet,Colum:Variant;,skolk1,skold2, skolk2,
skold3,skolk3, kold1,kolk1,kold2, kolk2,
kold3,kolk3,,sd1,k1,sk1,sk2,d2,k2,sd2,d3,sd3,k3,sk3:real;Ligidov do begin
//KodPr1:=Kassir.fieldbyname('KodKassira').AsString;:='01.01.2000';:=DateToStr(DateTimePicker1.Date);:=a0;
//a01:=DateToStr(DateTimePicker2.Date);
//dat2:=a01;:=CreateOleObject('Excel.Application');.Visible:=true;.Workbooks.Add(-4167);.Workbooks[1].WorkSheets[1].Name:='Оборотка';:=XLApp.Workbooks[1].WorkSheets['Оборотка'].Columns;:=1;.Columns[1].ColumnWidth:=5;.Columns[2].ColumnWidth:=30;.Columns[3].ColumnWidth:=10;.Columns[4].ColumnWidth:=15;.Columns[5].ColumnWidth:=10;.Columns[6].ColumnWidth:=15;.Columns[7].ColumnWidth:=10;.Columns[8].ColumnWidth:=10;:=XLApp.Workbooks[1].WorkSheets['Оборотка'].Rows;.Rows[2].Font.Bold:=true;.Rows[1].Font.Bold:=true;.Rows[1].Font.Color:=clBlue;.Rows[1].Font.Size:=12;:=XLApp.Workbooks[1].WorkSheets['Оборотка'];
//n2:=0;.Cells[n2,1]:='Журнал операций за
'+a0 +'+'+Kassir.fieldbyname('FIO').AsString;
iNC(n2);.Cells[n2,2]:='Остаток
на начала '+a0 ;
Ligidov.SetBase4('GurOper1.DB','DatOper','Debet','','','Summa','Summa','01.01.2000',a0,'50','','',kold1,d1);.SetBase4('GurOper1.DB','DatOper','Kredit','','','Summa','Summa','01.01.2000',a0,'50','','',kold1,d2);:=d1-d2;(d3:13:2,a1);:=Trim(a1);.Cells[n2,5]:=a1;(n2);
//Sheet.Cells[n2,0]:='??
';.Cells[n2,1]:='№№ ';
Sheet.Cells[n2,2]:='Наименование
операции';.Cells[n2,3]:='Дебет';.Cells[n2,4]:='
суммаДебет';.Cells[n2,5]:='Кредит';.Cells[n2,6]:='суммаКредит';
Sheet.Cells[n2,7]:='Сумма ';
iNC(n2);:=0;
s2:=0;s3:=0;Ligidov do
begin('GurOper1.DB','DatOper','','','','','Summa',a0,a0,'','','',kold1,d1);.First;
//a1:=Query1.fieldbyname('KodTovara').AsString;
//KodPr:=Query1.fieldbyname('KodKassira').AsString;.Cells[n2,2]:=Query1.fieldbyname('Operac').AsString;.Cells[n2,3]:=Query1.fieldbyname('Debet').AsString;.Cells[n2,4]:=Query1.fieldbyname('DebetS').AsString;.Cells[n2,5]:=Query1.fieldbyname('Kredit').AsString;.Cells[n2,6]:=Query1.fieldbyname('KreditS').AsString;.Cells[n2,7]:=Query1.fieldbyname('Summa').AsString;.Cells[n2,1]:=IntToStr(n2-2);:=s2+Query1.fieldbyname('DebetS').AsInteger;:=s3+Query1.fieldbyname('KreditS').AsInteger;:=s2-s3;.Next;(n2);Query1.Eof;.Cells[n2,2]:='Итого';.Cells[n2,4]:=IntToStr(s2);.Cells[n2,6]:=IntToStr(s3);.Cells[n2,7]:=IntToStr(s1);
Sheet.Cells[n2+3,7]:='Подпись
кассира ___________________________';.Cells[n2+5,7]:='Подпись бугалтера
_________________________';
end;
Листинг кода формы Data Module проекта:
unit LAV;, Classes, DBTables, DB;= class(TDataModule):
TDataSource;: TDataSource;: TDataSource;: TDataSource;: TTable;: TTable;:
TTable;:
TQuery;SetBase3(Fils,Datp,Buhp,KodWrkPl,ScetPl,DaTT1,DaTT2,szet,KodWrk,Korenscet:string);SetBase4(Fils,Datp,Buhp,KodWrkPl,ScetPl,Kolp,Sump,DaTT1,DaTT2,szet,KodWrk,Korenscet:string;
Var Kol1,Sum1:real);
{ Private declarations }
{ Public declarations };: TLigidov;:string;
{$R *.dfm}TLigidov.SetBase4(Fils,Datp,Buhp,KodWrkPl,ScetPl,Kolp,Sump,DaTT1,DaTT2,szet,KodWrk,Korenscet:string;
Var Kol1,Sum1:real);,s,s1,s0,a1,a0:string;:integer;,
summ1:real;(Fils,Datp,Buhp,KodWrkPl,ScetPl,DaTT1,DaTT2,szet,KodWrk,Korenscet);
//SetBase3(Fils,Datp,KodWrkPl,ScetPl,DaTT1,DaTT2,KodWrk,Korenscet);:=0;
summ1:=0;.First;i1:=1 to Query1.RecordCount do begin
//Koli1:=Koli1+Query1.FieldByName(Kolp).AsFloat;:=summ1+Query1.FieldByName(Sump).AsFloat;.Next;;//i:=Koli1;:=summ1;;TLigidov.SetBase3(Fils,Datp,Buhp,KodWrkPl,ScetPl,DaTT1,DaTT2,szet,KodWrk,Korenscet:string);,s,s1,s0,a1,a0:string;
//TekDir:='C:\Scet60';.DataSet:=Query1;
//Dbgrid1.DataSource:=FDataSource4;.DatabaseName:=TekDir;.Close;.sql.Clear;.sql.Add('SELECT
* FROM '+Fils);:='WHERE ('+Datp+' BETWEEN "'+DaTT1+'" and
"'+DaTT2+'")';.sql.Add(a1);
//if length(BuhP)>0 then Query1.sql.Add('and ('+BuhP+'
LIKE "%" ||'+'"'+szet+'" ||
"%")');length(BuhP)>0 then Query1.sql.Add('and
('+BuhP+'="'+szet+'")');length(ScetPl)>0 then Query1.sql.Add('and
('+ScetPl+' LIKE "%" ||'+'"'+Korenscet+'" ||
"%")');length(KodWrkPl)>0 then Query1.sql.Add('and
('+KodWrkPl+'="'+KodWrk+'")');
{:='and ('+Datp+' BETWEEN "'+DaTT1+'" and
"'+DaTT2+'")';.Query1.sql.Add(a1);
}.sql.SaveToFile('sql11.txt');.open;;