Автор: Пользователь скрыл имя, 04 Мая 2012 в 18:19, дипломная работа
Цель работы – разработать данную систему, используя возможности среды визуального программирования Delphi.
В результате проделанной работы была создана такая система с использованием инструментальных средств Delphi 7.0.
Программа обладает развитым графическим интерфейсом. С данной программой могут работать пользователи различной квалификации.
Введение
1 Обследование предметной области
1.1 Автоматизация работы оптового магазина
1.1.1 Обоснование необходимости совершенствования системы
1.1.2 Выбор и обоснование варианта реализации задачи учета товара и услуг
1.1.3 Цели и задачи автоматизации учета товара
1.2 Проектирование системы
1.2.1 ER-диаграмма системы в нотации Чена
1.2.2 Проектирование БД
1.2.3 Описание структуры таблиц БД
2 Анализ целесообразности использования заданных средств
разработки
2.1 Приоритетный язык программирования
2.1.1 Программный продукт Delphi
2.1.2 Высокопроизводительный компилятор в машинный код
2.1.3 Мощный объектно-ориентированный язык
2.1.4 Объектно-ориентированная модель программных компонент
2.1.5 Библиотека визуальных компонент
2.2 Приоритетная СУБД
3 Описание и применение программы
3.1 Общие сведения
3.2 Функциональное назначение
3.3 Описание логической структуры
3.4 Системные требования
3.5 Вызов и загрузка
3.6 Входные и выходные данные
3.7 Работа с готовой программой
4 Оценка экономической эффективности инвестиционного проекта
4.1 Расчет затрат на разработку системы
4.2 Формирование денежного потока
4.2.1 Расчет поступлений денежных средств
4.2.2 Финансирование проекта по этапам разработки
4.3 Анализ рисков
5 Охрана труда
6 Охрана окружающей среды
Заключение
Список использованных источников
Приложение А Выходные формы документов
Приложение Б Исходный код модуля главного окна программы
// проверка, нет ли уже в списке расхода этого товара:
procedure TDM.
begin
tbRealizComp2.Open;
if tbRealizComp2.Locate('GoodsID'
Application.MessageBox('Данный товар уже есть в списке товаров в расход!',
'Ошибка', MB_OK + MB_ICONERROR);
Abort;
end;
tbRealizComp2.Close;
end;
procedure TDM.tbRealizCompPostError(
var Action: TDataAction);
begin
Application.MessageBox('
'Ошибка', MB_OK + MB_ICONERROR);
end;
//Подсчет итоговой суммы по расходу:
procedure TDM.tbRealizCalcFields(
begin
qrRealizSum.Close;
Продолжение
приложения Б
qrRealizSum.ParamByName('
qrRealizSum.Open;
DataSet.FieldByName('Sum').
end;
//Настройка пути к БД, создание псевдонима БД и открытие наборов данных:
procedure TDM.DataModuleCreate(Sender: TObject);
begin
if not Session.IsAlias('alComp') then begin
Session.ConfigMode := cmAll;
Session.AddStandardAlias('
end;
Database1.Open;
tbGoodsGroup.Open;
tbGoods.Open;
tbContrag.Open;
tbContract.Open;
tbRequisit.Open;
tbIncome.Open;
tbIncomeComp.Open;
tbRealiz.Open;
tbRealizComp.Open;
tbRealizComp2.Open;
qrStore.Open;
end;
procedure TDM.tbRealizCompBeforePost(
begin
// DataSet.FieldByName('Quantity'
end;
end.
unit uGoods;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Продолжение
приложения Б
Dialogs, StdCtrls, Buttons,
DBCtrls, ExtCtrls, Grids, DBGrids;
type
TfmGoods = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
bbtClose: TBitBtn;
bbtGroup: TBitBtn;
bbtGo: TBitBtn;
GroupBox1: TGroupBox;
dblcbGroupName: TDBLookupComboBox;
CheckBox1: TCheckBox;
bbtStore: TBitBtn;
bbtPrice: TBitBtn;
CheckBox3: TCheckBox;
edName: TEdit;
procedure CheckBox1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmGoods: TfmGoods;
implementation
uses uDM, uMain;
{$R *.dfm}
//Отбор товара
по выбранной группе и
procedure TfmGoods.CheckBox1Click(
var Filter: string;
begin
Filter := '';
if (CheckBox1.Checked)
and (dblcbGroupName.KeyValue<>
Filter :=
'(GroupID = ' + IntToStr(dblcbGroupName.
if (CheckBox3.Checked) and (edName.Text<>'') then begin
if Filter <> '' then
Filter := Filter + ' and ';
Продолжение
приложения Б
Filter := Filter + '(Name = ' + QuotedStr(edName.Text + '*') + ')';
end;
if Filter <> '' then begin
DM.tbGoods.Filter := Filter;
DM.tbGoods.Filtered := True;
end
else
DM.tbGoods.Filtered := False;
end;
end.
unit uGoodsGroup;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons,
DBCtrls, ExtCtrls, Grids, DBGrids;
type
TfmGoodsGroup = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmGoodsGroup: TfmGoodsGroup;
implementation
uses uDM;
{$R *.dfm}
Продолжение
приложения Б
end.
unit uIncome;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Mask, DBCtrls, ComCtrls, Buttons, Grids,
DBGrids, DB;
type
TfmIncome = class(TForm)
Panel1: TPanel;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
dtpDate: TDateTimePicker;
DBGrid1: TDBGrid;
Panel2: TPanel;
DBNavigator1: TDBNavigator;
bbtClose: TBitBtn;
bbtOK: TBitBtn;
Label3: TLabel;
edItogo: TEdit;
Label4: TLabel;
bbtGoods: TBitBtn;
Label5: TLabel;
dblcbContr: TDBLookupComboBox;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtOKClick(Sender: TObject);
procedure DBGrid1EditButtonClick(Sender: TObject);
procedure CalcSum;
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmIncome: TfmIncome;
Продолжение
приложения Б
implementation
uses uDM, uGoods, uMain, uRep;
{$R *.dfm}
//Функция осуществляет подсчет итоговой суммы по приходу с заданным шифром:
procedure TfmIncome.CalcSum;
begin
DM.qrIncomeSum.Close;
DM.qrIncomeSum.ParamByName('
DM.qrIncomeSum.Open;
fmIncome.edItogo.Text
:= Format('%m', [DM.qrIncomeSum.FieldByName('
end;
procedure TfmIncome.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if DM.tbIncomeComp.State in [dsEdit, dsInsert] then
DM.tbIncomeComp.Cancel;
if DM.tbIncome.State = dsEdit then
DM.tbIncome.Cancel;
//Если пользователь закрыл форму или нажал кнопку Отмена, то все
// введенные данные удаляются завершением транзакции:
if DM.Database1.InTransaction then
DM.Database1.Rollback;
DM.tbIncome.Refresh;
DM.tbIncomeComp.Refresh;
DM.tbContrag.Filtered := False;
end;
//Сохранение введенных данных о приходе:
procedure TfmIncome.bbtOKClick(Sender: TObject);
begin
if DM.tbIncomeComp.State in [dsEdit, dsInsert] then
DM.tbIncomeComp.Post;
if DM.tbIncomeComp.RecordCount = 0 then
Application.MessageBox('Не указано ни одного товара по приходу!',
'Ошибка', MB_OK + MB_ICONERROR)
else begin
Продолжение
приложения Б
//Если
пользователь указал не
if dtpDate.Date <> DM.tbIncomeDDate.AsDateTime then begin
DM.tbIncome.Edit;
DM.tbIncomeDDate.AsDateTime := dtpDate.Date;
DM.tbIncome.Post;
end;
//Завершение транзакции с сохранением всех введенных данных по //приходу:
if DM.Database1.InTransaction then
DM.Database1.Commit;
Close;
end;
end;
//При щелчке по кнопке "..." в ячейке "Шифр товара" в DBGrid1 на экран
// выводится справочник товаров для выбора нужного товара из спсика:
procedure TfmIncome.
begin
fmGoods.bbtGo.Caption := 'К форме прихода';
fmGoods.bbtGo.Visible := True;
if fmGoods.ShowModal = mrOK then begin
if not (DM.tbIncomeComp.State in [dsEdit, dsInsert]) then
DM.tbIncomeComp.Edit;
DM.tbIncomeCompGoodsID.Value := DM.tbGoodsID.Value;
end;
fmGoods.bbtGo.Visible := False;
end;
procedure TfmIncome.FormShow(Sender: TObject);
begin
CalcSum;
//В списке контрагентов доступны только поставщики:
DM.tbContrag.Filter := 'ContrType = True';
DM.tbContrag.Filtered := True;
end;
end.
unit uIncomeAll;
Продолжение
приложения Б
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons,
DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls;
type
TfmIncomeAll = class(TForm)
DBGrid1: TDBGrid;
Panel2: TPanel;
DBGrid2: TDBGrid;
Panel1: TPanel;
DBNavigator1: TDBNavigator;
GroupBox1: TGroupBox;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
dtpDateFrom: TDateTimePicker;
dtpDateTo: TDateTimePicker;
bbtClose: TBitBtn;
DBNavigator2: TDBNavigator;
bbtIncome: TBitBtn;
bbtPurchBook: TBitBtn;
procedure CheckBox1Click(Sender: TObject);
procedure bbtIncomeClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtPurchBookClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmIncomeAll: TfmIncomeAll;