Автор: Пользователь скрыл имя, 09 Марта 2013 в 12:58, дипломная работа
Целью данного дипломного проекта является разработка автоматизации учета материалов на основании анализа существующих на сегодняшний день систем ведения учета материалов с применением СУБД Access. Для достижения поставленной цели необходимо решение следующих задач:
- рассмотреть теоретические основы по учету материалов;
- проанализировать особенности учета материалов в ОАО «Надежда»;
- исследовать рынок АИС по данной теме и выбрать инструмент для автоматизации учета материалов;
- автоматизировать учет материалов.
ВВЕДЕНИЕ 2
ГЛАВА 1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ ПО УЧЕТУ МАТЕРИАЛОВ 4
1.1 Понятие материально-производственных запасов и организация их учета 4
1.2 Организация учета материалов, их себестоимость и оценка в текущем учете 7
1.3 Документация по учету движения материалов 10
1.4 Учет материалов на складах 15
ГЛАВА 2. КОМПЛЕКСНОЕ ОПИСАНИЕ ПРЕДПРИЯТИЯ КАК ОБЪЕКТА АВТОМАТИЗАЦИИ 26
2.1 Постановка проблемы, цели, принципы разработки автоматизированных информационных систем 26
2.2 Модель автоматизированной информационной системы 33
2.3 Изучение рынка автоматизированной информационной системы 35
2.4 Обоснование выбора автоматизированной информационной системы комплексной автоматизации 39
ГЛАВА 3. РЕАЛИЗАЦИЯ ИНФОРМАЦИОННЫХ СИСТЕМ «УЧЕТ МАТЕРИАЛОВ» 41
3.1 Техническое задание на создание автоматизированной системы учёта материалов на складе 41
3.2 Создание баз данных 43
3.3 Руководство пользователя 46
3.4 Показатели экономической эффективности 48
ЗАКЛЮЧЕНИЕ 51
СПИСОК ЛИТЕРАТУРЫ 53
ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ОСНОВНЫХ МОДУЛЕЙ. 56
Grids, DBGrids, StdCtrls, StdActns;
type
TfmMain = class(TForm)
ActionList1: TActionList;
MainMenu1: TMainMenu;
ImageList1: TImageList;
Splitter1: TSplitter;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
dbnPrihod: TDBNavigator;
dbnSpisanie: TDBNavigator;
dbgPrihod: TDBGrid;
dbgSpisanie: TDBGrid;
Panel5: TPanel;
Bevel1: TBevel;
Label1: TLabel;
Panel6: TPanel;
Bevel2: TBevel;
Label2: TLabel;
ActionExit: TFileExit;
N1: TMenuItem;
Exit1: TMenuItem;
ActionSclad: TAction;
ActionPodrazd: TAction;
ActionNomGrup: TAction;
ActionMat: TAction;
ActionStatiya: TAction;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
ActionMatVed: TAction;
N9: TMenuItem;
procedure dbgPrihodDblClick(Sender: TObject);
procedure dbnPrihodClick(Sender: TObject; Button: TNavigateBtn);
procedure dbgSpisanieDblClick(Sender: TObject);
procedure dbnSpisanieClick(Sender: TObject; Button: TNavigateBtn);
procedure ActionMatExecute(Sender: TObject);
procedure ActionScladExecute(Sender: TObject);
procedure ActionPodrazdExecute(Sender: TObject);
procedure ActionNomGrupExecute(Sender: TObject);
procedure ActionStatiyaExecute(Sender: TObject);
procedure ActionMatVedExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMain: TfmMain;
implementation
uses
udmMain, ufmPrihod, ufmSpisanie, ufmNSI, ufmMatVed;
{$R *.dfm}
procedure TfmMain.ActionMatExecute(
begin
ShowNSIForm('Материалы', 'Материалы');
end;
procedure TfmMain.ActionMatVedExecute(
begin
fmMatVed := TfmMatVed.Create(Application);
fmMatVed.ShowModal;
fmMatVed.Free;
end;
procedure TfmMain.ActionNomGrupExecute(
begin
ShowNSIForm('
end;
procedure TfmMain.ActionPodrazdExecute(
begin
ShowNSIForm('Подразделения', 'Подразделения');
end;
procedure TfmMain.ActionScladExecute(
begin
ShowNSIForm('Склады', 'Склады');
end;
procedure TfmMain.ActionStatiyaExecute(
begin
ShowNSIForm('СтатьиЗатрат', 'Статьи затрат');
end;
procedure TfmMain.dbgPrihodDblClick(
begin
fmPrihod := TfmPrihod.Create(Application);
fmPrihod.ShowModal;
fmPrihod.Free;
end;
procedure TfmMain.dbgSpisanieDblClick(
begin
fmSpisanie := TfmSpisanie.Create(
fmSpisanie.ShowModal;
fmSpisanie.Free;
end;
procedure TfmMain.dbnSpisanieClick(
begin
if Button in [nbEdit, nbInsert] then
dbgSpisanieDblClick(Sender);
end;
procedure TfmMain.dbnPrihodClick(Sender: TObject; Button: TNavigateBtn);
begin
if Button in [nbEdit, nbInsert] then
dbgPrihodDblClick(Sender);
end;
end.
unit ufmMatVed;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RpBase, RpSystem, RpDefine, RpRave, StdCtrls, Buttons, ComCtrls,
RpCon, RpConDS;
type
TfmMatVed = class(TForm)
RvProject: TRvProject;
RvSystem: TRvSystem;
bbtnStart: TBitBtn;
dtpBegin: TDateTimePicker;
dtpEnd: TDateTimePicker;
Label1: TLabel;
Label2: TLabel;
RvDataSetConnection: TRvDataSetConnection;
procedure bbtnStartClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmMatVed: TfmMatVed;
implementation
uses
udmMain;
{$R *.dfm}
procedure TfmMatVed.bbtnStartClick(
var
DBegin, DEnd : TDateTime;
Year, Month, Day: Word;
begin
with dmMain do
begin
DecodeDate(dtpBegin.DateTime, Year, Month, Day);
DBegin := EncodeDate(Year, Month, Day);
DecodeDate(dtpEnd.DateTime, Year, Month, Day);
DEnd := EncodeDate(Year, Month, Day) + EncodeTime(23, 59, 59, 999);
adospMatVed.Parameters.
adospMatVed.Parameters.
adospMatVed.Open;
RvProject.Open;
RvProject.SelectReport('
RvProject.Execute;
RvProject.Close;
adospMatVed.Close;
end;
end;
procedure TfmMatVed.FormCreate(Sender: TObject);
begin
RvProject.ProjectFile := ChangeFileExt(ParamStr(0), '.rav');
dtpBegin.DateTime := Now;
dtpEnd.DateTime := dtpBegin.DateTime;
end;
end.
unit ufmNSI;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Buttons, ActnList;
type
TfmNSI = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
ActionList1: TActionList;
ActionOK: TAction;
ActionSave: TAction;
ActionClose: TAction;
procedure ActionOKExecute(Sender: TObject);
procedure ActionSaveExecute(Sender: TObject);
procedure ActionCloseExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
procedure ShowNSIForm(TableName, FormName: string);
var
fmNSI: TfmNSI;
implementation
uses
DB, udmMain;
{$R *.dfm}
procedure ShowNSIForm(TableName, FormName: string);
begin
with dmMain do
begin
adotNSI.TableName := TableName;
adotNSI.Open;
fmNSI := TfmNSI.Create(Application);
fmNSI.Caption := FormName;
fmNSI.ShowModal;
fmNSI.Free;
adotNSI.Close;
end;
end;
procedure TfmNSI.ActionCloseExecute(
begin
with dmMain do
if adotNSI.State in [dsInsert, dsEdit] then
if MessageDlg('Справочник изменен. Записать?',
mtConfirmation, mbYesNo, -1) = mrYes then
adotNSI.Post
else
adotNSI.Cancel;
Close;
end;
procedure TfmNSI.ActionOKExecute(Sender: TObject);
begin
ActionSaveExecute(Sender);
Close;
end;
procedure TfmNSI.ActionSaveExecute(
begin
with dmMain do
begin
if adotNSI.State in [dsInsert, dsEdit] then
adotNSI.Post;
end;
end;
end.
unit ufmPrihod;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, Buttons, Grids, DBGrids, ExtCtrls, ActnList,
ComCtrls;
type
TfmPrihod = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBLookupComboBox1: TDBLookupComboBox;
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
BitBtn3: TBitBtn;
ActionList1: TActionList;
ActionOK: TAction;
ActionSave: TAction;
ActionClose: TAction;
dtpDate: TDateTimePicker;
BitBtn2: TBitBtn;
procedure ActionSaveExecute(Sender: TObject);
procedure ActionCloseExecute(Sender: TObject);
procedure ActionOKExecute(Sender: TObject);
procedure dtpDateChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmPrihod: TfmPrihod;
implementation
uses
DB, udmMain;
{$R *.dfm}
procedure TfmPrihod.ActionCloseExecute(
begin
Close;
end;
procedure TfmPrihod.ActionOKExecute(
begin
ActionSaveExecute(Sender);
Close;
end;
procedure TfmPrihod.ActionSaveExecute(
begin
with dmMain do
begin
if adotDocPrihod.State in [dsInsert, dsEdit] then
adotDocPrihod.Post;
if adotTabPrihod.State in [dsInsert, dsEdit] then
adotTabPrihod.Post;
end;
end;
procedure TfmPrihod.dtpDateChange(
begin
with dmMain do
begin
if not (adotDocPrihod.State in [dsInsert, dsEdit]) then
adotDocPrihod.Edit;
adotDocPrihod.FieldByName('Дат
end;
end;
procedure TfmPrihod.FormClose(Sender: TObject; var Action: TCloseAction);
var
SaveDoc, SaveTab: Boolean;
begin
with dmMain do
begin
SaveDoc := adotDocPrihod.State in [dsInsert, dsEdit];
SaveTab := adotTabPrihod.State in [dsInsert, dsEdit];
if SaveDoc or SaveTab then
if MessageDlg('Документ изменен. Записать?',
mtConfirmation, mbYesNo, -1) = mrYes then
begin
if SaveDoc then
adotDocPrihod.Post;
if SaveTab then
adotTabPrihod.Post;
end else begin
if SaveDoc then
adotDocPrihod.Cancel;
if SaveTab then
adotTabPrihod.Cancel;
end;
end;
end;
procedure TfmPrihod.FormCreate(Sender: TObject);
begin
with dmMain do
case adotDocPrihod.State of
dsInsert:
begin
dtpDate.DateTime := Now;
adotDocPrihod.FieldByName('Дат
adotDocPrihod.Post;
end;
dsEdit:
dtpDate.DateTime := adotDocPrihod.FieldByName('Дат
else
if adotDocPrihod.FieldByName('
begin
dtpDate.DateTime := Now;
adotDocPrihod.Insert;
adotDocPrihod.FieldByName('Дат
adotDocPrihod.Post;
end else
dtpDate.DateTime
:= adotDocPrihod.FieldByName('
end;
end;
end.
unit ufmSpisanie;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Mask, DBCtrls, ComCtrls, Grids, DBGrids, ActnList, Buttons,
ExtCtrls;
type
TfmSpisanie = class(TForm)
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
dtpDate: TDateTimePicker;
DBLookupComboBox1: TDBLookupComboBox;
Label3: TLabel;
DBLookupComboBox2: TDBLookupComboBox;
Label4: TLabel;
DBLookupComboBox3: TDBLookupComboBox;
DBLookupComboBox4: TDBLookupComboBox;
Label5: TLabel;
Label6: TLabel;
DBGrid1: TDBGrid;
ActionList1: TActionList;
ActionOK: TAction;
ActionSave: TAction;
ActionClose: TAction;
DBNavigator1: TDBNavigator;
BitBtn1: TBitBtn;
BitBtn3: TBitBtn;
BitBtn2: TBitBtn;
procedure ActionOKExecute(Sender: TObject);
procedure ActionSaveExecute(Sender: TObject);
procedure ActionCloseExecute(Sender: TObject);
procedure dtpDateChange(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmSpisanie: TfmSpisanie;
implementation
uses
DB, udmMain;
{$R *.dfm}
procedure TfmSpisanie.ActionCloseExecute
begin
Close;
end;
procedure TfmSpisanie.ActionOKExecute(
begin
ActionSaveExecute(Sender);
Close;
end;
procedure TfmSpisanie.ActionSaveExecute(
begin
with dmMain do
begin
if adotDocSpisanie.State in [dsInsert, dsEdit] then
adotDocSpisanie.Post;
if adotTabSpisanie.State in [dsInsert, dsEdit] then
adotTabSpisanie.Post;
end;
end;
procedure TfmSpisanie.dtpDateChange(
begin
with dmMain do
begin
if not (adotDocSpisanie.State in [dsInsert, dsEdit]) then
adotDocSpisanie.Edit;
adotDocSpisanie.FieldByName('Д
end;
end;
procedure TfmSpisanie.FormClose(Sender: TObject; var Action: TCloseAction);
var
SaveDoc, SaveTab: Boolean;
begin
with dmMain do
begin
SaveDoc := adotDocSpisanie.State in [dsInsert, dsEdit];
SaveTab := adotTabSpisanie.State in [dsInsert, dsEdit];
if SaveDoc or SaveTab then
if MessageDlg('Документ изменен. Записать?',
mtConfirmation, mbYesNo, -1) = mrYes then
begin
if SaveDoc then
adotDocSpisanie.Post;
if SaveTab then
adotTabSpisanie.Post;
end else begin
if SaveDoc then
adotDocSpisanie.Cancel;
if SaveTab then
adotTabSpisanie.Cancel;
end;
end;
end;
procedure TfmSpisanie.FormCreate(Sender: TObject);
begin
with dmMain do
case adotDocSpisanie.State of
dsInsert:
begin
dtpDate.DateTime := Now;
adotDocSpisanie.FieldByName('Д
adotDocSpisanie.Post;
end;
dsEdit:
dtpDate.DateTime := adotDocSpisanie.FieldByName('Д
else
if adotDocSpisanie.FieldByName('
begin
dtpDate.DateTime := Now;
adotDocSpisanie.Insert;
adotDocSpisanie.FieldByName('Д
adotDocSpisanie.Post;
end else
dtpDate.DateTime
:= adotDocSpisanie.FieldByName('
end;
end;
end.
Информация о работе Автоматизация учёта материалов на предриятии