Разработка автоматизированной системы управления учета и товара оптового магазина

Автор: Пользователь скрыл имя, 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 Охрана окружающей среды
Заключение
Список использованных источников
Приложение А Выходные формы документов
Приложение Б Исходный код модуля главного окна программы

Работа содержит 1 файл

Diplom.doc

— 1.23 Мб (Скачать)

implementation 

uses uDM, uIncome, DB, uDiapason, uRep; 

{$R *.dfm} 

//Фильтрация  данных по приходу товара по  диапазону дат:

procedure TfmIncomeAll.CheckBox1Click(Sender: TObject);

     Продолжение приложения Б 

var Filter: string;

begin

  Filter := '';

  if CheckBox1.Checked then

    Filter := '(DDate >= ' + QuotedStr(DateToStr(dtpDateFrom.Date)) + ')';

  if CheckBox2.Checked then begin

    if Filter <> '' then

      Filter := Filter + ' and ';

    Filter := Filter + '(DDate <= ' + QuotedStr(DateToStr(dtpDateTo.Date)) + ')';

    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(Sender: TObject);

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,nbLast];

    ShowModal;

    DBNavigator1.VisibleButtons := [nbFirst,nbPrior,nbNext,nbLast,nbInsert,nbDelete,nbEdit,nbPost,nbCancel,nbRefresh];

    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.bbtPurchBookClick(Sender: TObject);

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(Sender: TObject);

    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.acSpravGoodsGroupsExecute(Sender: TObject);

begin

  fmGoodsGroup.ShowModal;

end; 

procedure TfmMain.acSpravGoodsExecute(Sender: TObject);

begin

  if not fmGoods.Showing then

    fmGoods.ShowModal;

end; 

//Регистрация  прихода товара:

procedure TfmMain.acOperIncomeExecute(Sender: TObject);

begin

  //Начало транзакции:

  DM.Database1.StartTransaction;

  try

    DM.tbIncome.Insert;

    DM.tbIncome.FieldByName('DDate').AsDateTime := Date;

    DM.tbIncome.Post;

    fmIncome.dtpDate.Date := Date;

    fmIncome.ShowModal;

  except

    DM.Database1.Rollback;

  end;

end; 

procedure TfmMain.acGoodsIncomeExecute(Sender: TObject);

begin

     Продолжение приложения Б 

  fmIncomeAll.ShowModal;

end; 

procedure TfmMain.acGoodsStoreExecute(Sender: TObject);

begin

  if not fmStore.Showing then begin

    DM.qrStore.Close;

    DM.qrStore.Open;

    fmStore.ShowModal;

    end;

end; 

//Регистрация  прихода товара:

procedure TfmMain.acOperRealizExecute(Sender: TObject);

begin

  //Начало транзакции:

  DM.Database1.StartTransaction;

  try

    DM.qrStore.Close;

    DM.qrStore.Open;

    DM.tbRealiz.Insert;

    DM.tbRealiz.FieldByName('DDate').AsDateTime := Date;

    DM.tbRealiz.Post;

    fmRealiz.dtpDate.Date := Date;

    fmRealiz.ShowModal;

  except

    DM.Database1.Rollback;

  end;

end; 

procedure TfmMain.acGoodsRealizExecute(Sender: TObject);

begin

  fmRealizAll.ShowModal;

end; 

//Формирование прайс-листа:

procedure TfmMain.acDocPriceExecute(Sender: TObject);

begin

  Rep_Price_Store('Прайс-лист', DM.tbGoods);

end; 

//Формирование  отчета по товару на складе (в наличии):

procedure TfmMain.acDocGoodsExecute(Sender: TObject);

     Продолжение приложения Б 

begin

  Rep_Price_Store('Товар на складе', DM.qrStore);

end; 

//Формирование книги продаж:

procedure TfmMain.acDocSellBookExecute(Sender: TObject);

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(Sender: TObject);

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(Sender: TObject);

begin

  fmContrag.ShowModal;

end;

procedure TfmMain.acSpravRequisitExecute(Sender: TObject);

     Продолжение приложения Б 

begin

  fmRequisit.ShowModal;

end; 

procedure TfmMain.acSpravContractExecute(Sender: TObject);

begin

  fmContract.ShowModal;

end; 

// Работа часов и даты

procedure TfmMain.Timer1Timer(Sender: TObject);

begin

Label3.Caption:=TimeToStr(Time);

Label4.Caption:=DateToStr(Date);

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

Информация о работе Разработка автоматизированной системы управления учета и товара оптового магазина