Автор: Пользователь скрыл имя, 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 Охрана окружающей среды
Заключение
Список использованных источников
Приложение А Выходные формы документов
Приложение Б Исходный код модуля главного окна программы
implementation
uses uDM, uIncome, DB, uDiapason,
uRep;
{$R *.dfm}
//Фильтрация данных по приходу товара по диапазону дат:
procedure TfmIncomeAll.CheckBox1Click(
Продолжение
приложения Б
var Filter: string;
begin
Filter := '';
if CheckBox1.Checked then
Filter :=
'(DDate >= ' + QuotedStr(DateToStr(
if CheckBox2.Checked then begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter :=
Filter + '(DDate <= ' + QuotedStr(DateToStr(dtpDateTo.
end;
if (CheckBox1.Checked) or (CheckBox2.Checked) then begin
DM.tbIncome.Filter := Filter;
DM.tbIncome.Filtered := True;
end
else
DM.tbIncome.Filtered := False;
end;
//Просмотр информации о выбранном приходе:
procedure TfmIncomeAll.bbtIncomeClick(
begin
//Форма прихода отображается в режиме только для чтения:
with fmIncome do begin
bbtOK.Visible := False;
dtpDate.Date := DM.tbIncomeDDate.AsDateTime;
dtpDate.Enabled := False;
dblcbContr.ReadOnly := True;
DBGrid1.ReadOnly := True;
DBGrid1.Columns[0].ButtonStyle := cbsNone;
DBGrid1.Columns[1].ButtonStyle := cbsNone;
DBNavigator1.VisibleButtons
:= [nbFirst,nbPrior,nbNext,
ShowModal;
DBNavigator1.VisibleButtons
:= [nbFirst,nbPrior,nbNext,
DBGrid1.ReadOnly := False;
DBGrid1.Columns[0].ButtonStyle := cbsEllipsis;
DBGrid1.Columns[1].ButtonStyle := cbsAuto;
dtpDate.Enabled := True;
dblcbContr.ReadOnly := False;
bbtOK.Visible := True;
end;
Продолжение
приложения Б
end;
procedure TfmIncomeAll.FormShow(Sender: TObject);
begin
dtpDateFrom.Date := Date;
dtpDateTo.Date := Date;
end;
//Формирование книги покупок:
procedure TfmIncomeAll.
var DateFrom, DateTo: TDate;
begin
//По умолчанию (если на форме не задан диапазон дат) книга продаж
// формируется в диапазоне "дата первого расхода"..."дата последнего //расхода":
if CheckBox1.Checked then
DateFrom := dtpDateFrom.Date
else begin
DM.tbIncome.First;
DateFrom := DM.tbIncomeDDate.AsDateTime;
end;
if CheckBox2.Checked then
DateTo := dtpDateTo.Date
else begin
DM.tbIncome.Last;
DateTo := DM.tbIncomeDDate.AsDateTime;
end;
if GetDiapason(DateFrom, DateTo) then
Rep_PurchBook(DateFrom, DateTo);
end;
end.
unit uMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ToolWin, ActnMan, ActnCtrls, ActnMenus, ActnList, StdActns,
ImgList, StdCtrls, Buttons, jpeg, ExtCtrls, ComObj, DB;
Продолжение
приложения Б
type
TfmMain = class(TForm)
ActionManager1: TActionManager;
acFileExit: TFileExit;
ImageList1: TImageList;
acSpravGoodsGroups: TAction;
ActionMainMenuBar1: TActionMainMenuBar;
acSpravGoods: TAction;
acOperIncome: TAction;
BitBtn4: TBitBtn;
acGoodsIncome: TAction;
BitBtn5: TBitBtn;
acGoodsStore: TAction;
BitBtn6: TBitBtn;
acOperRealiz: TAction;
acGoodsRealiz: TAction;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
Image1: TImage;
BitBtn1: TBitBtn;
acDocPrice: TAction;
acDocGoods: TAction;
acDocSellBook: TAction;
acDocPurchBook: TAction;
acSpravContrag: TAction;
acSpravRequisit: TAction;
acSpravContract: TAction;
procedure
acSpravGoodsGroupsExecute(
procedure acSpravGoodsExecute(Sender: TObject);
procedure acOperIncomeExecute(Sender: TObject);
procedure acGoodsIncomeExecute(Sender: TObject);
procedure acGoodsStoreExecute(Sender: TObject);
procedure acOperRealizExecute(Sender: TObject);
procedure acGoodsRealizExecute(Sender: TObject);
procedure acDocPriceExecute(Sender: TObject);
procedure acDocGoodsExecute(Sender: TObject);
procedure acDocSellBookExecute(Sender: TObject);
procedure acDocPurchBookExecute(Sender: TObject);
procedure acSpravContragExecute(Sender: TObject);
procedure acSpravRequisitExecute(Sender: TObject);
procedure acSpravContractExecute(Sender: TObject);
private
{ Private declarations }
Продолжение
приложения Б
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
uses uGoodsGroup, uGoods, uIncome, uDM, uIncomeAll, uStore, uRealiz,
uRealizAll, uRep, uDiapason,
uContrag, uRequisit, uContract;
{$R *.dfm}
procedure TfmMain.
begin
fmGoodsGroup.ShowModal;
end;
procedure TfmMain.acSpravGoodsExecute(
begin
if not fmGoods.Showing then
fmGoods.ShowModal;
end;
//Регистрация прихода товара:
procedure TfmMain.acOperIncomeExecute(
begin
//Начало транзакции:
DM.Database1.StartTransaction;
try
DM.tbIncome.Insert;
DM.tbIncome.FieldByName('
DM.tbIncome.Post;
fmIncome.dtpDate.Date := Date;
fmIncome.ShowModal;
except
DM.Database1.Rollback;
end;
end;
procedure TfmMain.acGoodsIncomeExecute(
begin
Продолжение
приложения Б
fmIncomeAll.ShowModal;
end;
procedure TfmMain.acGoodsStoreExecute(
begin
if not fmStore.Showing then begin
DM.qrStore.Close;
DM.qrStore.Open;
fmStore.ShowModal;
end;
end;
//Регистрация прихода товара:
procedure TfmMain.acOperRealizExecute(
begin
//Начало транзакции:
DM.Database1.StartTransaction;
try
DM.qrStore.Close;
DM.qrStore.Open;
DM.tbRealiz.Insert;
DM.tbRealiz.FieldByName('
DM.tbRealiz.Post;
fmRealiz.dtpDate.Date := Date;
fmRealiz.ShowModal;
except
DM.Database1.Rollback;
end;
end;
procedure TfmMain.acGoodsRealizExecute(
begin
fmRealizAll.ShowModal;
end;
//Формирование прайс-листа:
procedure TfmMain.acDocPriceExecute(
begin
Rep_Price_Store('Прайс-лист', DM.tbGoods);
end;
//Формирование отчета по товару на складе (в наличии):
procedure TfmMain.acDocGoodsExecute(
Продолжение
приложения Б
begin
Rep_Price_Store('Товар на складе', DM.qrStore);
end;
//Формирование книги продаж:
procedure TfmMain.acDocSellBookExecute(
var DateFrom, DateTo: TDate;
begin
//По умолчанию
книга продаж формируется в
диапазоне "дата первого
//"дата последнего расхода":
DM.tbRealiz.Filtered := False;
DM.tbRealiz.First;
DateFrom := DM.tbRealizDDate.AsDateTime;
DM.tbRealiz.Last;
DateTo := DM.tbRealizDDate.AsDateTime;
if GetDiapason(DateFrom, DateTo) then
Rep_SellBook(DateFrom, DateTo);
end;
//Формирование книги покупок:
procedure TfmMain.acDocPurchBookExecute(
var DateFrom, DateTo: TDate;
begin
//По умолчанию книга покупок формируется в диапазоне "дата первого прихода" ...
//"дата последнего прихода":
DM.tbIncome.Filtered := False;
DM.tbIncome.First;
DateFrom := DM.tbIncomeDDate.AsDateTime;
DM.tbIncome.Last;
DateTo := DM.tbIncomeDDate.AsDateTime;
if GetDiapason(DateFrom, DateTo) then
Rep_PurchBook(DateFrom, DateTo);
end;
procedure TfmMain.acSpravContragExecute(
begin
fmContrag.ShowModal;
end;
procedure TfmMain.
Продолжение
приложения Б
begin
fmRequisit.ShowModal;
end;
procedure TfmMain.
begin
fmContract.ShowModal;
end;
// Работа часов и даты
procedure TfmMain.Timer1Timer(Sender: TObject);
begin
Label3.Caption:=TimeToStr(
Label4.Caption:=DateToStr(
end;
// Авторизация
procedure TfmMain.BitBtn2Click(Sender: TObject);
begin
if ((Edit1.Text='Admin') or (Edit1.Text='admin')) and ((Edit2.Text='Arman') or (Edit2.Text='arman')) then
fmMain.BitBtn4.Enabled:=True else
MessageDlg('Неверно
введены логин или пароль!', mtError, [mbOK],0 );
if ((Edit1.Text='Admin') or (Edit1.Text='admin')) and ((Edit2.Text='Arman') or (Edit2.Text='arman')) then
fmMain.BitBtn5.Enabled:=True
;
if ((Edit1.Text='Admin') or (Edit1.Text='admin')) and ((Edit2.Text='Arman') or (Edit2.Text='arman')) then
fmMain.BitBtn6.Enabled:=True
;
if ((Edit1.Text='Admin') or (Edit1.Text='admin')) and ((Edit2.Text='Arman') or (Edit2.Text='arman')) then
fmMain.BitBtn7.Enabled:=True
;
if ((Edit1.Text='Admin') or (Edit1.Text='admin')) and ((Edit2.Text='Arman') or (Edit2.Text='arman')) then