Курсовая работа: Разработка интерактивной системы обработки базы данных ведомости работы расчетно-кассового узла универсама
Чтобы осуществить поиск информации о товаре в базе данных необходимо открыть с помощью кнопки «Поиск товара» форму ввода искомого значения (рис. .П.2.4) После нажатия кнопки «ОК» в системе будет осуществлен поиск искомых сочетаний знаков. При этом указатель будет помещен на первое найденное значение или будет выведено сообщение об отсутствии искомого значения.
Для ввода информации о новом товаре служит кнопка «Новый товар» (рис. .П.2.2). После её нажатия появляется форма ввода для внесения в базу новой записи.
Удаление информации о выбранном товаре осуществляется после нажатия кнопки «Удалить товар» (рис.П.2.3). При этом на экране появляется предупреждающее сообщение.
Вычисление общей суммы продаж по выбранному товару и остаток его на складе осуществляется автоматически.
Для просмотра сведений о продажах в графической форме служит кнопка «Диаграмма» (рис. .П.2.5).
Для работы с таблицей типов товаров необходимо нажать кнопку «Тип товара», что приведет к открытию соответствующей формы (см. рис.П.2.6).
Для предварительного просмотра и распечатки отчета о продажах служит кнопка «Отчет». В окне предварительного просмотра (рис. .П.2.7) пользователю доступны кнопки изменения масштаба изображения на экране, выбора и настройки принтера, отправки указанной страницы на печать.
4. Перенос и установка системы на другой компьютер
Для нормальной работоспособности системы на другом компьютере необходимо воспользоваться программой InstallShield, поставляемой вместе с Delphi. Запустив мастер создания инсталляционного пакета и заполнив все необходимые поля карточки мастера (расположение на диске, метод установки, необходимость включения компонентов в пакет и т.п.) получаем на выходе исполняемый файл setup.exe. Этот файл необходимо передать пользователю программы.
Для установки системы на компьютере пользователя необходимо запустить указанный выше файл (setup.exe) и дождаться завершения установки. При этом будет произведено автоматическое копирование всех необходимых элементов, создан каталог KP на диске C компьютера пользователя, произведена настройка псевдонима базы данных.
Перед установкой программы необходимо:
1. Убедится в наличии установленных ОС Windows 98 или выше и администратора баз данных BDE версии 5.1 или выше.
2. Убедится в наличии установленной СУБД ACCESS 2000 или выше.
3. При необходимости установить указанные компоненты.
После завершения установки достаточно запустить из папки KP исполняемый файл kp.exe.
Список литературы
1. Архангельский А.Я. Работа с локальными базами данных в Delphi 5. М.:Бином,2000.
2. Архангельский А.Я. Язык SQL в Delphi 5. М.: ЗАО «Издательство БИНОМ»,М.: 2000.
3. Архангельский А.Я. Object Pascal в Delphi 5. М.: ЗАО «Издательство БИНОМ», 1999.
4. Гофман В.Э., Хомоненко А.Д. Delphi 6. СПб, «БХВ-Петербург», 2002.
5. Гофман В.Э., Хомоненко А.Д.Работа с базами данных в Delphi. СПб,«Скт- Петербург», 2000.
6. Дарахвелидзе П., Марков Е. Программирование в Delphi 7. СПб, «Скт-Петербург», 2003.
7. Климова Л.М. Программирование в среде Delphi. Часть 2.Учебное пособие. М.: МГТУ ГА, 2003.
8. Фаронов В.В. Delphi 6. Учебный курс. М.: Издатель Молгачкова С.В., 2002.
9. Архангельский А. Я. Программирование в Delphi 7. М: « Издательство БИНОМ», 2003.
Приложение
Файл kp.dpr
program kp;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {Form2},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Intro},
Unit7 in 'Unit7.pas' {AboutBox};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TForm2, Form2);
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TIntro, Intro);
Application.CreateForm(TAboutBox, AboutBox);
Application.Run;
end.
Файл unit1.pas
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, Grids, DBGrids, DBTables, Menus, StdCtrls, ExtCtrls, DBCtrls,
dbcgrids, ComCtrls;
type
TForm1 = class(TForm)
Database1: TDatabase;
tTable1: TTable;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
tTable2: TTable;
tTable1KodZapisi: TAutoIncField;
tTable1Nazvanie: TStringField;
tTable1Kod: TIntegerField;
tTable1Prihod: TFloatField;
tTable1Rashod: TFloatField;
tTable1Zena: TFloatField;
tTable1Stoimost: TCurrencyField;
tTable1Ostatok: TFloatField;
tTable2Kod: TAutoIncField;
tTable2Tip: TStringField;
tTable1Field111: TStringField;
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
cmdNew: TButton;
cmdDel: TButton;
cmdType: TButton;
RadioGroup1: TRadioGroup;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
DBLookupComboBox1: TDBLookupComboBox;
DataSource2: TDataSource;
StatusBar1: TStatusBar;
cmdChart: TButton;
cmdReport: TButton;
cmdFind: TButton;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
procedure tTable1CalcFields(DataSet: TDataSet);
procedure N5Click(Sender: TObject);
procedure cmdNewClick(Sender: TObject);
procedure cmdDelClick(Sender: TObject);
procedure tTable1AfterPost(DataSet: TDataSet);
procedure cmdTypeClick(Sender: TObject);
procedure tTable2AfterPost(DataSet: TDataSet);
procedure RadioGroup1Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure DBLookupComboBox1Click(Sender: TObject);
procedure cmdChartClick(Sender: TObject);
procedure cmdFindClick(Sender: TObject);
procedure cmdReportClick(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormShow(Sender: TObject);
procedure N11Click(Sender: TObject);
private
{ Private declarations }
procedure DisplayHint(Sender: TObject);
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7;
{$R *.dfm}
//Вывод подсказки в строку состояния
procedure TForm1.DisplayHint(Sender: TObject);
begin
StatusBar1.SimpleText := Application.Hint;
end;
//Формирование значений вычисляемых полей
procedure TForm1.tTable1CalcFields(DataSet: TDataSet);
begin
tTable1Stoimost.AsCurrency:=tTable1Zena.AsCurrency*tTable1Rashod.AsFloat;
tTable1Ostatok.AsFloat:=tTable1Prihod.AsFloat-tTable1Rashod.AsFloat;
end;
//Кнопка "Выход из программы"
procedure TForm1.N5Click(Sender: TObject);
begin
CloseQuery;
end;
//Кнопка "Новая запись"
procedure TForm1.cmdNewClick(Sender: TObject);
begin
Form2.ShowModal;
end;
//Кнопка "Удаление записи"
procedure TForm1.cmdDelClick(Sender: TObject);
begin
if MessageDlg('Удалить запись?',
mtConfirmation,[mbYes,mbNo],0) = mrYes then tTable1.Delete;
end;
procedure TForm1.tTable1AfterPost(DataSet: TDataSet);
begin
tTable1.Active:=False;
tTable1.Active:=True;
tTable1.Last;
end;
//Кнопка "Тип товара"
procedure TForm1.cmdTypeClick(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm1.tTable2AfterPost(DataSet: TDataSet);
begin
tTable2.Active:=False;
tTable2.Active:=True;
tTable2.Last;
end;
//Включение режимов сортировки
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
tTable1.Active:=False;
case RadioGroup1.ItemIndex of
0: tTable1.IndexName:='indNazvanie';
1: tTable1.IndexName:='indKod';
2: tTable1.IndexName:='';
end;
tTable1.Active:=True;
end;
//Управление фильтром
procedure FilterOn();
var v:Variant;
begin
with Form1 do
begin
if CheckBox1.Checked=False then
begin
DBLookupComboBox1.Enabled:=True;
v:=DBLookupComboBox1.KeyValue;
if VarIsNumeric(v) then tTable1.Filter:='Kod='+IntToStr(v)
else tTable1.Filter:='';
tTable1.Filtered:=True;
end
else
begin
DBLookupComboBox1.Enabled:=False;
tTable1.Filtered:=False;
end;
end;
end;
procedure TForm1.CheckBox1Click(Sender: TObject);
begin
FilterOn;
end;
procedure TForm1.DBLookupComboBox1Click(Sender: TObject);
begin
FilterOn;
end;
//Кнопка "Диаграмма"
procedure TForm1.cmdChartClick(Sender: TObject);
begin
Form4.ShowModal;
end;
//Кнопка "Поиск товара"
procedure TForm1.cmdFindClick(Sender: TObject);
var s:String;
f:Boolean;
begin
if InputQuery('Найти','', s) then
begin
f:=tTable1.Locate('Nazvanie',s,[loPartialKey,loCaseInsensitive]);
if f=False then Application.MessageBox('Значение не найдено',
'Результат поиска',MB_ICONWARNING+MB_OK);
end
else tTable1.Cancel;
end;
//Кнопка "Отчет"
procedure TForm1.cmdReportClick(Sender: TObject);
var bm: TBookmark;
begin
bm:=tTable1.GetBookmark;
Form5.QuickRep1.Preview;
tTable1.GotoBookmark(bm);
end;
//Работа с меню
procedure TForm1.N6Click(Sender: TObject);
begin
cmdNew.Click;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
cmdDel.Click;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
cmdChart.Click;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
cmdReport.Click;
end;
procedure TForm1.N12Click(Sender: TObject);
begin
cmdFind.Click;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
Application.HelpFile := 'kp.hlp';
Application.HelpCommand(HELP_CONTENTS, 0);
end;
//Вывод подсказки в строку состояния
procedure TForm1.FormCreate(Sender: TObject);
begin
Application.OnHint := DisplayHint;
end;
//Выход из программы
procedure TForm1.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Application.MessageBox('Вы уверены?',
'Подтверждение выхода',mb_yesno+mb_iconquestion)=idyes then CanClose:=True
else CanClose:=False;
end;
//Вывод заставки
procedure TForm1.FormShow(Sender: TObject);
begin
Intro.ShowModal;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
AboutBox.ShowModal;
end;
end.
Листинг П. 4.2 Файл unit2.pas
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DBCtrls, DB, DBTables, Grids, DBGrids, Mask;
type
TForm2 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
cmdOK: TButton;
cmdCancel: TButton;
Label4: TLabel;
DBEdit1: TDBEdit;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBLookupComboBox1: TDBLookupComboBox;
procedure cmdOKClick(Sender: TObject);
procedure cmdCancelClick(Sender: TObject);
procedure DBLookupComboBox1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure DBEdit1Change(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm2.cmdOKClick(Sender: TObject);
begin
Form1.tTable1.Post;
Form2.Close;
end;
procedure TForm2.cmdCancelClick(Sender: TObject);
begin
Form1.tTable1.Cancel;
Form2.Close;
end;
procedure TForm2.DBLookupComboBox1Click(Sender: TObject);
begin
if DBLookupComboBox1.Text<>'' then
if DBEdit1.Text<>'' then cmdOK.Enabled:=True;
end;
procedure TForm2.FormActivate(Sender: TObject);
begin
cmdOK.Enabled:=False;
Form1.tTable1.Append;
end;
procedure TForm2.DBEdit1Change(Sender: TObject);
begin
if DBLookupComboBox1.Text<>'' then
if DBEdit1.Text<>'' then cmdOK.Enabled:=True;
end;
procedure TForm2.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
Form1.tTable1.Cancel;
Form2.Close;
end;
end.
база данные ведомость приложение
Файл unit3.pas
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB;
type
TForm3 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DataSource1: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit1;
{$R *.dfm}
end.
Файл unit4.pas
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, TeEngine, Series, ExtCtrls, TeeProcs, Chart, DbChart, TeeFunci,
DB, DBTables, Grids, DBGrids;
type
TForm4 = class(TForm)
Query1: TQuery;
DBChart1: TDBChart;
Series1: TPieSeries;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit1;
{$R *.dfm}
procedure TForm4.FormActivate(Sender: TObject);
begin
Query1.Active:=False;
Query1.Active:=True;
end;
end.
Файл unit5.pas
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QuickRpt, ExtCtrls, DB, DBTables, QRCtrls;
type
TForm5 = class(TForm)
QuickRep1: TQuickRep;
QRGroup1: TQRGroup;
QRBand1: TQRBand;
Table1: TTable;
Table1KodZapisi: TAutoIncField;
Table1Nazvanie: TStringField;
Table1Kod: TIntegerField;
Table1Prihod: TFloatField;
Table1Rashod: TFloatField;
Table1Zena: TFloatField;
Table2: TTable;
Table2Kod: TAutoIncField;
Table2Tip: TStringField;
QRDBText1: TQRDBText;
DataSource1: TDataSource;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel2: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRLabel7: TQRLabel;
QRLabel8: TQRLabel;
QRShape1: TQRShape;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRDBText6: TQRDBText;
QRExpr1: TQRExpr;
QRExpr2: TQRExpr;
QRBand3: TQRBand;
QRBand4: TQRBand;
QRLabel1: TQRLabel;
QRExpr3: TQRExpr;
QRExpr4: TQRExpr;
QRExpr5: TQRExpr;
QRExpr6: TQRExpr;
QRShape2: TQRShape;
QRLabel9: TQRLabel;
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
implementation
{$R *.dfm}
procedure TForm5.FormActivate(Sender: TObject);
begin
Table1.Active:=True;
end;
end.
Файл unit6.pas
unit Unit6;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls;
type
TIntro = class(TForm)
Image1: TImage;
Timer1: TTimer;
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Intro: TIntro;
implementation
uses Unit1;
{$R *.dfm}
procedure TIntro.Timer1Timer(Sender: TObject);
begin
Close;
end;
end.
Файл unit7.pas
unit Unit7;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls;
type
TAboutBox = class(TForm)
Panel1: TPanel;
ProductName: TLabel;
Version: TLabel;
OKButton: TButton;
procedure OKButtonClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
AboutBox: TAboutBox;
implementation
{$R *.dfm}
procedure TAboutBox.OKButtonClick(Sender: TObject);
begin
AboutBox.Close;
end;
end.