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

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

ADOQ.Close;

end;

 

procedure TfrmMoveMat.tbDeleteClick(Sender: TObject);

begin

if isClosePeriod(ADOQueryMove.FieldByName('Дата').AsDateTime) then

   MessageBox(Self.Handle,'Период  закрыт для редактирования','Внимание',MB_ICONSTOP+MB_OK)

else

   if MessageBox(Self.Handle,'Удалить  запись','Внимание',MB_ICONQUESTION+MB_YESNO)=IDYES then

      if PageControl1.Pages[0].Showing=True then

         if ADOQueryMove.RecordCount<>0 then ADOQueryMove.Delete

      else

         if ADODataSetContenst.RecordCount<>0 then ADODataSetContenst.Delete;

end;

 

end.

 

 

unit untReport;

 

interface

 

uses

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

  Dialogs, Grids, DBGridEh, ComCtrls, StdCtrls, Mask, DBCtrlsEh, ToolWin,

  DB, ADODB, ImgList, FR_Class, FR_DSet, FR_DBSet;

 

type

  TfrmReport = class(TForm)

    ToolBar2: TToolBar;

    DBDate1: TDBDateTimeEditEh;

    DBDate2: TDBDateTimeEditEh;

    tbReport: TToolButton;

    DBGridEh1: TDBGridEh;

    StatusBar1: TStatusBar;

    DataSource1: TDataSource;

    ADOQuery1: TADOQuery;

 

    ADOQuery1DSDesigner: TWideStringField;

    ADOQuery1DSDesigner2: TSmallintField;

    ADOQuery1DSDesigner3: TWideStringField;

    ADOQuery1DSDesigner4: TFloatField;

    ADOQuery1DSDesigner5: TBCDField;

    ADOQuery1DSDesigner6: TFloatField;

    ADOQuery1DSDesigner7: TBCDField;

    ADOQuery1DSDesigner8: TFloatField;

    ADOQuery1DSDesigner9: TBCDField;

    ADOQuery1DSDesigner10: TFloatField;

    ADOQuery1DSDesigner11: TBCDField;

    ImageListReport: TImageList;

    ToolButton1: TToolButton;

    tbPrint: TToolButton;

    frReport1: TfrReport;

    frDBDataSet1: TfrDBDataSet;

    ADOQuery1DSDesigner12: TWideStringField;

    ADOQuery1DSDesigner13: TBCDField;

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

    procedure ADOQuery1AfterScroll(DataSet: TDataSet);

    procedure tbReportClick(Sender: TObject);

    procedure FormCreate(Sender: TObject);

    procedure tbPrintClick(Sender: TObject);

    procedure ADOQuery1BeforeOpen(DataSet: TDataSet);

    procedure ADOQuery1BeforeClose(DataSet: TDataSet);

  private

    { Private declarations }

  public

    { Public declarations }

  end;

 

var

  frmReport: TfrmReport;

 

implementation

 

uses untMain;

 

{$R *.dfm}

 

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

var Rs:TADOQuery;

begin

//Заполняем  поля  фильтра в базу

Rs:=TADOQuery.Create(Application);

Rs.Connection:=frmMain.ADOConnectionMain;

Rs.SQL.Add('select * from options');

Rs.Active:=True;

Rs.Edit;

Rs.FieldByName('Date1').Value:=DBDate1.Value;

Rs.FieldByName('Date2').Value:=DBDate2.Value;

Rs.Post;

Rs.Active:=False;

Rs.Close;

 

ADOQuery1.Active:=False;

Action:=caFree;

end;

 

procedure TfrmReport.ADOQuery1AfterScroll(DataSet: TDataSet);

begin

if ADOQuery1.RecNo<>-1 then

   StatusBar1.Panels[0].Text:=IntToStr(ADOQuery1.RecNo)+' : '+IntToStr(ADOQuery1.RecordCount)

else

   StatusBar1.Panels[0].Text:='Пусто'

end;

 

procedure TfrmReport.tbReportClick(Sender: TObject);

var AddCom:TADOCommand;

begin

ADOQuery1.Active:=False;

AddCom:=TADOCommand.Create(Application);

AddCom.Connection:=frmMain.ADOConnectionMain;

 

//Очистка таблицы

AddCom.CommandText:='DELETE Отчет_по_материалам.* FROM Отчет_по_материалам;';

AddCom.Execute;

 

//Сальдо на начало

AddCom.CommandText:='INSERT INTO Отчет_по_материалам ( Материал, СальдоНачКол, СальдоНачСум ) '+

'SELECT Состояние.Материал, Sum([Типы].[Статус]*[Состояние].[Количество]) AS Количество, Sum([Типы].[Статус]*[Состояние].[Сумма]) AS Сумма '+

'FROM (Типы INNER JOIN Движение ON Типы.Код = Движение.Тип) INNER JOIN Состояние  ON Движение.Код = Состояние.Документ '+

'WHERE (((Движение.Дата)<#'+Copy(DBDate1.Text,4,2)+'/'+Copy(DBDate1.Text,1,2)+'/'+Copy(DBDate1.Text,7,4)+'#)) '+

'GROUP BY Состояние.Материал;';

AddCom.Execute;

 

//Сальдо на конец

AddCom.CommandText:='INSERT INTO Отчет_по_материалам ( Материал, СальдоКонКол, СальдоКонСум ) '+

'SELECT Состояние.Материал, Sum([Типы].[Статус]*[Состояние].[Количество]) AS Количество, Sum([Типы].[Статус]*[Состояние].[Сумма]) AS Сумма '+

'FROM (Типы INNER JOIN Движение ON Типы.Код = Движение.Тип) INNER JOIN Состояние  ON Движение.Код = Состояние.Документ '+

'WHERE (((Движение.Дата)<=#'+Copy(DBDate2.Text,4,2)+'/'+Copy(DBDate2.Text,1,2)+'/'+Copy(DBDate2.Text,7,4)+'#)) '+

'GROUP BY Состояние.Материал;';

AddCom.Execute;

 

//Приход-расход

AddCom.CommandText:='INSERT INTO Отчет_по_материалам ( Материал, ПриходКол, ПриходСум, РасходКол, РасходСум ) '+

'SELECT Состояние.Материал, IIf([Типы].[Статус]=1,[Количество],0) AS ПриходКол, IIf([Типы].[Статус]=1,[Состояние].[Сумма],0) AS ПриходСум, IIf([Типы].[Статус]=-1,[Количество],0) AS РасходКол, IIf([Типы].[Статус]=-1,[Состояние].[Сумма],0) AS РасходСум '+

'FROM (Типы INNER JOIN Движение ON Типы.Код = Движение.Тип) INNER JOIN Состояние  ON Движение.Код = Состояние.Документ '+

'WHERE (((Движение.Дата)>=#'+Copy(DBDate1.Text,4,2)+'/'+Copy(DBDate1.Text,1,2)+'/'+Copy(DBDate1.Text,7,4)+'# And (Движение.Дата)<=#'+Copy(DBDate2.Text,4,2)+'/'+Copy(DBDate2.Text,1,2)+'/'+Copy(DBDate2.Text,7,4)+'#));';

AddCom.Execute;

 

ADOQuery1.Active:=True;

end;

 

procedure TfrmReport.FormCreate(Sender: TObject);

var Rs:TADOQuery;

begin

Self.Top:=10;

Self.Width:=frmMain.ClientWidth*9 div 10;

Self.Height:=frmMain.ClientHeight*9 div 10;

Self.Left:=(Screen.Width-Self.Width) div 2;

//Заполняем  поля  фильтра

Rs:=TADOQuery.Create(Application);

Rs.Connection:=frmMain.ADOConnectionMain;

Rs.SQL.Add('select * from options');

Rs.Active:=True;

DBDate1.Value:=Rs.FieldByName('Date1').AsVariant;

DBDate2.Value:=Rs.FieldByName('Date2').AsVariant;

Rs.Active:=False;

Rs.Close;

end;

 

procedure TfrmReport.tbPrintClick(Sender: TObject);

begin

if frReport1.LoadFromFile(ExtractFilePath(Application.ExeName)+'Oborot.frf') then

   begin

     frReport1.Dictionary.Variables['Date1']:=DBDate1.Value;

     frReport1.Dictionary.Variables['Date2']:=DBDate2.Value;

     frReport1.ShowReport;

   end

else

   MessageBox(Self.Handle,'Не  найден файл отчета','Ошибка',MB_ICONERROR+MB_OK);

end;

 

procedure TfrmReport.ADOQuery1BeforeOpen(DataSet: TDataSet);

begin

tbPrint.Enabled:=True;

end;

 

procedure TfrmReport.ADOQuery1BeforeClose(DataSet: TDataSet);

begin

tbPrint.Enabled:=False;

end;

 

end.

 

 

П. 3. Материалы внедрения дипломного проекта

 

 
П. 4 Демонстрационный материал

 

 
 
 
 


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