Автор: Пользователь скрыл имя, 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 Охрана окружающей среды
Заключение
Список использованных источников
Приложение А Выходные формы документов
Приложение Б Исходный код модуля главного окна программы
fmMain.BitBtn8.Enabled:=True 
; 
if ((Edit1.Text='Admin') or (Edit1.Text='admin')) and ((Edit2.Text='Arman') or (Edit2.Text='arman')) then
fmMain.ActionMainMenuBar1.
end;
     Продолжение 
приложения Б 
end.
unit uRealiz; 
interface 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, StdCtrls, Mask, DBCtrls, ComCtrls, Buttons, Grids,
  DBGrids, DB, ComObj; 
type
TfmRealiz = class(TForm)
Panel1: TPanel;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
dtpDate: TDateTimePicker;
DBGrid1: TDBGrid;
Panel2: TPanel;
bbtClose: TBitBtn;
bbtOK: TBitBtn;
Label3: TLabel;
edItogo: TEdit;
Label4: TLabel;
bbtGoods: TBitBtn;
bbtBill: TBitBtn;
bbtNakl: TBitBtn;
bbtCheck: TBitBtn;
DBNavigator1: TDBNavigator;
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);
procedure bbtBillClick(Sender: TObject);
procedure bbtNaklClick(Sender: TObject);
procedure bbtCheckClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
     Продолжение 
приложения Б 
  end; 
var
  fmRealiz: TfmRealiz; 
implementation 
uses uDM, uMain, uStore, uRep; 
{$R *.dfm} 
//Функция осуществляет подсчет итоговой суммы по расходу с заданным шифром:
procedure TfmRealiz.CalcSum;
begin
DM.qrRealizSum.Close;
  DM.qrRealizSum.ParamByName('
DM.qrRealizSum.Open;
  fmRealiz.edItogo.Text 
:= Format('%m', [DM.qrRealizSum.FieldByName('
end; 
procedure TfmRealiz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if DM.tbRealizComp.State in [dsEdit, dsInsert] then
DM.tbRealizComp.Cancel;
if DM.tbRealiz.State = dsEdit then
DM.tbRealiz.Cancel;
//Если пользователь закрыл форму или нажал кнопку Отмена, то все введенные
  //данные 
удаляются завершением 
if DM.Database1.InTransaction then
    DM.Database1.Rollback; 
DM.tbRealiz.Refresh;
DM.tbContrag.Filtered := False;
end; 
//Сохранение введенных данных о расходе:
procedure TfmRealiz.bbtOKClick(Sender: 
TObject); 
//Для каждой записи таблицы расхода товара изменяем количество
     Продолжение 
приложения Б 
//соответствующего товара на складе (табло приход). Продажа товара ведется
//по принципу FIFO (первый в приходе - первый в расходе):
procedure RealizIncome;
var Quantity: Integer;
begin
with DM do begin
tbRealizComp.First;
while not tbRealizComp.Eof do begin
      
Quantity := tbRealizCompQuantity.
//Отбор всех записей о приходе текущего товара, при условии, что этот
// товар еще не продан:
qrStoreFree.Close;
      
qrStoreFree.ParamByName('
qrStoreFree.Open;
      
//По окончании цикла все кол-
// таблице прихода (склад):
repeat
qrStoreFree.Edit;
//Если по текущей записи о приходе товара кол-во >= проданного:
        
if qrStoreFree.FieldByName('
           
qrStoreFree.FieldByName('
          
qrStoreFree.FieldByName('
            
qrStoreFree.FieldByName('
Quantity := 0;
end
//Если по текущей записи о приходе товара кол-во < проданного:
else begin
Quantity := Quantity -
                      
(qrStoreFree.FieldByName('
                       
qrStoreFree.FieldByName('
          
qrStoreFree.FieldByName('
            
qrStoreFree.FieldByName('
end;
qrStoreFree.Post;
      
until Quantity = 0; 
tbRealizComp.Next;
end;
end; //with
end; 
begin
     Продолжение 
приложения Б 
with DM do begin
if tbRealizComp.State in [dsEdit, dsInsert] then
      
tbRealizComp.Post; 
if tbRealizComp.RecordCount = 0 then
Application.MessageBox('Не указано ни одного товара в расход!',
'Ошибка', MB_OK + MB_ICONERROR)
else begin
//Если пользователь указал не текущую дату в качестве даты расхода, изменяем ее:
if dtpDate.Date <> tbRealizDDate.AsDateTime then begin
tbRealiz.Edit;
tbRealizDDate.AsDateTime := dtpDate.Date;
tbRealiz.Post;
        
end; 
      
RealizIncome; 
      
//Завершение транзакции с 
if Database1.InTransaction then
Database1.Commit;
Close;
end; //else if tbRealizComp.RecordCount = 0
end; //with
end; 
//При щелчке по кнопке "..." в ячейке "Артикул" в DBGrid1 на экран
// выводится справочник товаров для выбора нужного товара из списка:
procedure TfmRealiz.
begin
fmStore.bbtGo.Caption := 'К форме реализации';
fmStore.bbtGo.Visible := True;
if fmStore.ShowModal = mrOK then begin
if not (DM.tbRealizComp.State in [dsEdit, dsInsert]) then
DM.tbRealizComp.Edit;
DM.tbRealizCompGoodsID.Value := DM.qrStoreGoodsID.Value;
end;
fmStore.bbtGo.Visible := False;
end; 
procedure TfmRealiz.FormShow(Sender: TObject);
begin
     Продолжение 
приложения Б 
CalcSum;
//В списке контрагентов доступны только клиенты:
DM.tbContrag.Filter := 'ContrType = False';
DM.tbContrag.Filtered := True;
end; 
//Формирование счета:
procedure TfmRealiz.bbtBillClick(Sender: TObject);
begin
Rep_Bill('Счет');
end; 
//Формирование расходной накладной:
procedure TfmRealiz.bbtNaklClick(Sender: TObject);
begin
Rep_Bill('Накладная');
end; 
//Формирование чека:
procedure TfmRealiz.bbtCheckClick(
begin
Rep_Check;
end; 
end. 
 
unit uRealizAll; 
interface 
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, 
DBCtrls, ExtCtrls, Grids, DBGrids, ComCtrls; 
type
TfmRealizAll = 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;
bbtRealiz: TBitBtn;
bbtSellBook: TBitBtn;
procedure CheckBox1Click(Sender: TObject);
procedure bbtRealizClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure bbtSellBookClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
  end; 
var
  fmRealizAll: TfmRealizAll; 
implementation 
uses uDM, uRealiz, DB, uDiapason, 
uRep; 
{$R *.dfm} 
//Фильтрация данных по расходу товара по диапазону дат:
procedure TfmRealizAll.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.tbRealiz.Filter := Filter;
DM.tbRealiz.Filtered := True;
     Продолжение 
приложения Б 
end
else
DM.tbRealiz.Filtered := False;
end; 
//Просмотр информации о выбранном расходе:
procedure TfmRealizAll.bbtRealizClick(
begin
//Форма расхода отображается в режиме только для чтения:
with fmRealiz do begin
bbtOK.Visible := False;
dtpDate.Date := DM.tbRealizDDate.AsDateTime;
dtpDate.Enabled := False;
DBGrid1.ReadOnly := True;
DBGrid2.ReadOnly := True;
dblcbContr.ReadOnly := True;
DBGrid1.Columns[0].ButtonStyle := cbsNone;
DBGrid1.Columns[1].ButtonStyle := cbsNone;
DBGrid2.Columns[0].ButtonStyle := cbsNone;
DBGrid2.Columns[1].ButtonStyle := cbsNone;
    DBNavigator1.VisibleButtons 
:= [nbFirst,nbPrior,nbNext,
ShowModal;
    DBNavigator1.VisibleButtons 
:= [nbFirst,nbPrior,nbNext,