Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
отчет по про.doc
Скачиваний:
69
Добавлен:
10.05.2015
Размер:
5.1 Mб
Скачать

23

Министерство образования и науки РФ

ФГБОУ ВПО «Тульский Государственный Университет»

Кафедра «Автоматизированных информационных и управляющих систем»

ОТЧЕТ по производственно-технологической практике на тему:

«Расчет норм времени сотрудников

ООО « Щекинский Завод рто» »

Студента гр.230991 ___________________ Семёновой К. И.

(подпись, дата)

Руководитель доцент, к.т.н. ___________________ Ковешников В.А.

(подпись, дата)

Тула 2012

Содержание

ВВЕДЕНИЕ 19

1 Общая характеристика места практики 20

1.1 Структура компании. Уровень автоматизации предприятия 22

2. Постановка задачи 26

3 Описание метода организации данных 30

3.1 Описание входной и выходной информации 30

3.2 Организация ведения информационной базы 33

3.3 Математическая модель 34

4 Описание программно-технических средств 36

4.1 Программно-технические средства, необходимые для разработки программы 36

4.2 Программно-технические средства при использовании программы 38

4.3 Описание программы 38

50

Приложение 1 51

unit Unit1; 51

interface 51

uses 51

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

Dialogs, ImgList, ActnList, XPStyleActnCtrls, ActnMan, ToolWin, 51

ActnCtrls, ActnMenus, ADODB, ExcelXP, OleServer, OleCtnrs, StdCtrls, DB, 51

Grids, DBGrids, DBTables, Buttons, ExtCtrls; 51

type 51

TForm1 = class(TForm) 51

ImageList1: TImageList; 51

ActionMainMenuBar1: TActionMainMenuBar; 51

ActionManager1: TActionManager; 51

Action1: TAction; 51

Action2: TAction; 51

OpenDialog1: TOpenDialog; 51

Action3: TAction; 51

Action4: TAction; 51

ADOConnection1: TADOConnection; 51

ADOTable1: TADOTable; 51

ADOTable2: TADOTable; 51

ADOTable3: TADOTable; 51

ADOTable4: TADOTable; 51

ADOTable5: TADOTable; 51

Action5: TAction; 51

Action6: TAction; 51

Action7: TAction; 51

Action8: TAction; 51

OpenDialog2: TOpenDialog; 51

Table1: TTable; 51

Table2: TTable; 52

Приложение 1 52

ADOTable6: TADOTable; 52

ADOTable7: TADOTable; 52

DataSource1: TDataSource; 52

ADOTable8: TADOTable; 52

DataSource2: TDataSource; 52

ADOTable9: TADOTable; 52

Action9: TAction; 52

Action10: TAction; 52

Action11: TAction; 52

Action12: TAction; 52

Panel1: TPanel; 52

SpeedButton1: TSpeedButton; 52

SpeedButton2: TSpeedButton; 52

Bevel1: TBevel; 52

SpeedButton3: TSpeedButton; 52

SpeedButton4: TSpeedButton; 52

procedure Action1Execute(Sender: TObject); 52

procedure FormCreate(Sender: TObject); 52

procedure Action2Execute(Sender: TObject); 52

procedure Action3Execute(Sender: TObject); 52

procedure Action4Execute(Sender: TObject); 52

procedure Action5Execute(Sender: TObject); 52

procedure Action6Execute(Sender: TObject); 52

procedure Action7Execute(Sender: TObject); 52

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

procedure Action8Execute(Sender: TObject); 52

function WinToDos(St: string): string; 52

procedure ConectionTable(Table: TTable; TName: string); 52

function finds(Table: TADOTable; TFild, TFind: string): boolean; 53

procedure Action9Execute(Sender: TObject); 53

Приложение 1 53

procedure Action10Execute(Sender: TObject); 53

procedure Action11Execute(Sender: TObject); 53

private 53

{ Private declarations } 53

public 53

{ Public declarations } 53

end; 53

var 53

Form1: TForm1; 53

StartDir:String; 53

XL: variant; 53

XLPic,XlSheet: OleVariant; 53

implementation 53

uses Unit2, Unit3, Unit4, ComObj, Unit5, Unit7; 53

{$R *.dfm} 53

procedure Delay(Value: Cardinal); 53

var 53

F, N: Cardinal; 53

begin 53

N := 0; 53

while N <= (Value div 10) do 53

begin 53

SleepEx(1, True); 53

Application.ProcessMessages; 53

Inc(N); 53

end; 53

F := GetTickCount; 53

repeat 54

Application.ProcessMessages; 54

N := GetTickCount; 54

Приложение 1 54

until (N - F >= (Value mod 10)) or (N < F); 54

end; 54

function TForm1.finds(Table: TADOTable; TFild, TFind: string): boolean; 54

var 54

f:boolean; 54

begin 54

f:=false; 54

Table.First; 54

while not(Table.Eof) do begin 54

if Table.FieldByName(TFild).AsString=TFind then begin 54

f:=true; 54

Break; 54

end else Table.Next; 54

end; 54

Result:=f; 54

end; 54

procedure TForm1.ConectionTable(Table: TTable; TName: string); 54

begin 54

Table.Active:=false; 54

repeat 54

until FileExists(TName); 54

Table.TableName:=TName; 54

Table.Active:=true; 54

end; 54

function TForm1.WinToDos(St: string): string; 54

var 55

Ch: PChar; 55

begin 55

Ch := StrAlloc(Length(St) + 1); 55

Приложение 1 55

AnsiToOem(PChar(St), Ch); 55

Result := Ch; 55

StrDispose(Ch); 55

end; 55

procedure TForm1.Action1Execute(Sender: TObject); 55

var 55

Frm: TForm2; 55

begin 55

if Action1.Tag=1 then begin 55

frm:= TForm2.Create(Owner); 55

Action1.Tag:=0; 55

end; 55

end; 55

procedure TForm1.FormCreate(Sender: TObject); 55

var s:string; 55

begin 55

StartDir:=GetCurrentDir; 55

s:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source='+ 55

StartDir+'\time.mdb;Mode=Share Deny None;Jet OLEDB:System database="";Jet OLEDB:Registry Path="";'+ 55

'Jet OLEDB:Database Password="";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;'+ 55

'Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+ 55

'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'+ 55

'Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False;'; 56

ADOConnection1.Connected:=false; 56

ADOConnection1.ConnectionString:=s; 56

ADOConnection1.Connected:=true; 56

ADOTable1.Active:=false; 56

ADOTable2.Active:=false; 56

ADOTable3.Active:=false; 56

Приложение 1 56

ADOTable4.Active:=false; 56

ADOTable5.Active:=false; 56

ADOTable6.Active:=false; 56

ADOTable7.Active:=false; 56

ADOTable8.Active:=false; 56

ADOTable9.Active:=false; 56

ADOTable1.Active:=true; 56

ADOTable2.Active:=true; 56

ADOTable3.Active:=true; 56

ADOTable4.Active:=true; 56

ADOTable5.Active:=true; 56

ADOTable6.Active:=true; 56

ADOTable7.Active:=true; 56

ADOTable8.Active:=true; 56

ADOTable9.Active:=true; 56

end; 56

procedure TForm1.Action2Execute(Sender: TObject); 56

var i,st:integer; 56

NFile,kodFio,Fio,kodDolh,Dolh,kodPodr,Podr,Nach,Oklad,Razrad:String; 56

error,ok:boolean; 56

begin 56

if OpenDialog1.Execute then begin 56

NFile:=OpenDialog1.FileName; 57

XL := CreateOleObject('Excel.Application'); 57

XL.DisplayAlerts := false; 57

XL.WorkBooks.Open(NFile); 57

XlSheet:=XL.WorkBooks[1].WorkSheets[1]; 57

XL.Visible:= false; 57

i:=7; st:=1; 57

while XlSheet.Range['A'+IntToStr(i)].FormulaR1C1 <> '' do begin 57

Приложение 1 57

error:=false; 57

kodFio:=XlSheet.Range['B'+IntToStr(i)].FormulaR1C1; 57

Fio:=XlSheet.Range['C'+IntToStr(i)].FormulaR1C1; 57

kodDolh:=XlSheet.Range['D'+IntToStr(i)].FormulaR1C1; 57

Dolh:=XlSheet.Range['E'+IntToStr(i)].FormulaR1C1; 57

kodPodr:=XlSheet.Range['F'+IntToStr(i)].FormulaR1C1; 57

Podr:=XlSheet.Range['G'+IntToStr(i)].FormulaR1C1; 57

Nach:=XlSheet.Range['H'+IntToStr(i)].FormulaR1C1; 57

Oklad:=XlSheet.Range['I'+IntToStr(i)].FormulaR1C1; 57

Razrad:=XlSheet.Range['J'+IntToStr(i)].FormulaR1C1; 57

ADOTable1.Filter:='kod='+kodPodr; 57

ADOTable2.Filter:='kod='+kodDolh; 57

if ADOTable1.IsEmpty then begin 57

ADOTable1.Insert; 57

ADOTable1.FieldByName('kod').AsString:=kodPodr; 57

ADOTable1.FieldByName('name').AsString:=Podr; 57

ADOTable1.FieldByName('otv').AsString:=Nach; 57

ADOTable1.Post; 57

end else 57

if MessageDlg('Заменить данные по подразделению?'+#13+ 57

'Наименование: '+ADOTable1.FieldByName('name').AsString+#13+'Ответственный: '+ADOTable1.FieldByName('otv').AsString, 58

mtConfirmation, [mbYes, mbNo], 0) = mrYes 58

then begin 58

ADOTable1.Edit; 58

ADOTable1.FieldByName('kod').AsString:=kodPodr; 58

ADOTable1.FieldByName('name').AsString:=Podr; 58

ADOTable1.FieldByName('otv').AsString:=Nach; 58

ADOTable1.Post; 58

end; 58

Приложение 1 58

if ADOTable2.IsEmpty then begin 58

ADOTable2.Insert; 58

ADOTable2.FieldByName('kod').AsString:=kodDolh; 58

ADOTable2.FieldByName('name').AsString:=Dolh; 58

ADOTable2.Post; 58

end else 58

if MessageDlg('Заменить данные по должности?'+#13+ 58

'Наименование: '+ADOTable2.FieldByName('name').AsString, 58

mtConfirmation, [mbYes, mbNo], 0) = mrYes 58

then begin 58

ADOTable2.Edit; 58

ADOTable2.FieldByName('kod').AsString:=kodDolh; 58

ADOTable2.FieldByName('name').AsString:=Dolh; 58

ADOTable2.Post; 58

end; 58

ADOTable4.Filter:='name='+''''+Oklad+''''; 58

if ADOTable4.IsEmpty then begin 58

error:=true; 58

ShowMessage('Незаведен вид окладов'); 58

end else 59

Oklad:=ADOTable4.FieldByName('id').AsString; 59

ADOTable5.Filter:='name='+''''+Razrad+''''; 59

if ADOTable5.IsEmpty then begin 59

error:=true; 59

ShowMessage('Незаведен вид разряда'); 59

end else 59

Razrad:=ADOTable5.FieldByName('id').AsString; 59

if error then 59

ShowMessage('Сотрудник '+Fio+' не будет добавлен!') 59

else begin 59

Приложение 1 59

ADOTable3.Filter:='kod='+kodFio; 59

if ADOTable3.IsEmpty then begin 59

ADOTable3.Insert; 59

ADOTable3.FieldByName('fid').AsString:=ADOTable1.FieldByName('id').AsString; 59

ADOTable3.FieldByName('kod').AsString:=kodFio; 59

ADOTable3.FieldByName('FIO').AsString:=Fio; 59

ADOTable3.FieldByName('vidoplat').AsString:=Oklad; 59

ADOTable3.FieldByName('dolh').AsString:=ADOTable2.FieldByName('id').AsString; 59

ADOTable3.FieldByName('razrad').AsString:=Razrad; 59

ADOTable3.Post; 59

end else 59

if MessageDlg('Заменить данные по сотруднику?'+#13+ 59

'Ф.И.О.: '+ADOTable3.FieldByName('FIO').AsString+#13+ 59

'Вид оплаты: '+ADOTable4.FieldByName('name').AsString+#13+ 59

'Должность: '+ADOTable2.FieldByName('name').AsString+#13+ 59

'Разряд: '+ADOTable5.FieldByName('name').AsString, 59

mtConfirmation, [mbYes, mbNo], 0) = mrYes 59

then begin 59

ADOTable3.Edit; 60

ADOTable3.FieldByName('fid').AsString:=ADOTable1.FieldByName('id').AsString; 60

ADOTable3.FieldByName('kod').AsString:=kodFio; 60

ADOTable3.FieldByName('FIO').AsString:=Fio; 60

ADOTable3.FieldByName('vidoplat').AsString:=Oklad; 60

ADOTable3.FieldByName('dolh').AsString:=ADOTable2.FieldByName('id').AsString; 60

ADOTable3.FieldByName('razrad').AsString:=Razrad; 60

ADOTable3.Post; 60

end; 60

end; 60

i:=i+1; 60

end; 60

Приложение 1 60

XL.ActiveWorkbook.Close; 60

XL.Application.Quit; 60

end; 60

end; 60

procedure TForm1.Action3Execute(Sender: TObject); 60

var 60

Frm: TForm3; 60

begin 60

if Action3.Tag=1 then begin 60

frm:= TForm3.Create(Owner); 60

frm.Caption:='Виды окладов'; 60

frm.DataSource1.DataSet:=Frm.ADOTable1; 60

Action3.Tag:=0; 60

end; 60

end; 60

procedure TForm1.Action4Execute(Sender: TObject); 60

var 60

Frm: TForm3; 61

begin 61

if Action4.Tag=1 then begin 61

frm:= TForm3.Create(Owner); 61

frm.Caption:='Разряды'; 61

frm.DataSource1.DataSet:=Frm.ADOTable2; 61

Action4.Tag:=0; 61

end; 61

end; 61

procedure TForm1.Action5Execute(Sender: TObject); 61

begin 61

Close; 61

end; 61

Приложение 1 61

procedure TForm1.Action6Execute(Sender: TObject); 61

var 61

Frm: TForm3; 61

begin 61

if Action6.Tag=1 then begin 61

frm:= TForm3.Create(Owner); 61

frm.Caption:='Должности'; 61

frm.DataSource1.DataSet:=Frm.ADOTable3; 61

Action6.Tag:=0; 61

end; 61

end; 61

procedure TForm1.Action7Execute(Sender: TObject); 61

var 61

Frm: TForm4; 61

begin 61

if Action7.Tag=1 then begin 61

frm:= TForm4.Create(Owner); 62

Action7.Tag:=0; 62

end; 62

end; 62

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

begin 62

Action:=caFree; 62

Form1.Action7.Tag:=1; 62

end; 62

procedure TForm1.Action8Execute(Sender: TObject); 62

var f:string; 62

files:TextFile; 62

find:boolean; 62

begin 62

Приложение 1 62

if OpenDialog2.Execute then begin 62

f:=OpenDialog2.FileName; 62

AssignFile(files,StartDir+'\clear.bat'); 62

Rewrite(files); 62

writeln(files, WinToDos(':delite')); 62

writeln(files, WinToDos('del "'+StartDir+'\temp\*.*" /q /f')); 62

writeln(files, WinToDos('if ERRORLEVEL 1 goto delite')); 62

CloseFile(files); 62

WinExec(PChar(StartDir+'\clear.bat'),0); 62

Delay(3000); 62

WinExec(PChar(StartDir+'\7z.exe e -o"'+StartDir+'\temp" "'+f+'"'),0); 62

Delay(3000); 62

ConectionTable(Table1, StartDir+'\temp\DET_MEX.db'); 62

ADOTable6.Filter:='Oboz='+''''+Table1.FieldByName('ObozDetal').AsString+''''; 62

if ADOTable6.IsEmpty then begin 62

ADOTable6.Insert; 63

ADOTable6.FieldByName('Oboz').AsString:=Table1.FieldByName('ObozDetal').AsString; 63

ADOTable6.FieldByName('Name').AsString:=Table1.FieldByName('NameDet').AsString; 63

ADOTable6.FieldByName('Data').AsString:=Table1.FieldByName('Data').AsString; 63

ADOTable6.Post; 63

end else 63

if MessageDlg('Заменить данные по детали?'+#13+ 63

'№ чертежа: '+Table1.FieldByName('ObozDetal').AsString+#13+ 63

'Дата составления: '+Table1.FieldByName('Data').AsString, 63

mtConfirmation, [mbYes, mbNo], 0) = mrYes 63

then begin 63

ADOTable6.Edit; 63

ADOTable6.FieldByName('Oboz').AsString:=Table1.FieldByName('ObozDetal').AsString; 63

ADOTable6.FieldByName('Name').AsString:=Table1.FieldByName('NameDet').AsString; 63

ADOTable6.FieldByName('Data').AsString:=Table1.FieldByName('Data').AsString; 63

Приложение 1 63

ADOTable6.Post; 63

end; 63

ConectionTable(Table2, StartDir+'\temp\OP_MEX.db'); 63

Table2.First; 63

while not(Table2.Eof) do begin 63

ADOTable7.Filter:='name='+''''+Table2.FieldByName('Equipment1').AsString+''''; 63

if ADOTable7.IsEmpty then begin 63

ADOTable7.Insert; 63

ADOTable7.FieldByName('name').AsString:=Table2.FieldByName('Equipment1').AsString; 63

ADOTable7.Post; 63

end; 63

find:=finds(ADOTable8,'InfOper',Table2.FieldByName('InfOper').AsString); 63

if not(find) then begin 63

ADOTable8.Insert; 63

ADOTable8.FieldByName('NameOper').AsString:=Table2.FieldByName('NameOper').AsString; 64

ADOTable8.FieldByName('InfOper').AsString:=Table2.FieldByName('InfOper').AsString; 64

ADOTable8.Post; 64

end else 64

if MessageDlg('Заменить операцию?'+#13+ 64

'Название операции: '+ADOTable8.FieldByName('NameOper').AsString+#13+ 64

'Описание операции: '+ADOTable8.FieldByName('InfOper').AsString, 64

mtConfirmation, [mbYes, mbNo], 0) = mrYes 64

then begin 64

ADOTable8.Edit; 64

ADOTable8.FieldByName('NameOper').AsString:=Table2.FieldByName('NameOper').AsString; 64

ADOTable8.FieldByName('InfOper').AsString:=Table2.FieldByName('InfOper').AsString; 64

ADOTable8.Post; 64

end; 64

//ADOTable9.Filter:='idOborud='+ADOTable7.FieldByName('id').AsString; 64

find:=finds(ADOTable9,'idOborud',ADOTable7.FieldByName('id').AsString); 64

Приложение 1 64

if not(find) then begin 64

ADOTable9.Insert; 64

ADOTable9.FieldByName('idOborud').AsString:=ADOTable7.FieldByName('id').AsString; 64

ADOTable9.FieldByName('Tvspom').AsString:=Table2.FieldByName('Tvspom').AsString; 64

ADOTable9.FieldByName('Tosn').AsString:=Table2.FieldByName('Tosn').AsString; 64

ADOTable9.FieldByName('TimePZ').AsString:=Table2.FieldByName('TimePZ').AsString; 64

ADOTable9.FieldByName('TimeSHT').AsString:=Table2.FieldByName('TimeSHT').AsString; 64

ADOTable9.Post; 64

end else 64

if MessageDlg('Заменить данные по времени (t)?'+#13+ 64

't - вспомогательное: '+ADOTable9.FieldByName('Tvspom').AsString+#13+ 65

't - основное: '+ADOTable9.FieldByName('Tosn').AsString+#13+ 65

't - PZ: '+ADOTable9.FieldByName('TimePZ').AsString+#13+ 65

't - SHT: '+ADOTable9.FieldByName('TimeSHT').AsString, 65

mtConfirmation, [mbYes, mbNo], 0) = mrYes 65

then begin 65

ADOTable9.Edit; 65

ADOTable9.FieldByName('idOborud').AsString:=ADOTable7.FieldByName('id').AsString; 65

ADOTable9.FieldByName('Tvspom').AsString:=Table2.FieldByName('Tvspom').AsString; 65

ADOTable9.FieldByName('Tosn').AsString:=Table2.FieldByName('Tosn').AsString; 65

ADOTable9.FieldByName('TimePZ').AsString:=Table2.FieldByName('TimePZ').AsString; 65

ADOTable9.FieldByName('TimeSHT').AsString:=Table2.FieldByName('TimeSHT').AsString; 65

ADOTable9.Post; 65

end; 65

Table2.Next; 65

end; 65

end; 65

end; 65

procedure TForm1.Action9Execute(Sender: TObject); 65

var 65

Приложение 1 65

Frm: TForm3; 65

begin 65

if Action9.Tag=1 then begin 65

frm:= TForm3.Create(Owner); 65

frm.Caption:='Оборудование'; 65

frm.DataSource1.DataSet:=Frm.ADOTable4; 65

Action9.Tag:=0; 65

end; 65

end; 65

procedure TForm1.Action10Execute(Sender: TObject); 66

var 66

Frm: TForm5; 66

begin 66

if Action10.Tag=1 then begin 66

frm:= TForm5.Create(Owner); 66

Action10.Tag:=0; 66

end; 66

end; 66

procedure TForm1.Action11Execute(Sender: TObject); 66

var 66

Frm: TForm7; 66

begin 66

if Action11.Tag=1 then begin 66

frm:= TForm7.Create(Owner); 66

Action11.Tag:=0; 66

end; 66

end; 66

end. 66

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]