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

Автор: Пользователь скрыл имя, 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 Мб (Скачать)

// проверка, нет ли уже в списке расхода этого товара:

procedure TDM.tbRealizCompGoodsIDValidate(Sender: TField);

begin

  tbRealizComp2.Open;

  if tbRealizComp2.Locate('GoodsID', Sender.Value, []) then begin

    Application.MessageBox('Данный товар уже есть в списке товаров в расход!',

      'Ошибка', MB_OK + MB_ICONERROR);

    Abort;

    end;

  tbRealizComp2.Close;

end; 

procedure TDM.tbRealizCompPostError(DataSet: TDataSet; E: EDatabaseError;

  var Action: TDataAction);

begin

  Application.MessageBox('Возможно не заполнено поле "Количество"',

      'Ошибка', MB_OK + MB_ICONERROR);

end; 

//Подсчет итоговой  суммы по расходу:

procedure TDM.tbRealizCalcFields(DataSet: TDataSet);

begin

  qrRealizSum.Close; 

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

  qrRealizSum.ParamByName('pRealizID').AsInteger := DataSet.FieldByName('ID').AsInteger;

  qrRealizSum.Open;

  DataSet.FieldByName('Sum').AsCurrency := qrRealizSum.FieldByName('Itogo').AsCurrency;

end; 

//Настройка пути  к БД, создание псевдонима БД  и открытие наборов данных:

procedure TDM.DataModuleCreate(Sender: TObject);

begin

  if not Session.IsAlias('alComp') then begin

    Session.ConfigMode := cmAll;

    Session.AddStandardAlias('alComp', ExtractFilePath(ParamStr(0))+'Base', 'PARADOX');

    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(DataSet: TDataSet);

begin

//  DataSet.FieldByName('Quantity').Value := 1;

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

var Filter: string;

begin

  Filter := '';

  if (CheckBox1.Checked) and (dblcbGroupName.KeyValue<>Null) then

    Filter := '(GroupID = ' + IntToStr(dblcbGroupName.KeyValue) + ')';

  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('pIncomeID').AsInteger := DM.tbIncome.FieldByName('ID').AsInteger;

  DM.qrIncomeSum.Open;

  fmIncome.edItogo.Text := Format('%m', [DM.qrIncomeSum.FieldByName('Itogo').AsCurrency]);

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

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; 

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