Материал: Разработка базы данных для хранения информации данных характеристик товара

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Разработка базы данных для хранения информации данных характеристик товара

Содержание

Введение

. Анализ предметной области

. Описание входной и выходной информации

.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;;