Фонд социального страхования

Автор: Пользователь скрыл имя, 19 Марта 2012 в 23:03, курсовая работа

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

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

Содержание

ВВЕДЕНИЕ 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

Работа содержит 1 файл

есть структура.docx

— 354.00 Кб (Скачать)

      Background:=clCream;

end;

 

procedure TfrmMoveMat.tbFilterClick(Sender: TObject);

begin

if tbFilter.Down=True then

  begin

    ADOQueryMove.SQL.Clear;

    ADOQueryMove.SQL.Add('SELECT');

    ADOQueryMove.SQL.Add('  Движение.Код  AS Код,');

    ADOQueryMove.SQL.Add('  Движение.Тип  AS Тип,');

    ADOQueryMove.SQL.Add('  Движение.Документ AS Документ,');

    ADOQueryMove.SQL.Add('  Движение.Дата AS Дата,');

    ADOQueryMove.SQL.Add('  Движение.Сумма  AS Сумма,');

    ADOQueryMove.SQL.Add('  Движение.Ответственный  AS Ответственный,');

    ADOQueryMove.SQL.Add('  Движение.Примечания AS Примечания,');

    ADOQueryMove.SQL.Add('  Типы.Статус AS Статус');

    ADOQueryMove.SQL.Add('FROM');

    ADOQueryMove.SQL.Add('  Движение INNER JOIN Типы ON Типы.Код = Движение.Тип');

    ADOQueryMove.SQL.Add('WHERE Движение.Дата>=#'+Copy(DBDate1.Text,4,2)+'/'+Copy(DBDate1.Text,1,2)+'/'+Copy(DBDate1.Text,7,4)+'# and');

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

    ADOQueryMove.SQL.Add('ORDER BY Движение.Дата, Движение.Документ;');

    ADOQueryMove.Active:=True;

  end

else

  begin

    ADOQueryMove.SQL.Clear;

    ADOQueryMove.SQL.Add('SELECT');

    ADOQueryMove.SQL.Add('  Движение.Код  AS Код,');

    ADOQueryMove.SQL.Add('  Движение.Тип  AS Тип,');

    ADOQueryMove.SQL.Add('  Движение.Документ AS Документ,');

    ADOQueryMove.SQL.Add('  Движение.Дата AS Дата,');

    ADOQueryMove.SQL.Add('  Движение.Сумма  AS Сумма,');

    ADOQueryMove.SQL.Add('  Движение.Ответственный  AS Ответственный,');

    ADOQueryMove.SQL.Add('  Движение.Примечания AS Примечания,');

    ADOQueryMove.SQL.Add('  Типы.Статус AS Статус');

    ADOQueryMove.SQL.Add('FROM');

    ADOQueryMove.SQL.Add('  Движение INNER JOIN Типы ON Типы.Код = Движение.Тип');

    ADOQueryMove.SQL.Add('ORDER BY Движение.Дата, Движение.Документ;');

    ADOQueryMove.Active:=True;

  end;

end;

 

procedure TfrmMoveMat.DBGridEhContenstColumns0EditButtons0Click(

  Sender: TObject; var Handled: Boolean);

var FormMat:TfrmSprMat;

begin

frmMain.MatSelect:=0;

FormMat:=TfrmSprMat.Create(Application);

FormMat.tbSeparator.Visible:=True;

FormMat.tbSelect.Visible:=True;

FormMat.FormStyle:=fsNormal;

FormMat.Visible:=False;

FormMat.ShowModal;

 

if frmMain.MatSelect<>0 then

  begin

    ADODataSetContenst.Edit;

    ADODataSetContenst.FieldByName('Материал').Value:=frmMain.MatSelect;

    ADODataSetContenst.FieldByName('Цена').Value:=frmMain.Price;

    ADODataSetContenst.FieldByName('Единица').Value:=frmMain.Edinica;

    ADODataSetContenst.FieldByName('Количество').Value:=0;

    ADODataSetContenst.FieldByName('Сумма').Value:=0;

    DBGridEhContenst.SelectedField:=ADODataSetContenst.FieldByName('Количество');

  end;

end;

 

procedure TfrmMoveMat.DBGridEhContenstKeyDown(Sender: TObject;

  var Key: Word; Shift: TShiftState);

begin

if (Key=VK_RETURN) and (Shift=[ssAlt]) then tbContenst.Click;

end;

 

procedure TfrmMoveMat.DBGridEh1KeyDown(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

if (Key=VK_RETURN) and (Shift=[ssAlt]) then tbContenst.Click;

end;

 

procedure TfrmMoveMat.DBGridEh1Columns3EditButtons0Click(Sender: TObject;

  var Handled: Boolean);

var Rs:TADOQuery;

begin

Rs:=TADOQuery.Create(Application);

Rs.Connection:=frmMain.ADOConnectionMain;

Rs.SQL.Add('SELECT Sum(Состояние.Сумма) AS Итог FROM Состояние WHERE Документ='+ADOQueryMove.FieldByName('Код').AsString+';');

Rs.Active:=True;

ADOQueryMove.Edit;

if Rs.FieldByName('Итог').IsNull then

   ADOQueryMove.FieldByName('Сумма').Value:=0

else

   ADOQueryMove.FieldByName('Сумма').Value:=Rs.FieldByName('Итог').Value;

Rs.Active:=False;

Rs.Close;

end;

 

procedure TfrmMoveMat.ADOQueryMoveBeforePost(DataSet: TDataSet);

begin

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

   Raise Exception.Create('Период закрыт  для редактирования');

end;

 

function TfrmMoveMat.isClosePeriod(DatePeriod:TDateTime):Boolean;

var Year,Month,Day:Word;

    Rs:TADOQuery;

begin

Result:=True;

DecodeDate(DatePeriod,Year,Month,Day);

Rs:=TADOQuery.Create(Application);

Rs.Connection:=frmMain.ADOConnectionMain;

Rs.SQL.Clear;

Rs.SQL.Add('select * from Периоды where Year(Период)='+IntToStr(Year)+' and Month(Период)='+IntToStr(Month)+';');

Rs.Active:=True;

if Rs.RecordCount<>0 then

   if Rs.FieldByName('Доступ').AsBoolean=True then Result:=False;

Rs.Close;

Rs.Free;

end;

 

procedure TfrmMoveMat.ADODataSetContenstAfterPost(DataSet: TDataSet);

var Rs:TADOQuery;

begin

Rs:=TADOQuery.Create(Application);

Rs.Connection:=frmMain.ADOConnectionMain;

Rs.SQL.Add('SELECT Sum(Состояние.Сумма) AS Итог FROM Состояние WHERE Документ='+ADOQueryMove.FieldByName('Код').AsString+';');

Rs.Active:=True;

ADOQueryMove.Edit;

ADOQueryMove.FieldByName('Сумма').Value:=Rs.FieldByName('Итог').Value;

ADOQueryMove.Post;

Rs.Active:=False;

Rs.Close;

ItogFoterContenst;

end;

 

procedure TfrmMoveMat.ADODataSetContenstAfterScroll(DataSet: TDataSet);

begin

if ADODataSetContenst.RecNo<>-1 then

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

else

   StatusBar1.Panels[0].Text:='новая';

end;

 

procedure TfrmMoveMat.ADODataSetContenstBeforePost(DataSet: TDataSet);

begin

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

   Raise Exception.Create('Период закрыт  для редактирования')

else

   ADODataSetContenst.FieldByName('Сумма').Value:=ADODataSetContenst.FieldByName('Цена').Value*ADODataSetContenst.FieldByName('Количество').Value;

end;

 

procedure TfrmMoveMat.ADOQueryMoveAfterPost(DataSet: TDataSet);

begin

DataSet.Refresh;

end;

 

procedure TfrmMoveMat.ItogFoterContenst;

var ADOQ:TADOQuery;

begin

ADOQ:=TADOQuery.Create(Application);

ADOQ.Connection:=frmMain.ADOConnectionMain;

ADOQ.SQL.Add('select count(Документ) as Кол, sum(Сумма) as Итог from Состояние where Документ='+ADOQueryMove.FieldByName('Код').AsString+';');

ADOQ.Active:=True;

DBGridEhContenst.Columns[1].Footer.Value:=ADOQ.FieldByName('Кол').AsString;

DBGridEhContenst.Columns[4].Footer.Value:=ADOQ.FieldByName('Итог').AsString;

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 Демонстрационный материал

 

 
 
 
 


Информация о работе Фонд социального страхования