Помощь в написании студенческих работ
Антистрессовый сервис

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

РефератПомощь в написанииУзнать стоимостьмоей работы

Основные справочники имеют одинаковую организацию для удобства пользователя и содержат в себе: табличную часть с конкретными данными для каждого справочника и кнопки управления Кнопки управления присутствуют на всех формах программы. (рисунок 6) в верхней части. Заполнения справочников «Оборудование» и списка операций с уже указанными нормами времени, можно автоматически воспользовавшись импортом… Читать ещё >

Программно-технические средства при использовании программы (реферат, курсовая, диплом, контрольная)

Для использования программы необходимы следующие программно-технические средства:

Аппаратная часть предусматривает использование следующего оборудования:

  • — процессор не ниже…533 MHz
  • — объём оперативной памяти не ниже…1Gb
  • — жесткий диск…5 Gb
  • — монитор
  • — клавиатура
  • — мышь
  • — принтер

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

  • — Операционная система MS Windows ME, XP, 2000, 2003.
  • — Архиватор.
  • — Установленный пакет Microsoft Offise 2003.

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

Программа «Расчет нормы времени» разработана в среде программирования Borland Delphi 7.0 под управлением операционной системы Windows XP.

Структурное содержание директории программы

В корневом каталоге программы содержатся следующие файлы и подкаталоги:

  • · Project. exe — файл программы;
  • · Icons — каталог содержащий иконки;
  • · time. dbe — база данных;
  • · Наряд. xls — шаблон документа «Наряд на сдельные работы».

Запуск программы

Запускается программа из корневого каталога, файл Project.exe.

Завершение работы программы

Завершить работу с программой можно в любой момент времени. Чтобы завершить работу с программой нужно нажать на крестик в правом верхнем углу формы, либо выбрать пункт меню «Файл» — «Завершение работы».

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

После запуска файла на экране появится главная форма работы программы, на которой расположены меню и дублирующие его кнопки операций (рисунок 5).

Для продолжения работы необходимо выбрать один из пунктов меню.

Перед тем, как начать работу с программой, следует заполнить начальные справочники «Цеха и подразделения», «Должности», «Сотрудники», «Оборудование», «Классификаторы», выбрав соответствующие пункты меню.

Выбрав пункт меню «Справочники» — «Номенклатура» или нажатием на дублирующую кнопку на панели откроется окно справочника номенклатуры (рисунок 3).

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

Выбрав пункт меню «Справочники» — «Покупатели» или нажатием на дублирующую кнопку на панели откроется окно справочника покупателей (рисунок 4).

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

Выбрав пункт меню «Справочники» — «Производители» или нажатием на дублирующую кнопку на панели откроется окно справочника производителей (рисунок 5).

Рис. 3 Общий вид окна справочника номенклатуры

Выбрав пункт меню «Справочники» — «Производители» или нажатием на дублирующую кнопку на панели откроется окно справочника производителей (рисунок 5).

Рис. 4 Общий вид окна справочника покупатели

Выбрав пункт меню «Справочники» — «Производители» или нажатием на дублирующую кнопку на панели откроется окно справочника производителей (рисунок 5).

Общий вид окна справочника производители, продолжение.

Рис. 5 Общий вид окна справочника производители, продолжение

Основные справочники имеют одинаковую организацию для удобства пользователя и содержат в себе: табличную часть с конкретными данными для каждого справочника и кнопки управления Кнопки управления присутствуют на всех формах программы. (рисунок 6) в верхней части.

Общий вид окна справочника.
Программно-технические средства при использовании программы.
Программно-технические средства при использовании программы.
Программно-технические средства при использовании программы.

Описание функций панели справочников:

  • 1 — Добавление новой записи;
  • 2 — Удаление текущей записи;
  • 3 — Редактирование текущей записи;
  • 4 — Принятие изменений (активно только в режиме добавления или редактирования);
  • 5 — Отмена изменений (активно только в режиме добавления или редактирования);
  • 6 — Обновляет справочник.

Заполнения справочников «Должности», «Цеха и подразделения», «Сотрудники» можно автоматически воспользовавшись импортом данных из 1С: Предприятия для этого необходимо выбрать пункт меню Файл, Импорт, 1С: Предприятие:

диалога.

Рисунок диалога.

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

Для расчета нормы времени необходимо ввести данные по операциям.

Для этого необходимо выбрать пункт меню Операции, Нормы рабочего времени.

Заполнения справочников «Оборудование» и списка операций с уже указанными нормами времени, можно автоматически воспользовавшись импортом данных из Архив — Autoproject для этого необходимо пункт меню Файл, Импорт, Архив — Autoproject.

диалога.

Рисунок диалога.

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

Рисунок.

Рисунок.

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

После ввода документов возможна печать отчета «Наряд на сдельные работы».

Для печати отчета необходимо открыть форму «Наряд на сдельные работы», выбрать интересующего сотрудника и нажать на кнопку «Наряд на сдельные работы». После чего откроется Microsoft Excel с формой документа.

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

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

unit Unit1;

interface.

uses.

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

Dialogs, ImgList, ActnList, XPStyleActnCtrls, ActnMan, ToolWin,.

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

Grids, DBGrids, DBTables, Buttons, ExtCtrls;

type.

TForm1 = class (TForm).

ImageList1: TImageList;

ActionMainMenuBar1: TActionMainMenuBar;

ActionManager1: TActionManager;

Action1: TAction;

Action2: TAction;

OpenDialog1: TOpenDialog;

Action3: TAction;

Action4: TAction;

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

ADOTable2: TADOTable;

ADOTable3: TADOTable;

ADOTable4: TADOTable;

ADOTable5: TADOTable;

Action5: TAction;

Action6: TAction;

Action7: TAction;

Action8: TAction;

OpenDialog2: TOpenDialog;

Table1: TTable;

Table2: TTable;

ADOTable6: TADOTable;

ADOTable7: TADOTable;

DataSource1: TDataSource;

ADOTable8: TADOTable;

DataSource2: TDataSource;

ADOTable9: TADOTable;

Action9: TAction;

Action10: TAction;

Action11: TAction;

Action12: TAction;

Panel1: TPanel;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

Bevel1: TBevel;

SpeedButton3: TSpeedButton;

SpeedButton4: TSpeedButton;

procedure Action1Execute (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Action2Execute (Sender: TObject);

procedure Action3Execute (Sender: TObject);

procedure Action4Execute (Sender: TObject);

procedure Action5Execute (Sender: TObject);

procedure Action6Execute (Sender: TObject);

procedure Action7Execute (Sender: TObject);

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

procedure Action8Execute (Sender: TObject);

function WinToDos (St: string): string;

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

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

procedure Action9Execute (Sender: TObject);

procedure Action10Execute (Sender: TObject);

procedure Action11Execute (Sender: TObject);

private.

{ Private declarations }.

public.

{ Public declarations }.

end;

var.

Form1: TForm1;

StartDir:String;

XL: variant;

XLPic, XlSheet: OleVariant;

implementation.

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

{$R *.dfm}.

procedure Delay (Value: Cardinal);

var.

F, N: Cardinal;

begin.

N:= 0;

while N <= (Value div 10) do.

begin.

SleepEx (1, True);

Application.ProcessMessages;

Inc (N);

end;

F:= GetTickCount;

repeat.

Application.ProcessMessages;

N:= GetTickCount;

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

end;

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

var.

f:boolean;

begin.

f:=false;

Table.First;

while not (Table.Eof) do begin.

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

f:=true;

Break;

end else Table. Next;

end;

Result:=f;

end;

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

begin.

Table.Active:=false;

repeat.

until FileExists (TName);

Table.TableName:=TName;

Table.Active:=true;

end;

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

var.

Ch: PChar;

begin.

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

AnsiToOem (PChar (St), Ch);

Result:= Ch;

StrDispose (Ch);

end;

procedure TForm1. Action1Execute (Sender: TObject);

var.

Frm: TForm2;

begin.

if Action1. Tag=1 then begin.

frm:= TForm2. Create (Owner);

Action1.Tag:=0;

end;

end;

procedure TForm1. FormCreate (Sender: TObject);

var s: string;

begin.

StartDir:=GetCurrentDir;

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

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

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

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

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

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

ADOConnection1.Connected:=false;

ADOConnection1.ConnectionString:=s;

ADOConnection1.Connected:=true;

ADOTable1.Active:=false;

ADOTable2.Active:=false;

ADOTable3.Active:=false;

ADOTable4.Active:=false;

ADOTable5.Active:=false;

ADOTable6.Active:=false;

ADOTable7.Active:=false;

ADOTable8.Active:=false;

ADOTable9.Active:=false;

ADOTable1.Active:=true;

ADOTable2.Active:=true;

ADOTable3.Active:=true;

ADOTable4.Active:=true;

ADOTable5.Active:=true;

ADOTable6.Active:=true;

ADOTable7.Active:=true;

ADOTable8.Active:=true;

ADOTable9.Active:=true;

end;

procedure TForm1. Action2Execute (Sender: TObject);

var i, st: integer;

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

error, ok: boolean;

begin.

if OpenDialog1. Execute then begin.

NFile:=OpenDialog1.FileName;

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

XL.DisplayAlerts:= false;

XL.WorkBooks.Open (NFile);

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

XL.Visible:= false;

i:=7; st:=1;

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

error:=false;

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

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

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

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

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

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

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

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

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

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

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

if ADOTable1. IsEmpty then begin.

ADOTable1.Insert;

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

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

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

ADOTable1.Post;

end else.

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

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

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

then begin.

ADOTable1.Edit;

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

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

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

ADOTable1.Post;

end;

if ADOTable2. IsEmpty then begin.

ADOTable2.Insert;

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

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

ADOTable2.Post;

end else.

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

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

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

then begin.

ADOTable2.Edit;

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

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

ADOTable2.Post;

end;

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

if ADOTable4. IsEmpty then begin.

error:=true;

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

end else.

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

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

if ADOTable5. IsEmpty then begin.

error:=true;

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

end else.

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

if error then.

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

else begin.

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

if ADOTable3. IsEmpty then begin.

ADOTable3.Insert;

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

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

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

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

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

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

ADOTable3.Post;

end else.

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

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

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

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

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

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

then begin.

ADOTable3.Edit;

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

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

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

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

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

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

ADOTable3.Post;

end;

end;

i:=i+1;

end;

XL.ActiveWorkbook.Close;

XL.Application.Quit;

end;

end;

procedure TForm1. Action3Execute (Sender: TObject);

var.

Frm: TForm3;

begin.

if Action3. Tag=1 then begin.

frm:= TForm3. Create (Owner);

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

frm.DataSource1.DataSet:=Frm.ADOTable1;

Action3.Tag:=0;

end;

end;

procedure TForm1. Action4Execute (Sender: TObject);

var.

Frm: TForm3;

begin.

if Action4. Tag=1 then begin.

frm:= TForm3. Create (Owner);

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

frm.DataSource1.DataSet:=Frm.ADOTable2;

Action4.Tag:=0;

end;

end;

procedure TForm1. Action5Execute (Sender: TObject);

begin.

Close;

end;

procedure TForm1. Action6Execute (Sender: TObject);

var.

Frm: TForm3;

begin.

if Action6. Tag=1 then begin.

frm:= TForm3. Create (Owner);

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

frm.DataSource1.DataSet:=Frm.ADOTable3;

Action6.Tag:=0;

end;

end;

procedure TForm1. Action7Execute (Sender: TObject);

var.

Frm: TForm4;

begin.

if Action7. Tag=1 then begin.

frm:= TForm4. Create (Owner);

Action7.Tag:=0;

end;

end;

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

begin.

Action:=caFree;

Form1.Action7.Tag:=1;

end;

procedure TForm1. Action8Execute (Sender: TObject);

var f: string;

files:TextFile;

find:boolean;

begin.

if OpenDialog2. Execute then begin.

f:=OpenDialog2.FileName;

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

Rewrite (files);

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

writeln (files, WinToDos ('del «'+StartDir+' emp*.*» /q /f'));

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

CloseFile (files);

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

Delay (3000);

WinExec (PChar (StartDir+'7z.exe eo" '+StartDir+' emp" «'+f+'» '), 0);

Delay (3000);

ConectionTable (Table1, StartDir+' empDET_MEX.db');

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

if ADOTable6. IsEmpty then begin.

ADOTable6.Insert;

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

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

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

ADOTable6.Post;

end else.

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

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

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

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

then begin.

ADOTable6.Edit;

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

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

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

ADOTable6.Post;

end;

ConectionTable (Table2, StartDir+' empOP_MEX.db');

Table2.First;

while not (Table2.Eof) do begin.

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

if ADOTable7. IsEmpty then begin.

ADOTable7.Insert;

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

ADOTable7.Post;

end;

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

if not (find) then begin.

ADOTable8.Insert;

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

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

ADOTable8.Post;

end else.

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

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

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

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

then begin.

ADOTable8.Edit;

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

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

ADOTable8.Post;

end;

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

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

if not (find) then begin.

ADOTable9.Insert;

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

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

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

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

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

ADOTable9.Post;

end else.

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

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

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

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

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

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

then begin.

ADOTable9.Edit;

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

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

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

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

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

ADOTable9.Post;

end;

Table2.Next;

end;

end;

end;

procedure TForm1. Action9Execute (Sender: TObject);

var.

Frm: TForm3;

begin.

if Action9. Tag=1 then begin.

frm:= TForm3. Create (Owner);

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

frm.DataSource1.DataSet:=Frm.ADOTable4;

Action9.Tag:=0;

end;

end;

procedure TForm1. Action10Execute (Sender: TObject);

var.

Frm: TForm5;

begin.

if Action10. Tag=1 then begin.

frm:= TForm5. Create (Owner);

Action10.Tag:=0;

end;

end;

procedure TForm1. Action11Execute (Sender: TObject);

var.

Frm: TForm7;

begin.

if Action11. Tag=1 then begin.

frm:= TForm7. Create (Owner);

Action11.Tag:=0;

end;

end;

end.

Приложение 2

Показать весь текст
Заполнить форму текущей работой