Автоматизация ведения учета образующихся отходов на предприятии

Разработка программного обеспечения "Сетевой программный комплекс "Автоматизация ведения учетов образования и движения отходов, образующихся на предприятии" с использованием системы программирования Delphi 5. Достоинства и недостатки данной программы.

Рубрика Программирование, компьютеры и кибернетика
Вид дипломная работа
Язык русский
Дата добавления 22.09.2012
Размер файла 2,8 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

end;
end
else ShowMessage('Вы не можете удалить пустую запись!');
end;
end.
unit Unit7;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Buttons, DBCtrls, Grids, DBGrids;
type
TForm7 = class(TForm)
Label1: TLabel;
Edit1: TEdit;
ComboBox1: TComboBox;
Label2: TLabel;
Label3: TLabel;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Unit4, Unit2, Unit6, Unit9;
{$R *.DFM}
procedure TForm7.FormCreate(Sender: TObject);
begin
DataModule2.Query6.Open;
DataModule2.Query6.First;
while NOT DataModule2.Query6.Eof do
begin
ComboBox1.Items.Add(DataModule2.Query6.Fields[1].AsString);
DataModule2.Query6.Next;
end;
DataModule2.Query6.Close;
ComboBox1.ItemIndex:=0;
end;
procedure TForm7.Button1Click(Sender: TObject);
var Parol: variant;
begin
DataModule2.Query6.Open;
Parol:= DataModule2.Query6.Lookup('Dep',ComboBox1.Text,'Password');
DataModule2.Query6.Close;
If Parol=Edit1.Text then
begin
If ComboBox1.Text<>'0' then
begin
Form9.Combobox1.Text:=Combobox1.Text;
Form9.Combobox1.Enabled:=false;
Form4.N6.Visible:=false;
Form4.N1.Visible:=false;
end else Form9.ComboBox1.ItemIndex:=0;
Form4.ShowModal;
end
else ShowMessage('Неправильный пароль или подразделение!');
end;
end.
unit Unit8;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls, OleServer, Excel97, xlReport, ComCtrls;
type
TForm8 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Button2: TButton;
DBEdit1: TDBEdit;
DBEdit5: TDBEdit;
DBEdit6: TDBEdit;
DBEdit7: TDBEdit;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Button1: TButton;
DateTimePicker1: TDateTimePicker;
Edit9: TEdit;
Edit10: TEdit;
Label5: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
DBEdit3: TDBEdit;
DBEdit4: TDBEdit;
DBEdit8: TDBEdit;
DBEdit9: TDBEdit;
DBEdit10: TDBEdit;
DBEdit11: TDBEdit;
DBEdit12: TDBEdit;
Edit11: TEdit;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit8KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit10KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit11KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit12KeyPress(Sender: TObject; var Key: Char);
procedure DBEdit7KeyPress(Sender: TObject; var Key: Char);
procedure Edit11KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
uses Unit3, Unit6, Unit2, ComObj;
{$R *.DFM}
procedure TForm8.Button1Click(Sender: TObject);
begin
Form3.ShowModal;
end;
procedure TForm8.FormActivate(Sender: TObject);
begin
//DBEdit2.Text:=Form6.Combobox1.Text; //структурное подразделение
DBEdit6.Text:=Form6.Edit1.Text; //номер отхода в справочнике отходов для записи в таблицу накладных
end;
procedure TForm8.Button2Click(Sender: TObject);
var poisk, zap: integer;
Excel: Variant;
begin
try
Excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.Open['C:\РАТЕП\Накладная.xls'];
except
ShowMessage('Шаблон накладной не найден');
exit;
end;
DataModule2.Database1.StartTransaction;
try
if (DBEdit1.Text>'') and (DBEdit5.Text>'') then
begin
DataModule2.Query7.FieldByName('Nzap_org').AsVariant:=DataModule2.Query2.Fields[0].AsVariant;
DataModule2.Query7.FieldByName('D_form').AsVariant:=DateTimePicker1.Date;
DataModule2.Query7.Post;
DataModule2.Query11.Close;
DataModule2.Query11.SQL.Clear;
DataModule2.Query11.SQL.Add('Select max(Nzap) from OTH_Move');
DataModule2.Query11.Open;
zap:= DataModule2.Query11.Fields[0].AsInteger;
//указываем: признак формирования=1 и номер записи перемещения в OTH_Source
DataModule2.Query5.First;
while NOT DataModule2.Query5.Eof do
begin
poisk:=DataModule2.Query5.Fields[0].AsInteger;
DataModule2.Query8.Open; DataModule2.Query7.Open;
DataModule2.Query8.Locate('Nzap',poisk, []);
DataModule2.Query8.Edit;
DataModule2.Query8.FieldByName('Pr_Form').AsVariant:='1';
DataModule2.Query8.FieldByName('N_zap_Move').AsInteger:=zap;
DataModule2.Query8.Post;
DataModule2.Query5.Next;
end;
DataModule2.Query8.Close;
DataModule2.Query5.Close;
DataModule2.Query5.Open;
DataModule2.Query7.Close;
DataModule2.Query7.Open;
ShowMessage('OK');
//************************************************
DataModule2.Query10.Close;
DataModule2.Query10.Open;
DataModule2.Query10.First;
DataModule2.Query10.Locate('Nzap',zap, []);
Excel.Range['BQ2']:=DataModule2.Query10.FieldByName('N_Nakl').AsString; //Номер накладной
Excel.Range['M5']:='ОАО "РАТЕП"'; //Организация
Excel.Range['AH9']:=DateToStr(DataModule2.Query10.FieldByName('D_form').AsDateTime); //Дата составления
Excel.Range['BC9']:=Edit1.Text; //Структурное подразделение отправителя
Excel.Range['CG9']:=DataModule2.Query10.FieldByName('Naim').AsString; //Структурное подразделение получателя
Excel.Range['L11']:=Edit2.Text; //Основание
Excel.Range['G12']:=DataModule2.Query10.FieldByName('Naim').AsString; //Кому
Excel.Range['CH12']:=Edit3.Text; //Через кого
Excel.Range['Y17']:=DataModule2.Query10.FieldByName('Naim_1').AsString; //Наименование,сорт,размер,марка
Excel.Range['AU17']:=DataModule2.Query10.FieldByName('Kod').AsString; //Код единицы измерения
Excel.Range['BB17']:=DataModule2.Query10.FieldByName('Naim_2').AsString; //Наименование единицы измерения
Excel.Range['BW17']:=DataModule2.Query10.FieldByName('Sdano').AsString; //Отпущено (количество)
Excel.Range['Q28']:=Edit4.Text; //Отпуск разрешил (должность)
Excel.Range['AM28']:=Edit5.Text; //Отпуск разрешил (расшифровка подписи)
Excel.Range['J31']:=Edit6.Text; //Отпустил (должность)
Excel.Range['AD31']:=Edit7.Text; //Отпустил (расшифровка подписи)
Excel.Range['DA28']:=Edit8.Text; //Главный бухгалтер (расшифровка подписи)
Excel.Visible:= True;
Form8.Close;
end
else ShowMessage('Введите номер накладной и выберите организацию');
except
ShowMessage('Ошибка. Все несохраненные действия отменены');
DataModule2.Database1.Rollback;
exit;
end;
DataModule2.Database1.Commit;
end;
procedure TForm8.DBEdit3KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.DBEdit4KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.DBEdit8KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.DBEdit10KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.DBEdit11KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.DBEdit12KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.DBEdit7KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm8.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)) then key:=#0;
end;
end.
unit Unit9;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Mask, DBCtrls;
type
TForm9 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
ComboBox1: TComboBox;
DBEdit1: TDBEdit;
Button1: TButton;
DBEdit2: TDBEdit;
Edit1: TEdit;
Label4: TLabel;
Edit2: TEdit;
DBEdit3: TDBEdit;
Button2: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure DBEdit1Change(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
uses Unit2, Unit1;
{$R *.DFM}
procedure TForm9.FormCreate(Sender: TObject);
begin
//Подразделения
ComboBox1.Clear;
DataModule2.Query4.Close;
DataModule2.Query4.SQL.Clear;
DataModule2.Query4.SQL.Add('Select * from Password_OTH;');
DataModule2.Query4.Open;
DataModule2.Query4.First;
while NOT DataModule2.Query4.Eof do
begin
if DataModule2.Query4.Fields[1].AsString<>'0' then
ComboBox1.Items.Add(DataModule2.Query4.Fields[1].AsString);
DataModule2.Query4.Next;
end;
DataModule2.Query4.Close;
DataModule2.Query4.Close;
DataModule2.Query4.SQL.Clear;
DataModule2.Query4.SQL.Add('Select * from Spr_Ed_Izm;');
DataModule2.Query4.Open;
Edit2.Text:=DataModule2.Query4.Lookup('Kod',DBEdit3.Text,'Naim');
DataModule2.Query4.Close;
end;
procedure TForm9.Button1Click(Sender: TObject);
begin
Form1.ShowModal;
end;
procedure TForm9.DBEdit1Change(Sender: TObject);
begin
If DBEdit3.Text>'' then
begin
DataModule2.Query4.Close;
DataModule2.Query4.SQL.Clear;
DataModule2.Query4.SQL.Add('Select * from Spr_Ed_Izm;');
DataModule2.Query4.Open;
Edit2.Text:=DataModule2.Query4.Lookup('Kod',DBEdit3.Text,'Naim');
DataModule2.Query4.Close;
end;
end;
procedure TForm9.Button2Click(Sender: TObject);
begin
DataModule2.Database1.StartTransaction;
try
If Edit1.text>'' then
begin
DataModule2.Query9.Open;
DataModule2.Query9.Insert;
DataModule2.Query9.FieldByName('Podr').AsVariant:=ComboBox1.Text;
DataModule2.Query9.FieldByName('Nzap_Spr').AsVariant:=DBEdit2.Text;
DataModule2.Query9.FieldByName('kol').AsVariant:=Edit1.Text;
DataModule2.Query9.FieldByName('Pr_form').AsVariant:=0;
DataModule2.Query9.Post;
DataModule2.Query9.Close;
ShowMessage('Добавлено');
Form9.Close;
end else ShowMessage('Введите количество!');
except
DataModule2.Database1.Rollback;
exit;
end;
DataModule2.Database1.Commit;
DataModule2.Query5.Close; DataModule2.Query5.Open;
end;
procedure TForm9.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm9.FormActivate(Sender: TObject);
begin
Edit1.Text:='';
end;
procedure TForm9.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;
end.
unit Unit10;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, xlReport,
OleServer, Excel97, ComObj, Mask, DBCtrls, ComCtrls, Grids, DBGridEh,
xlcClasses, xlEngine, GridsEh;//, GridsEh, DBGridEh, xlReportG2, xlcClasses, xlEngine
type
TForm10 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Label3: TLabel;
Button1: TButton;
DBGridEh1: TDBGridEh;
xlReport1: TxlReport;
ExcelApplication1: TExcelApplication;
Button2: TButton;
Label5: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Edit8: TEdit;
Button4: TButton;
Label4: TLabel;
Label6: TLabel;
DateTimePicker1: TDateTimePicker;
Button5: TButton;
Button6: TButton;
Edit10: TEdit;
Button3: TButton;
Edit9: TEdit;
procedure Edit1Change(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure FormActivate(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit3KeyPress(Sender: TObject; var Key: Char);
procedure Edit4KeyPress(Sender: TObject; var Key: Char);
procedure Edit5KeyPress(Sender: TObject; var Key: Char);
procedure Edit6KeyPress(Sender: TObject; var Key: Char);
procedure Edit7KeyPress(Sender: TObject; var Key: Char);
procedure Edit8KeyPress(Sender: TObject; var Key: Char);
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form10: TForm10;
implementation
uses Unit2, Unit8;
{$R *.DFM}
procedure TForm10.Edit1Change(Sender: TObject);
var buf: string;
begin
buf:=QuotedStr(edit1.text);
if edit1.Text>'' then
begin
DataModule2.Query10.Close;
DataModule2.Query10.SQL.Clear;
DataModule2.Query10.SQL.Add('Select OTH_Move.Nzap, Poluch_dr_podr, Ispolz_predpr, peredano_nas, Sdano, D_form, N_Nakl, Vyvez1, Vyvez2, Oplach_pererab, ');
DataModule2.Query10.SQL.Add('Poluch_pererab, OTH_Spr_Org.Naim, OTH_Spr_Org.Licence, OTH_Spr.Kod, OTH_Spr.Naim, OTH_Spr.TP, Spr_Ed_Izm.Naim FROM OTH_Move LEFT JOIN OTH_Spr_Org ON OTH_Move.Nzap_Org=OTH_Spr_Org.Nzap ');
DataModule2.Query10.SQL.Add('LEFT JOIN OTH_Spr ON OTH_Spr.Nzap=Nzap_Spr LEFT JOIN Spr_Ed_Izm ON Spr_Ed_Izm.Kod=Kod_ed WHERE year(D_form)='+buf+';');
DataModule2.Query10.Open;
end
else
begin
DataModule2.Query10.Close;
DataModule2.Query10.SQL.Clear;
DataModule2.Query10.SQL.Add('Select OTH_Move.Nzap, Poluch_dr_podr, Ispolz_predpr, peredano_nas, Sdano, D_form, N_Nakl, Vyvez1, Vyvez2, Oplach_pererab, ');
DataModule2.Query10.SQL.Add('Poluch_pererab, OTH_Spr_Org.Naim, OTH_Spr_Org.Licence, OTH_Spr.Kod, OTH_Spr.Naim, OTH_Spr.TP, Spr_Ed_Izm.Naim FROM OTH_Move LEFT JOIN OTH_Spr_Org ON OTH_Move.Nzap_Org=OTH_Spr_Org.Nzap ');
DataModule2.Query10.SQL.Add('LEFT JOIN OTH_Spr ON OTH_Spr.Nzap=Nzap_Spr LEFT JOIN Spr_Ed_Izm ON Spr_Ed_Izm.Kod=Kod_ed;');
DataModule2.Query10.Open;
end;
end;
procedure TForm10.Button1Click(Sender: TObject);
var poisk: integer;
Excel: Variant;
i:variant;
begin
try
Excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.Open['C:\РАТЕП\Журнал за год.xls'];
except
ShowMessage('Шаблон журнала не найден');
exit;
end;
DataModule2.Database1.StartTransaction;
try
DataModule2.Query10.First;
i:=12;
while NOT DataModule2.Query10.Eof do
begin
Excel.ActiveSheet.Cells[i, 1]:=i-11; //номер по порядку
Excel.ActiveSheet.Cells[i, 2]:=DataModule2.Query10.FieldbyName('D_form').AsString; //Дата
Excel.ActiveSheet.Cells[i, 3]:=DataModule2.Query10.FieldbyName('Naim_1').AsString; //Наименование Отхода
Excel.ActiveSheet.Cells[i, 4]:=DataModule2.Query10.FieldbyName('TP').AsString; //Технологич процесс
Excel.ActiveSheet.Cells[i, 5]:=DataModule2.Query10.FieldbyName('Kod').AsString; //Код отхода
Excel.ActiveSheet.Cells[i, 6]:=DataModule2.Query10.FieldbyName('Sdano').AsString+' '+DataModule2.Query10.FieldbyName('Naim_2').AsString; //Кол-во
Excel.ActiveSheet.Cells[i, 7]:=DataModule2.Query10.FieldbyName('Poluch_dr_podr').AsString; //Получено другим подразделением
Excel.ActiveSheet.Cells[i, 8]:=DataModule2.Query10.FieldbyName('Ispolz_predpr').AsString; //Использовано предприятием
Excel.ActiveSheet.Cells[i, 9]:=DataModule2.Query10.FieldbyName('Peredano_nas').AsString; // Передано населению
Excel.ActiveSheet.Cells[i, 10]:=DataModule2.Query10.FieldbyName('Naim').AsString; // Наименование предприятия
Excel.ActiveSheet.Cells[i, 11]:=DataModule2.Query10.FieldbyName('Licence').AsString; // Лицензия предпрятия
Excel.ActiveSheet.Cells[i, 12]:=DataModule2.Query10.FieldbyName('N_nakl').AsString; // Номер накладной
Excel.ActiveSheet.Cells[i, 13]:=DataModule2.Query10.FieldbyName('Sdano').AsString+' '+DataModule2.Query10.FieldbyName('Naim_2').AsString;; // Кол-во
Excel.ActiveSheet.Cells[i, 14]:=DataModule2.Query10.FieldbyName('Vyvez1').AsString; // м3
Excel.ActiveSheet.Cells[i, 15]:=DataModule2.Query10.FieldbyName('Vyvez2').AsString; // т
Excel.ActiveSheet.Cells[i, 16]:=DataModule2.Query10.FieldbyName('Oplach_pererab').AsString; // Оплачено за переработку
Excel.ActiveSheet.Cells[i, 17]:=DataModule2.Query10.FieldbyName('Poluch_pererab').AsString; // Получено за переработку
DataModule2.Query10.Next;
i:=i+1;
end;
Excel.Range['C2']:=Edit1.Text+' год';
Excel.Visible:= True;
except
ShowMessage('Ошибка. Все несохраненные действия отменены');
DataModule2.Database1.Rollback;
exit;
end;
DataModule2.Database1.Commit;
end;
procedure TForm10.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)) then key:=#0;
end;
procedure TForm10.FormActivate(Sender: TObject);
begin
Button3.Visible:=true;
Form10.Height:=565;
Button2.Visible:=true;
Button5.Visible:=false;
Edit10.Enabled:=true;
Button4.Visible:=true;
//Edit1.Text:= DecodeDate(Now(), year));
end;
procedure TForm10.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Edit4KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Edit5KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Edit6KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Edit7KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Edit8KeyPress(Sender: TObject; var Key: Char);
begin
if not ((key in['0'..'9'])or (key =#8)or (key =#44)) then key:=#0;
end;
procedure TForm10.Button4Click(Sender: TObject);
var poisk: integer;
begin
if DataModule2.Query10.Fields[0].AsString='' then
begin
ShowMessage('Выберите запись!');
exit;
end;
if MessageDlg('Удалить накладную?', mtInformation, [mbYes,mbNo], 0)=mrYes
then
begin
poisk:=DataModule2.Query10.Fields[0].AsInteger;
DataModule2.Query8.Open;
DataModule2.Query8.Filtered:=false;
DataModule2.Query8.First;
while NOT DataModule2.Query8.Eof do
begin
If DataModule2.Query8.FieldByName('N_zap_Move').AsInteger=poisk then
begin
DataModule2.Query8.Edit;
DataModule2.Query8.FieldByName('Pr_Form').AsBoolean:=false;
DataModule2.Query8.FieldByName('N_zap_Move').AsVariant:=NULL;
DataModule2.Query8.Post;
end;
DataModule2.Query8.Next;
end;
DataModule2.Query8.Close;
DataModule2.Query8.Open;
DataModule2.Query7.Locate('Nzap',poisk,[]);
DataModule2.Query7.Delete;
DataModule2.Query10.Close;
DataModule2.Query10.Open;
DataModule2.Query5.Close;
DataModule2.Query5.Open;
Button2.Visible:=true;
Button5.Visible:=false;
Form10.Height:=565;
Edit10.Enabled:=true;
end;
end;
procedure TForm10.Button3Click(Sender: TObject);
var zapis: integer;
Excel: Variant;
begin
try
Excel:=CreateOleObject('Excel.Application');
Excel.Workbooks.Open['C:\РАТЕП\Накладная.xls'];
except
ShowMessage('Шаблон накладной не найден');
exit;
end;
zapis:=DataModule2.Query10.FieldbyName('Nzap').AsInteger;
DataModule2.Query10.Close;
DataModule2.Query10.Open;
DataModule2.Query10.Locate('Nzap',zapis, []);
Excel.Range['BQ2']:=DataModule2.Query10.FieldByName('N_Nakl').AsString; //Номер накладной
Excel.Range['M5']:='ОАО "РАТЕП"'; //Организация
Excel.Range['AH9']:=DateToStr(DataModule2.Query10.FieldByName('D_form').AsDateTime); //Дата составления
//Excel.Range['BC9']:=Edit1.Text; //Структурное подразделение отправителя
Excel.Range['CG9']:=DataModule2.Query10.FieldByName('Naim').AsString; //Структурное подразделение получателя
//Excel.Range['L11']:=Edit2.Text; //Основание
Excel.Range['G12']:=DataModule2.Query10.FieldByName('Naim').AsString;
//Кому
//Excel.Range['CH12']:=Edit3.Text; //Через кого
Excel.Range['Y17']:=DataModule2.Query10.FieldByName('Naim_1').AsString; //Наименование,сорт,размер,марка
Excel.Range['AU17']:=DataModule2.Query10.FieldByName('Kod').AsString; //Код единицы измерения
Excel.Range['BB17']:=DataModule2.Query10.FieldByName('Naim_2').AsString; //Наименование единицы измерения
Excel.Range['BW17']:=DataModule2.Query10.FieldByName('Sdano').AsString; //Отпущено (количество)
// Excel.Range['Q28']:=Edit4.Text; //Отпуск разрешил (должность)
// Excel.Range['AM28']:=Edit5.Text; //Отпуск разрешил (расшифровка подписи)
// Excel.Range['J31']:=Edit6.Text; //Отпустил (должность)
// Excel.Range['AD31']:=Edit7.Text; //Отпустил (расшифровка подписи)
// Excel.Range['DA28']:=Edit8.Text; //Главный бухгалтер (расшифровка подписи)
Excel.Visible:= True;
end;
procedure TForm10.Button5Click(Sender: TObject);
begin
DataModule2.Query7.FieldbyName('N_Nakl').AsString:=Edit9.Text;
DataModule2.Query7.FieldbyName('Nzap').AsString:=Edit10.Text;
DataModule2.Query7.FieldbyName('D_form').AsDateTime:=DateTimePicker1.Date;
DataModule2.Query7.FieldbyName('Poluch_dr_podr').AsString:=Edit2.Text;
DataModule2.Query7.FieldbyName('Ispolz_predpr').AsString:=Edit3.Text;
DataModule2.Query7.FieldbyName('peredano_nas').AsString:=Edit4.Text;
DataModule2.Query7.FieldbyName('Vyvez1').AsString:=Edit5.Text;
DataModule2.Query7.FieldbyName('Vyvez2').AsString:=Edit6.Text;
DataModule2.Query7.FieldbyName('Oplach_pererab').AsString:=Edit7.Text;
DataModule2.Query7.FieldbyName('Poluch_pererab').AsString:=Edit8.Text;
DataModule2.Query7.Post;
DataModule2.Query7.Active:=false;
DataModule2.Query7.Active:=true;
DataModule2.Query10.Close;
DataModule2.Query10.Open;
Button2.Visible:=true;
Button5.Visible:=false;
Form10.Height:=565;
Edit1.Enabled:=true;
// DBGridEh1.Visible:=true;
Button3.Visible:=true;
Button4.Visible:=true;
end;
procedure TForm10.Button2Click(Sender: TObject);
var find:integer;
begin
if DataModule2.Query10.Fields[0].AsString='' then
begin
ShowMessage('Выберите запись!');
exit;
end;
Button2.Visible:=false;
Button5.Visible:=true;
Form10.Height:=795;
Edit1.Enabled:=false;
Edit1.Text:='';
// DBGridEh1.Visible:=false;
Button3.Visible:=false;
Button4.Visible:=false;
find:=DataModule2.Query10.Fieldbyname('Nzap').AsInteger;
DataModule2.Query7.Open;
DataModule2.Query7.Locate('Nzap',find,[]);
DataModule2.Query7.Edit;
Edit9.Text:=DataModule2.Query7.FieldbyName('N_Nakl').AsString;
Edit10.Text:=DataModule2.Query7.FieldbyName('Nzap').AsString;
DateTimePicker1.Date:=DataModule2.Query7.FieldbyName('D_form').AsDateTime;
Edit2.Text:=DataModule2.Query7.FieldbyName('Poluch_dr_podr').AsString;
Edit3.Text:=DataModule2.Query7.FieldbyName('Ispolz_predpr').AsString;
Edit4.Text:=DataModule2.Query7.FieldbyName('peredano_nas').AsString;
Edit5.Text:=DataModule2.Query7.FieldbyName('Vyvez1').AsString;
Edit6.Text:=DataModule2.Query7.FieldbyName('Vyvez2').AsString;
Edit7.Text:=DataModule2.Query7.FieldbyName('Oplach_pererab').AsString;
Edit8.Text:=DataModule2.Query7.FieldbyName('Poluch_pererab').AsString;
end;
procedure TForm10.Button6Click(Sender: TObject);
begin
DataModule2.Query10.Cancel;
DataModule2.Query10.Close;
DataModule2.Query10.Open;
Button2.Visible:=true;
Button5.Visible:=false;
Form10.Height:=565;
Edit1.Enabled:=true;
//DBGridEh1.Visible:=true;
Button3.Visible:=true;
Button4.Visible:=true;
end;
procedure TForm10.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataModule2.Query10.Close;
DataModule2.Query10.Open;
DataModule2.Query7.Cancel;
end;
end.
unit Unit11;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm11 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form11: TForm11;
implementation
{$R *.DFM}
end.
unit ODBC_Update;
// добавить в проект unit ODBC_Update,
// добавить в головную программу проекта перед созданием модуля данных,
// например - if not ODBC_Info_Update('LXR_PRO','LXR8000','PRO') then Halt(1);
// где параметры - Имя ODBC Алиаса, Имя SQL-Сервера, Имя Базы Данных
interface
uses Windows, Dialogs, SysUtils, Controls, Registry, FileUtil;
var Reg: TRegistry;
function GetCurrentUserName:string; // получение имени текущего пользователя
function ODBC_Info_Update(ODBC_DSN,SqlServer,DataBase:string):boolean; // изменение информации в ODBC-алиасе
implementation
function GetCurrentUserName:string; // получение имени текущего пользователя
const LenUserName = 25;
var UNPTR: PChar;
UNCount: DWord;
UName: String[LenUserName];
begin
UNPTR:=@UName; UNCount:=LenUserName;
GetUserName(@UName,UNCount);
UName:=UNPTR;
GetCurrentUserName:=UName;
end;
function ODBC_Info_Update(ODBC_DSN,SqlServer,DataBase:string):boolean; // изменение информации в ODBC-алиасе
// Параметры: - ODBC_DSN - имя DSN
// - SqlServer - имя SQL-сервера
// - DataBase - имя базы данных на SQL-сервере
var Err: integer;
SQLDriverPath: string; // путь к SQL-драйверу
UserName: String; // текущий пользователь
begin
try
// если заданы параметры в командной строке, то они перекроют параметры при вызове функции
if ParamCount = 3
then begin // считаем, что первый параметр - ODBC DSN, второй - СЕРВЕР, третий - ИМЯ БАЗЫ
ODBC_DSN:=AnsiUpperCase(ParamStr(1));
SQLServer:=AnsiUpperCase(ParamStr(2));
DataBase:=AnsiUpperCase(ParamStr(3));
end;
Err:=0;
Reg:=TRegistry.Create;
{ Системный ODBC DSN не ТРОГАЕМ
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
// поработаем с системным DSN, если есть
Reg.RootKey:=HKEY_LOCAL_MACHINE; // ключ на открытие для чтения
if Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Trim(ODBC_DSN),False) // есть ли ключ?
then begin // ключ есть, может надо сменить СЕРВЕР и БАЗУ ?
if not((Trim(AnsiUpperCase(Reg.ReadString('Server')))=Trim(AnsiUpperCase(SqlServer)))and
(Trim(AnsiUpperCase(Reg.ReadString('Database')))=Trim(AnsiUpperCase(DataBase))))
then begin Reg.WriteString('Database',Trim(AnsiUpperCase(DataBase)));
Reg.WriteString('Server',Trim(AnsiUpperCase(SqlServer)));
ShowMessage('Системный ODBC DSN перенастроен !');
end;
end
else begin Err:=Err+1; // счетчик ошибок
end;
Reg.CloseKey; // закроем предыдущий ключ
}
// поработаем с пользовательским DSN, если есть
Reg.RootKey:=HKEY_CURRENT_USER; // ключ на открытие для чтения
if Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Trim(AnsiUpperCase(ODBC_DSN)),False) // есть ли ключ?
then begin // ключ есть, может надо сменить СЕРВЕР и БАЗУ ?
if not((Trim(AnsiUpperCase(Reg.ReadString('Server')))=Trim(AnsiUpperCase(SqlServer)))and
(Trim(AnsiUpperCase(Reg.ReadString('Database')))=Trim(AnsiUpperCase(DataBase))))
then begin Reg.WriteString('Database',Trim(AnsiUpperCase(DataBase)));
Reg.WriteString('Server',Trim(AnsiUpperCase(SqlServer)));
ShowMessage('Пользовательский ODBC DSN успешно перенастроен !');
end;
end
else begin // нет ключа, создадим пользовательский алиас
UserName:=GetCurrentUserName; // определим текущего пользователя
{
// сначала запомним путь к SQL-драйверу по стандартному алиасу MQIS
Reg.CloseKey; // закроем предыдущий ключ
if Reg.OpenKey('\Software\ODBC\ODBC.INI\MQIS',False)
then begin // есть ключ, запомним путь
SQLDriverPath:=Reg.ReadString('Driver');
end
else begin // ошибка
Err:=Err+1;
end;
}
// если все нормально, создадим новый пользовательский алиас
if Err=0
then begin
Reg.CloseKey; // закроем предыдущий ключ
if
Reg.OpenKey('\Software\ODBC\ODBC.INI\'+Trim(AnsiUpperCase(ODBC_DSN)),True)
then begin // пропишем параметры в пользовательский алиас
SQLDriverPath:=Trim(GetSystemDir)+'\SQLSRV32.dll';
Reg.WriteString('Database',Trim(AnsiUpperCase(DataBase)));
Reg.WriteString('Driver',SQLDriverPath);
Reg.WriteString('LastUser',UserName);
Reg.WriteString('Server',Trim(AnsiUpperCase(SqlServer)));
Reg.WriteString('Trusted_Connection','Yes');
// создадим запись алиаса в списке алиасов
Reg.CloseKey; // закроем предыдущий ключ
if Reg.OpenKey('\Software\ODBC\ODBC.INI\ODBC Data Sources',True)
then begin Reg.WriteString(Trim(AnsiUpperCase(ODBC_DSN)),'SQL Server');
ShowMessage('Пользовательский ODBC DSN успешно добавлен !');
end
else begin // ошибка
Err:=Err+1;
end
end
else begin // ошибка
Err:=Err+1;
end;
end;
end;
if Err<>0 then
ShowMessage('Клиентский ODBC DSN не перенастроен! ');
finally
Reg.CloseKey; Reg.Free; // закончим работу с реестром
end;
ODBC_Info_Update:=True; // все хорошо
end;
end.
2.5 Тестовые данные
Тестовые данные программы представлены в таблице 17.
Таблица 17 - Тестовые данные

Вводимые данные

Реакция программы

Неверный ввод пароля

Ошибка: неправильный пароль или подразделение

Верный ввод пароля

Вход в программу

Пустое ключевое поле при добавлении новой записи в БД или ее изменении

Ошибка: данные не сохранены. Проверьте, все ли поля заполнены и повторите попытку

Верный формат данных при добавлении или изменении записи БД

Сохранение записи (изменения данных записи) в БД

Удаление записи

Просьба подтвердить выбранное действие удаления

Не выбран вид отхода при создании накладной

Ошибка: необходимо сначала выбрать вид отхода

Выбран вид отхода при создании накладной

Создание накладной. Вывод накладной в шаблон MS Excel

Не введено количество, на которое необходимо изменить количество введенного отхода

Ошибка: сначала введите количество

Введено количество, на которое необходимо изменить количество введенного отхода

Изменение количества отхода

Не введен номер накладной при создании накладной

Ошибка: введите номер накладной

Введен номер накладной при создании накладной

Создание накладной

Не введено количество образовавшегося отхода при вводе вновь образовавшегося отхода

Ошибка: введите количество

Введено количество образовавшегося отхода при вводе вновь образовавшегося отхода

Сохранение записи в БД

Удаление пустой записи

Ошибка: выберите запись

Выбрана пустая запись при попытке изменить количество образовавшегося отхода

Ошибка: выберите запись

2.6 Результаты работы программы
Результаты работы программы представлены на рисунках 14-30.
Рис.14 Регистрация подразделения при входе в программу
Рис.15 Главное меню программы
Рис.16 Ввод образовавшегося отхода
Рис.17 Выбор данных для накладной
программа сетевой учет delphi
Рис.18 Заполнение данных накладной
Рис.19 Электронный вид накладной на отпуск материалов на сторону
Рис.20 Журнал учета образования и движения отходов
Рис.21 Ведение журнала учета образования и движения отходов
Рис.22 Электронный вид журнала учета образования и движения отходов
Рис.23 Справочник отходов
Рис.24 Ведение справочника отходов
Рис.25 Справочник организаций
Рис.26 Ведение справочника организаций
Рис.27 Справочник единиц измерения
Рис.28 Ведение справочника единиц измерения
Рис.29 Справка о программе
Рис.30 Справка помощь
3. РУКОВОДСТВО ПО ИСПОЛЬЗОВАНИЮ ПРОГРАММЫ
3.1 Руководство системного программиста
Программа «Автоматизация ведения учета образующихся отходов на предприятии» предназначена для систематизации хранения данных о образовавшихся отходах предприятия, выписки накладных на отпуск материалов на сторону а также составления журнала накладных за год.
Программа выполняет следующие функции:
- добавление, изменение данных;
- удаление данных;
- хранение данных в БД;
- вывод заполненного бланка накладной на отпуск материалов на сторону;
- вывод заполненного журнала выданных накладных за год;
- печать накладной и журнала;
Технические и программные средства, необходимые для нормального функционирования программы следующие:
- процессор Intel;
- принтер;
- оперативная память 128 Кб;
- свободное пространство на жестком диске 5 Мб;
- операционная система Windows XP/Vista;
- пакет Microsoft Office;
- SQL-Server;
Для установки программы необходимо вставить CD-диск в дисковод. Скопировать папку «РАТЕП» на диск С:\\, подключить базу данных PRO к SQL Server (файлы PRO_Data.mdf, PRO_Log.ldf в папке «РАТЕП») и запустить программу с помощью файла OTH.exe.
В структуру приложения входят:
- Файл приложения;
- БД;
- шаблон накладной;
- шаблон журнала.
При запуске программы может появиться сообщение, представленное на рисунке 31.
Рис.31 Сообщение о создании псевдонима.
В случае появления других сообщений необходимо проверить, подключена ли база к серверу. Также ошибку возможно будет устранить созданием псевдонима вручную. Для этого необходимо зайти Пуск - Панель управления - BDE Administrator. Выбрать пункт Object - ODBC Administrator и нажать кнопку «Добавить». Создать псевдоним с именем «XumePka», указав путь к базе PRO.
3.2 Руководство программиста
Программа «Автоматизация ведения учета образующихся отходов на предприятии» предназначена для систематизации хранения данных об образовавшихся отходах предприятия, выписки накладных на отпуск материалов на сторону а также составления журнала накладных за год.
Для организации работы программы необходимы следующие компоненты ПК:
- системный блок;
- монитор;
- клавиатура;
- мышь;
-необходимо около 5 Мб свободного места на диске
Требования к программному обеспечению:
- операционная система Windows XP/Vista;
- пакет Microsoft Office.
Структура файла проекта представлена на рисунке 32.
Размещено на http://www.allbest.ru/
Размещено на http://www.allbest.ru/
Рис.32 Структура файла проекта
Описание модулей программы представлено в таблице 18.
Таблица 18 - Описание модулей программы

Форма

Процедура

Описание

Form1

FormCreate

Загрузка данных на форму

Button4Click

Сохранение записи

Button1Click

Добавление записи

Button2Click

Отмена введенных данных

ComboBox1Change

Изменение единицы измерения

Edit1Change

Поиск данных

RadioGroup1Click

Изменение вида просмотра данных

FormActivate

Установление видимых и невидимых элементов

FormClose

Закрытие формы. Отмена несохраненных изменений

DBEdit2KeyPress

Ввод только цифр

ComboBox1KeyPress

Запрет на ввод

Button3Click

Изменение записи

Edit2Change

Изменение кода единицы измерения

Form3

FormCreate

Загрузка данных на форму

Button1Click

Добавление записи

Button3Click

Отмена введенных данных

Button4Click

Сохранение записи

Edit1Change

Поиск данных

RadioGroup1Click

Изменение вида просмотра данных

FormActivate

Установление видимых и невидимых элементов

Button2Click

Изменение записи

DBEdit1KeyPress

Ввод только цифр

Form4

N2Click

Справочник отходов

N3Click

Справочник организаций

N4Click

Справочник единиц измерения

N7Click

Выход

N9Click

Создание накладной

N8Click

Ввод нового отхода

N6Click

Журнал

N12Click

Справка помощь

N11Click

Справка о программе

Form5

Button1Click

Добавление записи

Button2Click

Отмена введенных данных

Button4Click

Сохранение записи

FormCreate

Загрузка данных на форму

FormActivate

Установление видимых и невидимых элементов

FormClose

Закрытие формы. Отмена несохраненных изменений

DBEdit1KeyPress

Ввод только цифр

Form6

FormCreate

Загрузка данных на форму

ComboBox2Change

Изменение вида отхода

OTHODY

Отбор данных по выбранным критериям

ComboBox1Change

Изменение подразделения

Button5Click

Создание накладной

FormActivate

Установление видимых и невидимых элементов

Edit2KeyPress

Ввод только цифр

Button2Click

Изменение количество отхода

Button1Click

Удаление выбранной записи

Form 7

FormCreate

Загрузка данных на форму

Button1Click

Подтверждение пароля

Form 8

Button1Click

Открытие справочника организаций

FormActivate

Установление видимых и невидимых элементов

Button2Click

Создание накладной

DBEdit3KeyPress

Ввод только цифр

DBEdit4KeyPress

Ввод только цифр

DBEdit8KeyPress

Ввод только цифр

DBEdit10KeyPress

Ввод только цифр

DBEdit11KeyPress

Ввод только цифр

DBEdit12KeyPress

Ввод только цифр

DBEdit7KeyPress

Ввод только цифр

Edit11KeyPress

Ввод только цифр

Form 9

FormCreate

Загрузка данных на форму

Button1Click

Открытие справочника отходов

DBEdit1Change

Изменение вида отхода

Button2Click

Ввод отхода

Edit1KeyPress

Ввод только цифр

FormActivate

Установление видимых и невидимых элементов

ComboBox1KeyPress

Запрет ввода

Form 10

Edit1Change

Выбор данных по введенному году

Button1Click

Вывод журнала

Edit1KeyPress

Ввод только цифр

FormActivate

Установление видимых и невидимых элементов

Edit2KeyPress

Ввод только цифр

Edit3KeyPress

Ввод только цифр

Edit4KeyPress

Ввод только цифр

Edit5KeyPress

Ввод только цифр

Edit6KeyPress

Ввод только цифр

Edit7KeyPress

Ввод только цифр

Edit8KeyPress

Ввод только цифр

Button4Click

Удаление записи

Button3Click

Просмотр накладной

Button5Click

Сохранение записи

Button2Click

Изменение записи

Button6Click

Отмена введенных данных

FormClose

Отмена несохраненных данных

3.3 Руководство оператора
3.3.1 Запуск программы.
Для запуска программы необходимо дважды щелкнуть левой кнопкой мыши по файлу OTH.exe. Для входа в программу необходимо зарегистрировать пользователя в открывшемся окне. Необходимо выбрать подразделения и ввести пароль. Если вы все ввели правильно, то откроется главное меню программы, в противном случае программа выдаст соответствующую ошибку.
3.3.2 Главное меню
Главное меню содержит следующие пункты:
- ввод нового отхода
- создание накладной
- журнал
- справочники отходов, организаций и единиц измерения
- справка о программе и помощь
- выход
Рассмотрим каждый пункт меню.
3.3.2.1 Ввод нового отхода
Для ввода вновь образовавшегося отхода необходимо выбрать вид отхода из справочника отходов, нажав на соответствующую кнопку (выделить необходимую запись и закрыть справочник), и ввести его количество (также необходимо выбрать подразделение если вход осуществлялся в качестве администратора).
После заполнения всех полей необходимо нажать кнопку «Ввод» и запись добавится в БД.
3.3.2.2 Создание накладной
По мере накопления отходов необходимо создавать накладные. Для создания накладной необходимо выбрать определенные записи. Выборка записей осуществляется с помощью раскрывающегося списка «Вид отхода». Также просмотреть записи можно и с помощью списка подразделений.
Выбрав вид отхода, на который необходимо создать накладную, вы можете увидеть общую сумму образовавшегося отхода. На форме также имеются кнопки удаления отхода и изменения количества.
При нажатии на кнопку «В накладную» откроется форма заполнения данных для будущей накладной. Необходимо ввести номер накладной, выбрать организацию (кому будет выписана накладная) из справочника организаций (выделить необходимую запись и закрыть справочник), и заполнить необходимые оставшиеся поля. После заполнения необходимо нажать кнопку «Создать накладную», после чего заполненный шаблон накладной на отпуск материалов на сторону, который можно распечатать, появится на экране
3.3.2.3 Журнал
Каждый год необходимо составлять журнал учета образования и движения отходов. Для вывода электронного журнала необходимо ввести год, за который необходимо создать журнал (либо оставить поле пустым для вывода всех введенных накладных) и нажать кнопку «Вывод журнала», после чего заполненный шаблон журнала учета образования и движения отходов, который можно распечатать, появится на экране.
Также с данной формы можно просмотреть выбранную накладную, нажав на соответствующую кнопку, также изменить или удалить ее.
3.3.2.4 Справочники
Для хранения данных об организациях, единицах измерения и видах отходов существуют справочники. Справочники имеют три режима просмотра: все; все, кроме удаленных; только удаленные, т.к. данные в базе не удаляются, а лишь помечаются как неиспользуемые (удаленные). Также можно изменить запись (и восстановить из удаленных) или воспользоваться поиском, введя требуемые данные в соответствующее поле.
3.3.2.5 Справка
Справка поможет вам разобраться с работой программы и посмотреть данные о создателе.
3.3.2.6 Выход
Выход из программы осуществляется путем нажатия на кнопку «Выход» главного меню. При работе с программой могут появляться сообщения, представленные на рисунках 33-43.
Рис. 33 Не введено количество при изменении
Рис. 34 Не введен номер накладной при ее создании
Рис.35 Не выбрана запись
Рис.36 Добавлен новый вид отхода
Рис.37 Изменено количество отхода
Рис.38 Успешное создание накладной
Рис.39 Попытка изменения пустой записи
Рис.40 Попытка удаления пустой записи
Рис.41 Подтверждение удаления записи
Рис.42 Подтверждение удаления накладной
Рис.43 Не найден шаблон накладной или журнала
4. ЭКОНОМИЧЕСКИЙ РАЗДЕЛ
4.1 Расчет полной себестоимости программы
4.1.1 Исходные данные для расчетов стоимости материалов
Данные для расчетов стоимости материалов представлены в таблице 19.
Таблица 19 - Данные для расчета стоимости материалов

Наименование товара

Единица измерения

Количество

Цена за единицу измерения, руб

Диск CD-R

шт.

1,00

9,00

Данные для расчета заработной платы представлены в таблице 20.
Таблица 20 - Данные для расчета заработной платы

Виды работ

Оклад с премией, руб

Стоимость 1 часа работы, руб

Время работы, час

Разработка программы

8500,00

51,20

95,00

Отладка программы

6250,00

37,65

75,00

Данные для расчета расходов на содержание оборудования и нематериальных активов представлены в таблице 21.
Таблица 21 - Данные для расчета расходов на содержание оборудования и нематериальных активов

Наименование оборудования

Стоимость, руб

Срок службы, час

Стоимость эксплуатации оборудования за 1 час, руб

Время работы, час

Системный блок типа IBM PC

13000,00

5280,00

2,50

170,00

Монитор FLATRON

4500,00

5280,00

0,90

170,00

Операционная система Windows XP

3700,00

5280,00

0,70

170,00

Система программирования Delphi 5

8000,00

5280,00

1,50

170,00

MS Office

2900,00

5280,00

0,60

5,00

Данные для расчета расходов электроэнергии представлены в таблицу 22.
Таблица 22 - Данные для расчета расхода электроэнергии

Наименование оборудования

Мощность, кВт

Время работы, час

Системный блок типа IBM PC

0,250

170,00

Монитор FLATRON

0,085

170,00

Транспортно-заготовительные расходы на материалы 5%
Отчисления на социальные нужды 26,5%
Дополнительная заработная плата 12%
Накладные расходы 120%
Стоимость 1 кВт*ч электроэнергии 2,76 руб.
4.1.2 Расчет полной себестоимости программы
Расчет полной себестоимости производится по формуле:
ПС=СМ+ЗПо+ЗПд+ОС+РО+Э+НР, (2)
где ПС - полная (коммерческая) себестоимость, руб;
СМ - стоимость материалов, руб;
ЗПо - зарплата основная программиста, руб;
ЗПд - зарплата дополнительная программиста, руб;
ОС - отчисления на социальные нужды, руб;
РО - расходы на содержание и эксплуатацию технологического оборудования и нематериальных активов, руб;
Э - стоимость потребляемой электроэнергии, руб;
НР - накладные расходы, руб.
Расчет стоимости материалов представлены в таблице 23.
Таблица 23 -Расчет стоимости материалов

Наименование товара

Единица измерения

Количество

Цена за единицу измерения, руб.

Стоимость, руб

Диск CD-R

шт.

1,00

9,00

9,00

Стоимость материалов рассчитывается по формуле:
, (3)
где СМ - стоимость материалов, руб;
mi - норма расхода i-го материала на единицу изделия;
Цi - цена единицы i-го материала, руб;
%ТЗРм - транспортно-заготовительные расходы на материалы.
СМ=9,45 руб.
Расчет заработной платы в таблице 24.
Таблица 24 - Расчет заработной платы

Виды работ

Оклад, руб

Стоимость 1 часа работы, руб

Время работы,

час

Заработная плата по видам работ, руб

Разработка программы

8500,00

51,20

95,00

4864,00

Отладка программы

6250,00

37,65

75,00

2823,75

Итого

7687,75

Заработная плата основная ЗПо = 7687,75 руб.
Заработная плата дополнительная рассчитывается по формуле:
, (4)
где ЗПд - заработная плата дополнительная, руб;
ЗПо - заработная плата основная, руб;
%ЗПд - процент дополнительной зарплаты.
ЗПд=922,53 руб.
Отчисления на социальные нужды рассчитываются по формуле:
, (5)
где ОС - отчисления на социальные нужды, руб;
ЗПо - зарплата основная, руб;
ЗПд - зарплата дополнительная, руб;
%ОС - процент отчислений на социальные фонды.
ОС=2281,72 руб.
Расчет расхода на содержание оборудования и нематериальных активов представлен в таблице 25.
Таблица 25 - Расчет расхода на содержание оборудования и нематериальных активов

Наименование оборудования

Стоимость, руб

Срок службы, час

Стоимость эксплуатации оборудования за 1 час, руб

Время работы, час

Износ за время работы, руб

Системный блок типа IBM PC

13000,00

5280,00

2,50

170,00

425,00

Монитор FLATRON

4500,00

5280,00

0,90

170,00

153,00

Операционная система Windows XP

3700,00

5280,00

0,70

170,00

119,00

Система программ-мирования Delphi 5

8000,00

5280,00

1,50

170,00

255,00

MS Office

2900,00

5280,00

0,60

5,00

3,00

Итого

955,00

Расходы на содержание и эксплуатацию оборудования и нематериальных активов РО=955,00 руб.
Расчет расходов на электроэнергию представлен в таблице 26.
Таблица 26 - Расчет расходов на электроэнергию

Наименование оборудования

Мощность, кВт

Время работы, час

Потребленная мощность, кВт*ч

Системный блок типа IBM PC

0,250

170,00

42,50

Монитор FLATRON

0,085

170,00

14,45

Итого

56,95

Стоимость электроэнергии составит:
Э=157,18 руб.
Накладные расходы рассчитываются по формуле:
, (7)
где НР - накладные расходы, руб;
ЗПо - основная зарплата, руб;
РО - расходы на содержание и эксплуатацию оборудования, руб;
%НР - процент накладных расходов.
НР=10370,40 руб.
Полная себестоимость программы:
ПС = 9,45+7687,75+922,53+2281,72+955,00+157,18+10370,40;
ПС=22374,28 руб.
Калькуляция полной себестоимости представлена в таблице 27.
Таблица 27 - Калькуляция полной себестоимости программы

Статьи затрат

Затраты, руб.

Стоимость материалов

9,45

Основная заработная плата

7687,75

Дополнительная заработная плата

922,53

Отчисления на социальные нужды

2281,72

Расходы на содержание и эксплуатацию оборудования

955,00

Расход на электроэнергию

157,18

Накладные расходы

10370,40

Полная себестоимость

22384,03

5. РАЗДЕЛ ОХРАНЫ ТРУДА
5.1 Задачи центра информационных технологий ОАО «Ратеп»

Основной задачей ЦИТ-88 является комплексная автоматизация управления всеми видами деятельности предприятия, обеспечение качества обрабатываемой и выдаваемой информации пользователям, соблюдение требований стандартов по охране окружающей среды.

5.2 Структурные подразделения вычислительного центра предприятия

В состав ЦИТ-88 входят:

- отдел по работе с клиентами;

- отдел информационной поддержки изделий;

- отдел разработки и сопровождения КИС;

- технический отдел;

- центральный склад СВТ;

- функции подразделения;

5.3 Функции центра информационных технологий

5.3.1 В области производственной автоматизации:

- разработка и исполнение целевых программ развития систем автоматизации производственных процессов с целью повышения эффективности использования оборудования с ЧПУ, создания и поддержки автоматизированных производств (АП), участков;

- обеспечение, поддержка и организация процесса разработки электронной технической документации (ЭТД) конструкторского и технологического назначения в целях внедрения новых технологий планирования и управления производством;

- обеспечение, поддержка и организация работы непосредственных разработчиков ЭТД по правилам, отвечающим действующей на предприятии НТД и обеспечивающим возможность дальнейшего целевого использования производимой электронной информации заинтересованными в ней службами предприятия, в соответствии с предъявляемыми этими службами требованиями, исходя из их целей и задач;

- взаимосвязь с непосредственными разработчиками ЭТД и заинтересованными в ней службами, решение вопросов и проблем, возникающих на этом уровне с учётом соответствующих норм, правил и интересов сторон;

- организация процессов обучения пользователей стандартным методам пользования и дальнейшего углублённого освоения ими внедряемых и внедрённых средств автоматизированной разработки ЭТД;

- оказание оперативной методической и практической помощи в создании конкретных документов, которое требует от пользователя более глубокого знания возможностей программ, помощь в организации и формировании базы типовых фрагментов ЭТД;

- обеспечение взаимодействия в части обмена электронной конструкторской информацией с НИИ и сторонними КБ-проектантами;

- постоянное углубление собственных навыков работы с применяемыми на предприятии программными продуктами, поиск наиболее эффективных и оптимальных методов работы в них и их распространение для всех пользователей;

- обеспечение и поддержка участия разработчика технической документации в сквозном процессе формирования информации об изделиях;

- разработка и внедрение методических руководств, инструкций, рекомендаций, регламентирующих специфику разработки, оформлению и прохождению ЭТД;

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

- изучение, анализ и тестирование новых программ конструкторского и технологического назначения, участие в принятии решений по целесообразности приобретения тех или иных программ;

- выбор, освоение и внедрение современных программных средств проектирования ЭТД, моделирования процесса обработки деталей на СЧПУ, автоматизированного управления оборудованием с ЧПУ, определение программной политики предприятия в этой сфере;

- изучение опыта сторонних организаций, проработка возможности его применения на предприятии, знание перспектив и направлений развития средств автоматизации конструкторской и технологической подготовок производства, передового отечественного и зарубежного опыта автоматизации производственных процессов.

5.3.2 В области информационных технологий

5.3.2.1 В области PDM-систем и электронного документооборота:

- управление PDM, ее администрирование, информационная безопасность PDM;

- координация взаимной работы PDM в рамках интегрированной информационной среды предприятия;

- решение вопросов структурной организации данных стандартных изделий, технологических переходов и т.д.

5.3.2.2 В области методологии использования CALS-технологий

- формирование нормативной базы методологии использования PDM, электронного документооборота на предприятии;

- моделирование бизнес-процессов автоматизированного проектирования с учетом работы в PDM;

- решение вопросов использования системы каталогизации и кодификации в рамках PDM-системы и электронного документооборота.

5.3.2.3 В области проектирования и сопровождения КИС

- реинжениринг бизнес-процессов на основе методов IDEF;

- разработка, внедрение и сопровождение КИС РАТЕП;

- разработка, внедрение и эксплуатация комплексов задач по освоению производства новых и совершенствованию выпускаемых изделий и технологических процессов;

- запуск в производство новых изделий;

- сопровождение изделий, находящихся в производстве;

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

- систематический анализ, выявление и мобилизация внутренних резервов для снижения затрат на разработку алгоритмов и программ;

- разработка и доведение до цехов заданий по выполнению заводской производственной программы;

- учёт выполнения производственных заданий;

- расчёты трудовых затрат, объёмных и количественных показателей;

- автоматизация комплекса бухгалтерских задач;

- разработка и сопровождение комплексов задач по управлению кадрами всех категорий работающих на предприятии;

- администрирование и сопровождение баз данных по направлениям.

5.3.2.4 В области технического обеспечения

- поддержание в рабочем состоянии всего парка СВТ предприятия;

- установка, техническое обслуживание, ремонт и модернизация СВТ, сетевого оборудования, периферийных устройств;

- ввод в эксплуатацию новой техники;

- тестовые проверки и диагностика СВТ;

- участие в разработках проектов ЦИТ-88;

- централизованное приобретение, установка, сопровождение лицензионного системного программного обеспечения;

- внедрение и контроль нормального функционирования информационно-вычислительных сетей (ЛВС) предприятия;

- разработка новых проектов и модернизация корпоративной ЛВС предприятия;

- системно- техническая поддержка корпоративной ЛВС;

- техническая поддержка серверного и сетевого оборудования предприятия;

- администрирование ЛВС;

- установка и сопровождение программного обеспечения Cisсo IOS, ISA Server, Arc Server 2000, Linux, SendMail и их развитие;

- реализация и внедрение средств и методов защиты ЛВС от вирусов;


Подобные документы

  • Проектирование программного продукта. Разработка базы данных средствами Microsoft Access. Разработка прикладных решений для информационной системы 1С: Предприятие 8.2. Изучение первичной, вторичной документации. Автоматизация учета и управление компанией.

    курсовая работа [1,4 M], добавлен 14.12.2017

  • Разработка программного обеспечения для автоматизации процесса учета поступления и формирования заказов. Построение реляционной базы данных средствами Microsoft Access. Методы повышения эффективности организации информационных потоков на предприятии.

    дипломная работа [1,9 M], добавлен 02.12.2012

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

    курсовая работа [537,6 K], добавлен 18.09.2014

  • Принципы, цели и задачи автоматизации деятельности предприятия. Особенности процессов документооборота и их взаимосвязь на предприятии, занимающимся утилизацией опасных отходов. Разработка объектов конфигурации, их назначение в системе "1С:Предприятие".

    дипломная работа [2,7 M], добавлен 11.10.2013

  • Выбор системы программирования. Разработка программного обеспечения для ведения складского учета (инвентаризации) персональных компьютеров и комплектующих на предприятии. Обоснование даталогической модели данных. Рекомендации по применению программы.

    курсовая работа [1,9 M], добавлен 14.01.2013

  • Требования и порядок учета клиентов в современном бизнесе. Обзор современного рынка программных продуктов, предназначенных для автоматизации системы взаимоотношений с клиентами. Разработка и внедрение программного комплекса на предприятии ООО ТСС НН.

    дипломная работа [2,9 M], добавлен 15.09.2012

  • Автоматизация ведения учета товаров в программе "1С: Предприятие". Учет товаров для фирмы, занимающейся куплей-продажей продовольственных товаров. Ввод сведений об организации. Настройка параметров учета. Оформление поступления в организацию товаров.

    дипломная работа [2,0 M], добавлен 02.07.2014

  • Цель и основные составные части автоматизации. Характеристика ее объекта. Описание концептуальной модели предметной области. Обоснование выбора программного обеспечения. Разработка программы в среде Borland Delphi 7. Общий алгоритм работы приложения.

    курсовая работа [368,6 K], добавлен 21.05.2015

  • Описание складского учета ООО "Курочка рядом". Проведение инвентаризации на предприятии и возможности его автоматизации. Разработка программного обеспечения подсистемы складского учета. Описание задач разработанной подсистемы и средств ее взаимодействия.

    дипломная работа [3,8 M], добавлен 12.04.2012

  • Создание автоматизированной системы ведения оперативного учета на предприятии. Требования к составу и параметрам программно-технических средств. Выполнение программной части посредством интегрированной среды разработки MS Access с приложением Delphi.

    дипломная работа [4,2 M], добавлен 21.10.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.