Автоматизация складского учета Регионального отделения Фонда социального страхования Российской Федерации по Республике Хакасия

Автор работы: Пользователь скрыл имя, 28 Февраля 2013 в 09:23, дипломная работа

Описание работы

Целью дипломного проекта является разработка программного продукта для автоматизации складского учета Регионального отделения ФСС РФ по РХ. Одним из необходимых требований, предъявленных руководством организации, является минимизация затрат на ввод программы в эксплуатацию и сопровождение. Новая программа позволит оптимизировать складской учет в Региональном отделении ФСС РФ по РХ.
В ходе проведенной работы были сформулированы и решены следующие задачи:
Изучение предметной области;
Анализ входных и выходных данных;
Разработка подсистемы ввода документов, обработки и вывода отчетной информации;
Анализ рынка программных продуктов, для решения задач складского учета;

Содержание работы

ВВЕДЕНИЕ 6
1. ХАРАКТЕРИСТИКА СИСТЕМЫ СОЦИАЛЬНОГО СТРАХОВАНИЯ 9
1.1. История развития системы социального страхования в России 9
1.2. Общие положения 10
1.3. Структура Фонда социального страхования РФ 11
1.4. Характеристика организации 12
1.5. Основные задачи Регионального отделения ФСС РФ по РХ 13
1.8. Аппаратное обеспечение Регионального отделения 18
1.9. Единая интегрированная информационная система (ЕИИС) «Соцстрах» 19
1.10. Структура ЕИИС «Соцстрах» 23
Выводы 25
2. ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ ПРОГРАММЫ АВТОМАТИЗАЦИИ СКЛАДСКОГО УЧЕТА 26
2.1. Задачи и общие принципы учета материалов 26
2.2. Постановка задачи 29
2.3. Обзор программного обеспечения автоматизации складского учета 29
2.4. Программа Sklad v. 1.00 34
2.5. Описание программы 34
Выводы 41
3. ТЕХНИКА БЕЗОПАСНОСТИ И САНИТАРНЫЕ НОРМЫ 42
3.1. Описание рабочих мест 42
3.2. Расчет освещенности 42
3.3. Расчет вентиляции 46
3.4. Расчет для помещения 46
3.5. Оценка технических условий труда 48
Выводы 50
4. ЭКОНОМИЧЕСКОЕ ОБОСНОВАНИЕ ЭФФЕКТИВНОСТИ ПРОГРАММНОГО ПРОДУКТА 51
Выводы 55
ЗАКЛЮЧЕНИЕ 56
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 57
ГЛОССАРИЙ 59
СПИСОК АББРЕВИАТУР 61
ПРИЛОЖЕНИЯ 62
П.1. Комплексы задач, реализуемые подсистемами ЕИИС «Соцстрах» 62
П.2. Листинг программы 71
П. 3. Материалы внедрения дипломного проекта 101
П. 4 Демонстрационный материал 103

Файлы: 1 файл

диплом.doc

— 2.56 Мб (Скачать файл)

 

Продолжение таблицы

1

2

3

4

5

     

• отчеты Центрального аппарата Фонда, региональных отделений, филиалов, включая отчеты по капитализированным средствам, о начисленных и выплаченных суммах, об исполнении сметы расходов, сводные таблицы затрат;

• приказы (акты) о назначении, изменении, приостановке, прекращении  и возобновлении выплат, заявки о  потребных суммах на следующий период;

• почтовые переводы и поручения (ведомость получателей) для рассылки через Сбербанк.

 

15

Делопро-изводство

Ф,Р,М

1. Автоматизация процессов  ведения внешней (входящая и  исходящая корреспонденция) и  внутренней (служебные записки, резолюции  и т.п.) документации в Фонде, позволяющих производить регистрацию, учет движения, архивацию и контроль за исполнением документов во всех подразделениях Фонда.

2. Информационное обслуживание  руководства Фонда.

Находит-ся в разработ-ке

16

Обмен, удаленный доступ

Ф,Р,М

1. Обеспечение единого состава данных для обмена.

2. Обеспечение унифицированных  форматов передачи данных.

3. Реализация согласованного  регламента обмена данными и  удаленного доступа.

 

 

Продолжение таблицы

1

2

3

4

5

     

4. Реализация операций  экспорта и импорта данных для обмена в режиме off-line.

 

17

Генератор отчетов

Ф,Р,М

Автоматизированное получение  произвольных отчетных форм на основе информации из баз данных Фонда.

 

18

Админист-рирование баз данных

Ф,Р,М

Анализ показателей  функционирования локальных вычислительных сетей Фонда.

Актуализация (синхронизация) баз данных.

Обеспечение использования  в ЕИИС единых справочников и классификаторов.

Ведение архивных данных.

Восстановление работоспособности  средств ЕИИС в случаях сбоя оборудования.

 

19

Информа-ционно-справоч-ная система Фонда

Ф,Р,М

Организация WEB-сервера  Фонда для:

• обеспечения доступа  со стороны исполнительных органов  Фонда к публикуемой центральным  аппаратом информации;

• обеспечения обмена информацией по сети Интернет в форме  конференций между исполнительными органами Фонда;

• предоставления информационных услуг внешним организациям.

 

20

Инстал-лятор

Ф,Р,М

Автоматизированная установка  подсистем ЕИИС "Соцстрах" на технических  средствах исполнительного органа Фонда.

 

 

Продолжение таблицы

1

2

3

4

5

21

Конвертор БД

Ф,Р,М

Конвертация имеющихся  в исполнительных органах ФСС  РФ данных на магнитных носителях  в структуры данных ЕИИС "Соцстрах".

 

22

Правовое обеспе-чение Фонда

Ф,Р,М

Обеспечение исполнительных органов Фонда полными и унифицированными комплектами правовой документации (законодательные и нормативные акты РФ, нормативно-методические материалы Фонда, др. правовые документы).

Формирование и обработка  баз данных правовой документации.

Находит-ся в разработ-ке


 

 

 

П.2. Листинг программы

 

program Sklad;

 

uses

  Forms,

  untMain in 'untMain.pas' {frmMain},

  untLogin in 'untLogin.pas' {frmLogin},

  untUsers in 'untUsers.pas' {frmUsers},

  untAbout in 'untAbout.pas' {AboutBox},

  untOptions in 'untOptions.pas' {frmOptions},

  untSprNom in 'untSprNom.pas' {frmSprNom},

  untSprPeriod in 'untSprPeriod.pas' {frmSprPeriod},

  untTypes in 'untTypes.pas' {frmTypes},

  untOtvet in 'untOtvet.pas' {frmOtvet},

  untSprMat in 'untSprMat.pas' {frmSprMat},

  untMoveMat in 'untMoveMat.pas' {frmMoveMat},

  untReport in 'untReport.pas' {frmReport};

 

{$R *.RES}

 

begin

  AboutBox:=TAboutBox.Create(Application);

  Application.Initialize;

  Application.Title := 'Складской  учет';

  Application.CreateForm(TfrmMain, frmMain);

  Application.CreateForm(TfrmLogin, frmLogin);

  Application.CreateForm(TfrmUsers, frmUsers);

  Application.CreateForm(TfrmOptions, frmOptions);

  AboutBox.ShowModal;

  Application.Run;

end.

 

unit untMain;

 

interface

 

uses

  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

  Menus, ExtCtrls, ToolWin, ComCtrls, StdCtrls, Buttons, Db, ADODB, ImgList,

  ActnList, DBActns, StdActns;

 

type

  TfrmMain = class(TForm)

    MainMenu1: TMainMenu;

    mnService: TMenuItem;

    mnHelp: TMenuItem;

    mnHelpAbout: TMenuItem;

    mnServiceOptions: TMenuItem;

    mnServiceArchiv: TMenuItem;

    mnServiceRepair: TMenuItem;

    mnBase: TMenuItem;

    mnReport: TMenuItem;

    ImageList1: TImageList;

    ADOConnectionMain: TADOConnection;

    mnFile: TMenuItem;

    mnFileConnect: TMenuItem;

    mnFileDisconnect: TMenuItem;

    mnFileQuit: TMenuItem;

    mnBaseUsers: TMenuItem;

    mnBaseSpr: TMenuItem;

    mnBaseSprNom: TMenuItem;

    mnBaseSprMat: TMenuItem;

    mnBaseSprPeriod: TMenuItem;

    mnBaseSprTip: TMenuItem;

    mnBaseSprOtvet: TMenuItem;

    mnBaseMove: TMenuItem;

    mnReportOborot: TMenuItem;

    mnWindow: TMenuItem;

    mnWindowCascade: TMenuItem;

    mnWindowTile: TMenuItem;

    ToolBar1: TToolBar;

    tbConnect: TToolButton;

    tbSep1: TToolButton;

    tbUsers: TToolButton;

    tbSep2: TToolButton;

    tbBaseSprNom: TToolButton;

    tbBaseSprPeriod: TToolButton;

    tbBaseSprTip: TToolButton;

    tbBaseSprOtvet: TToolButton;

    tbBaseSprMat: TToolButton;

    ToolButton6: TToolButton;

    tbBaseMove: TToolButton;

    ToolButton1: TToolButton;

    tbReportOborot: TToolButton;

    ToolButton3: TToolButton;

    tbExit: TToolButton;

    ActionListMove: TActionList;

    DataSetInsert1: TDataSetInsert;

    DataSetDelete1: TDataSetDelete;

    DataSetEdit1: TDataSetEdit;

    DataSetPost1: TDataSetPost;

    mnContenst: TMenuItem;

    SaveDialog1: TSaveDialog;

    OpenDialog1: TOpenDialog;

    procedure FormClose(Sender: TObject; var Action: TCloseAction);

   procedure FormCreate(Sender: TObject);

    procedure ADOConnectionMainAfterConnect(Sender: TObject);

    procedure mnFileQuitClick(Sender: TObject);

    procedure mnFileConnectClick(Sender: TObject);

    procedure mnFileDisconnectClick(Sender: TObject);

    procedure ADOConnectionMainAfterDisconnect(Sender: TObject);

    procedure mnHelpAboutClick(Sender: TObject);

    procedure mnServiceOptionsClick(Sender: TObject);

    procedure mnBaseUsersClick(Sender: TObject);

    procedure mnBaseSprNomClick(Sender: TObject);

    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);

    procedure mnWindowCascadeClick(Sender: TObject);

    procedure mnWindowTileClick(Sender: TObject);

    procedure mnBaseSprPeriodClick(Sender: TObject);

    procedure mnBaseSprTipClick(Sender: TObject);

    procedure mnBaseSprOtvetClick(Sender: TObject);

    procedure mnBaseSprMatClick(Sender: TObject);

    procedure mnBaseMoveClick(Sender: TObject);

    procedure mnReportOborotClick(Sender: TObject);

    procedure mnContenstClick(Sender: TObject);

    procedure mnServiceArchivClick(Sender: TObject);

    procedure mnServiceRepairClick(Sender: TObject);

  private

    { Private declarations }

  public

    Is_Admin:Boolean;

    DbPath:String;

    ToolsPath:String;

    ArchivPath:String;

    MatSelect:Longint;

    Price:Currency;

    Edinica:String;

    { Public declarations }

  end;

 

function ExecuteCommand(CommandString:String):Boolean;

 

var

  frmMain: TfrmMain;

 

implementation

 

uses untBrowse,IniFiles, untLogin, untUsers, untAbout, untOptions,

  untSprNom, untSprPeriod, untTypes, untOtvet, untSprMat, untMoveMat,

  untReport;

 

{$R *.DFM}

 

procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);

var myIni:TIniFile;

begin

mnFileDisconnect.Click;

myIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+copy(ExtractFileName(Application.ExeName),1,length(ExtractFileName(Application.ExeName))-4)+'.INI');

myIni.WriteInteger(Self.Name,'Left',Self.Left);

myIni.WriteInteger(Self.Name,'Top',Self.Top);

myIni.WriteInteger(Self.Name,'Width',Self.Width);

myIni.WriteInteger(Self.Name,'Height',Self.Height);

case Self.WindowState of

  wsNormal:myIni.WriteInteger(Self.Name,'WindowState',1);

  wsMinimized:myIni.WriteInteger(Self.Name,'WindowState',2);

  wsMaximized:myIni.WriteInteger(Self.Name,'WindowState',3);

end;

myIni.Free;

end;

 

procedure TfrmMain.FormCreate(Sender: TObject);

var myIni:TIniFile;

begin

myIni:=TIniFile.Create(ExtractFilePath(Application.ExeName)+copy(ExtractFileName(Application.ExeName),1,length(ExtractFileName(Application.ExeName))-4)+'.INI');

DbPath:=myIni.ReadString('Options','DbPath','');

ToolsPath:=myIni.ReadString('Options','ToolsPath','');

ArchivPath:=myIni.ReadString('Options','ArchivPath','');

case myIni.ReadInteger(Self.Name,'WindowState',1) of

  1:

   begin

   Self.WindowState:=wsNormal;

   Self.Left:=myIni.ReadInteger(Self.Name,'Left',0);

   Self.Top:=myIni.ReadInteger(Self.Name,'Top',0);

   Self.Width:=myIni.ReadInteger(Self.Name,'Width',100);

   Self.Height:=myIni.ReadInteger(Self.Name,'Height',100);

  end;

  2:Self.WindowState:=wsMinimized;

  3:Self.WindowState:=wsMaximized;

end;

myIni.Free;

Application.HelpFile :=ExtractFilePath(Application.ExeName)+'Help\SKLAD.HLP';

end;

 

procedure TfrmMain.ADOConnectionMainAfterConnect(Sender: TObject);

begin

mnFileConnect.Enabled:=False;

mnFileDisconnect.Enabled:=True;

mnBase.Enabled:=True;

 

if Is_Admin then

  begin

    mnBaseUsers.Enabled:=True;

    tbUsers.Enabled:=True;

  end

else

  begin

    mnBaseUsers.Enabled:=False;

    tbUsers.Enabled:=False;

  end;

mnReport.Enabled:=True;

//Справочник номенклатуры  доступен

mnBaseSprNom.Enabled:=True;

tbBaseSprNom.Enabled:=True;

//Справочник периодов  доступен

mnBaseSprPeriod.Enabled:=True;

tbBaseSprPeriod.Enabled:=True;

//Справочник типов  документов доступен

mnBaseSprTip.Enabled:=True;

tbBaseSprTip.Enabled:=True;

//Справочник ответственных  лиц доступен

mnBaseSprOtvet.Enabled:=True;

tbBaseSprOtvet.Enabled:=True;

//Справочник материалов  доступен

mnBaseSprMat.Enabled:=True;

tbBaseSprMat.Enabled:=True;

//Движение материалов  доступно

mnBaseMove.Enabled:=True;

tbBaseMove.Enabled:=True;

//Оборотка доступна

mnReportOborot.Enabled:=True;

tbReportOborot.Enabled:=True;

//Архивирование не  доступно

mnServiceArchiv.Enabled:=False;

mnServiceRepair.Enabled:=False;

end;

 

procedure TfrmMain.mnFileQuitClick(Sender: TObject);

begin

  frmMain.Close;

end;

 

procedure TfrmMain.mnFileConnectClick(Sender: TObject);

begin

frmLogin.ShowModal;

end;

 

procedure TfrmMain.mnFileDisconnectClick(Sender: TObject);

begin

ADOConnectionMain.Close;

end;

 

procedure TfrmMain.ADOConnectionMainAfterDisconnect(Sender: TObject);

begin

mnFileConnect.Enabled:=True;

mnFileDisconnect.Enabled:=False;

 

mnBaseUsers.Enabled:=False;

tbUsers.Enabled:=False;

 

mnReport.Enabled:=False;

 

mnBase.Enabled:=False;

//Справочник номенклатуры  недоступен

mnBaseSprNom.Enabled:=False;

tbBaseSprNom.Enabled:=False;

//Справочник периодов  недоступен

mnBaseSprPeriod.Enabled:=False;

tbBaseSprPeriod.Enabled:=False;

//Справочник типов  документов недоступен

mnBaseSprTip.Enabled:=False;

tbBaseSprTip.Enabled:=False;

 

//Справочник ответственных  лиц недоступен

mnBaseSprOtvet.Enabled:=False;

tbBaseSprOtvet.Enabled:=False;

//Справочник материалов  недоступен

mnBaseSprMat.Enabled:=False;

tbBaseSprMat.Enabled:=False;

//Движение материалов  недоступно

mnBaseMove.Enabled:=False;

tbBaseMove.Enabled:=False;

//Оборотка недоступна

mnReportOborot.Enabled:=False;

tbReportOborot.Enabled:=False;

//Архивирование доступно  НЕ БУДЕТ

//mnServiceArchiv.Enabled:=True;

//mnServiceRepair.Enabled:=True;

end;

 

procedure TfrmMain.mnHelpAboutClick(Sender: TObject);

begin

AboutBox.ShowModal;

end;

 

procedure TfrmMain.mnServiceOptionsClick(Sender: TObject);

begin

frmOptions.ShowModal;

end;

 

procedure TfrmMain.mnBaseUsersClick(Sender: TObject);

begin

frmUsers.ShowModal;

 

 

end;

 

procedure TfrmMain.mnBaseSprNomClick(Sender: TObject);

var fmChild:TfrmSprNom;

begin

fmChild:=TfrmSprNom.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

end;

 

procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);

begin

if MessageBox(Self.Handle,'Вы хотите  выйти из приложения','Внимание',MB_ICONQUESTION+MB_YESNO)=IDYES then

     CanClose:=True

else

   CanClose:=False;

end;

 

procedure TfrmMain.mnWindowCascadeClick(Sender: TObject);

begin

Self.Cascade;

end;

 

procedure TfrmMain.mnWindowTileClick(Sender: TObject);

begin

Self.Tile;

end;

 

procedure TfrmMain.mnBaseSprPeriodClick(Sender: TObject);

var fmChild:TfrmSprPeriod;

begin

fmChild:=TfrmSprPeriod.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

end;

 

procedure TfrmMain.mnBaseSprTipClick(Sender: TObject);

var fmChild:TfrmTypes;

begin

fmChild:=TfrmTypes.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

end;

 

procedure TfrmMain.mnBaseSprOtvetClick(Sender: TObject);

var fmChild:TfrmOtvet;

begin

fmChild:=TfrmOtvet.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

 

end;

 

procedure TfrmMain.mnBaseSprMatClick(Sender: TObject);

var fmChild:TfrmSprMat;

begin

fmChild:=TfrmSprMat.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

end;

 

procedure TfrmMain.mnBaseMoveClick(Sender: TObject);

var fmChild:TfrmMoveMat;

begin

fmChild:=TfrmMoveMat.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

end;

 

procedure TfrmMain.mnReportOborotClick(Sender: TObject);

var fmChild:TfrmReport;

begin

fmChild:=TfrmReport.Create(Application);

fmChild.Caption:=fmChild.Caption+' ('+IntToStr(frmMain.MDIChildCount)+')';

end;

 

procedure TfrmMain.mnContenstClick(Sender: TObject);

begin

Application.HelpCommand(HELP_FINDER, 0);

end;

 

function ExecuteCommand(CommandString:String):Boolean;

var

  si:STARTUPINFO;

  pi:PROCESS_INFORMATION;

  cmdline:string;

begin

  ZeroMemory(@si,sizeof(si));

  si.cb:=SizeOf(si);

  cmdline:=CommandString;

  if not CreateProcess( nil,              // No module name (use command line).

                        PChar(cmdline),   // Command line.

                        nil,              // Process handle not inheritable.

                        nil,              // Thread handle not inheritable.

                        False,            // Set handle inheritance to FALSE.

                        0,                // No creation flags.

                        nil,              // Use parent's environment block.

                        nil,              // Use parent's starting directory.

                        si,               // Pointer to STARTUPINFO structure.

                        pi )              // Pointer to PROCESS_INFORMATION structure.

  then

  begin

    result:=False;

    Exit;

  end;

  WaitForSingleObject( pi.hProcess, INFINITE );

  CloseHandle( pi.hProcess );

  CloseHandle( pi.hThread );

  result:=True;

end;

 

procedure TfrmMain.mnServiceArchivClick(Sender: TObject);

var ArchName:String;

    Year,Month,Day:Word;

begin

//Архивируем базу данных

DecodeDate(Date,Year,Month,Day);

if Day<10 then ArchName:=ArchName+'0'+IntToStr(Day) else ArchName:=ArchName+IntToStr(Day);

if Month<10 then ArchName:=ArchName+'_0'+IntToStr(Month) else ArchName:=ArchName+'_'+IntToStr(Month);

ArchName:=ArchName+'_'+IntToStr(Year);

SaveDialog1.FileName:=ArchivPath+'\'+ArchName;

if SaveDialog1.Execute then

Информация о работе Автоматизация складского учета Регионального отделения Фонда социального страхования Российской Федерации по Республике Хакасия