Помещения, в которых проводятся работы с использованием персональных компьютеров, а также сами компьютеры содержат большое количество горючих и легковоспламеняющихся материалов. Поэтому, для устранения опасности возникновения пожара при оборудовании и эксплуатации помещений, предназначенных для работы с ПЭВМ, следует соблюдать “Правила пожарной безопасности Российской Федерации”[2]. В соответствии с этими правилами на 100 м2площади таких помещений должен располагаться минимум 1 огнетушитель углекислого типа.
При работе с персональным компьютером запрещается пользоваться неисправными розетками, соединительными проводами с поврежденной электроизоляцией, а также подключать компьютер в незаземленную электросеть.
Во время работы нельзя открывать системный блок компьютеров, а также любые работающие периферийные устройства. Не рекомендуется также подключать и/или отключать периферийные устройства от работающих ПЭВМ. Кроме того, рекомендуется использовать устройства, контролирующие изменения напряжения на входе в компьютер и другие устройства.
ЗАКЛЮЧЕНИЕ
В процессе работы над данным дипломным проектом мне пришлось столунуться с рядом достаточно сложных проблем, для решения которых пришлось пополнить некоторые теоретические знания и практические знания, как по общей теории баз данных, так и реализации приложений баз данных в среде визуального программирования Delphi. Именно на данную систему программирования и пал мой выбор после получения технического задания, содержащего все требования к функциональным характеристикам программы. Данный выбор не случаен. BorlandDelphi 7.0 является, по-моему грлубочайшему убеждению одной из самых лучших (если не самой лучшей) системой по написанию приложений баз данных. Эта система имеет широкие возможности по реализации СУБД самой различной конфигурации и архитектуры, что в сочетании с гибгим и достаточно структурированным язком программирования ObjectPascal дает Delphiогромное преимущество в сравнении с другими подобными системами.
В процессе разработки программы основная проблема состаяла в организации дружественного пользовательского интерфейса и организации стабильной работы всех функций программы, связанных как непосредственно с функциями управления данными, хранящимися в базе данных, так и связанных с сервисными функциями программы.
Однако, в итоге, после завершения работы над программой, она стала удовлетворять всем требованиям заказчика.
Программа занимает на диске до 15-ти мегабайт. В оперативной памяти программа вместе со всеми загруженными библиотеками DLL занимает 11 килобайт. Так как программа использует технологии баз данных, то это увиличивает требования к свободной оперативной памяти компьютера и минимальным объемом, при котором программа работает с приемлимым быстродействием, составляет 32 мегабайта.
Программа предназначена для автоматизации заполнения первичной документации, хранения информации об этой документации в базе данных, а так же для обработки этой информации. Программа, как отмечалось выше, удовлетворяет всем требованиям заказчика и при ее использовании заметно снижается трудоемкость и время заполнения необходимой документации. Более того, как показано в главе 4 написание данной программы является рентабельным проектом, а значит, приносит реальную прибыль предпритию, использующею ее и окупается за 1,6 года.
В завершении хочется отметить, что данный проект (программа «D-ArtAurorav.1.0») не будет заброшен и разработка новых версий не заставит себя ждать, возможности программы будут расширены, но основной принцип всех моих программ, «Максимум пользы, при минимуме сложности», останется неизменным.
СПИСОК ЛИТЕРАТУРЫ
1. Робинсон С. – MicrosoftAccess 2000: учебный курс – СПб.: Питер, 2002.
2. Валерий Фаронов – Delphi 6: учебный курс – СПб.: Питер, 2002.
3. Валерий Фаронов – Программирование баз данных в Delphi 6: учебный курс – СПб.: Питер, 2002.
4. Валерий Фаронов – Профессиональная работа в Delphi 6. Библиотека программиста. – СПб.: Питер, 2002
5. Елманова Н. – Delphi 6 и технология COM. – СПб.: Питер, 2002
6. Базы данных: Учебник для высших учебных заведений /Под ред. проф. А.Д. Хомоненко. – СПб.: КОРОНА принт, 2000
ПРИЛОЖЕНИЕ 1
«Листинг программы D-ArtAurorav.1.0»
(ПРОЕКТAURORA.DPR)
{D-Art® Aurora® v.1.0. © D-ArtSoftwareCorporation - 2003-2004.
All Copyrights are protected. Only personal use.
Not legal sale - is forbidden! }
Program Aurora;
uses
Forms,
SysUtils,
Controls,
Av_General in 'Av_General.pas' {General},
Av_Data in 'Av_Data.pas' {P_Data: TDataModule},
Sub_Program in 'Sub_Program.pas',
Load in 'Load.pas' {LoadF},
Av_Nuclls in 'Av_Nuclls.pas' {Nucll},
Av_DBData in 'Av_DBData.pas' {DB_Data: TDataModule},
Calend in 'Calend.pas' {Calen},
Av_ListRed in 'Av_ListRed.pas' {ListRed},
Av_ManyW in 'Av_ManyW.pas' {Many_List},
Av_Querys in 'Av_Querys.pas' {FQuery},
Av_Find in 'Av_Find.pas' {FFind},
Av_QLibrary in 'Av_QLibrary.pas' {QLib},
Av_ActionNow in 'Av_ActionNow.pas' {AN},
Av_FSort in 'Av_FSort.pas' {FSort},
Av_Print in 'Av_Print.pas' {FPrint},
Registry,
Av_Reports in 'Av_Reports.pas' {FReport},
Av_Pwrd in 'Av_Pwrd.pas' {FPwrd},
Av_ClearT in 'Av_ClearT.pas' {Form1},
Av_Exp in 'Av_Exp.pas' {FExp},
Av_Help in 'Av_Help.pas' {FHelp};
var
Aurora_Reg: TRegistry;
{$R *.res}
begin
{-----------------Начальные значения переменных------------}
First_load := True; //Устанавливает запуск программы (=>Av_General)
Can_RS := False; //Запрещает менять размеры рабочего окна (=>Av_Nuclls)
//Set_Top := True; //Разрешаем мнять местоположение рабочего окна (=>Av_Nuclls)
TAMode := am_None; //Устанавливаем состаяние НД(N_Gen) - НД не менялся (=>Av_Nuclls)
//i := 1; //Счетчик массива номеров записей для удаления (=>Av_Nucll)
SV_Click := False;
CH_F := False;
CH_F2 := False;
Del_Q := 0;
//NumNewF := 0;
//ShowMEssage(Prog_Dir);
{-----------------Начальные значения (конец)---------------}
Application.Title := 'D-Art: Aurora v.1.0';
Application.CreateForm(TGeneral, General);
Application.CreateForm(TLoadF, LoadF);
Application.CreateForm(TP_Data, P_Data);
Application.CreateForm(TDB_Data, DB_Data);
Application.CreateForm(TCalen, Calen);
Application.CreateForm(TListRed, ListRed);
Application.CreateForm(TMany_List, Many_List);
Application.CreateForm(TFFind, FFind);
Application.CreateForm(TQLib, QLib);
Application.CreateForm(TAN, AN);
Application.CreateForm(TFSort, FSort);
Application.CreateForm(TFPrint, FPrint);
Application.CreateForm(TFPwrd, FPwrd);
Application.CreateForm(TForm1, Form1);
Application.CreateForm(TFExp, FExp);
Application.CreateForm(TFHelp, FHelp);
Application.Initialize;
{-----------------Реестр Windows---------------------------}
Aurora_Reg := TRegistry.Create;
//Считываем значения из системного реестра
WithAurora_RegDo
begin
OpenKey('\Software\D-Art Soft\Aurora',True);
If not ValueExists('Work_dir') Then
WriteString('Work_dir',ExtractFileDir(ExpandFileName('Aurora.exe')) + '\D_bc\');
If not ValueExists('Prog_dir') Then
WriteString('Prog_dir',ExtractFileDir(ExpandFileName('Aurora.exe')) + '\');
If not ValueExists('NDS') Then
WriteFloat('NDS',0.18);
If not ValueExists('NSP') Then
WriteFloat('NSP',0.05);
If not ValueExists('Ent_name') Then
WriteString('Ent_name','(Нетданных)');
If not ValueExists('Sort_nuclls') Then
WriteString('Sort_nuclls','Num ASC');
Nds_v := ReadFloat('NDS');
Nsp_v := ReadFloat('NSP');
Work_dir := ReadString('Work_dir');
Prog_dir := ReadString('Prog_dir');
Name_E := ReadString('Ent_name');
//Определяемустановленлипароль
If not ValueExists('PassWord') Then WriteString('PassWord','')
Else
begin
rpw := ReadString('PassWord');
If rpw <> '' Then
If FPwrd.ShowModal = mrCancel Then Application.Terminate;
end;
end;
{-----------------Реестр Windows (конец)-------------------}
Application.Run;
end.
(МОДУЛЬ AV_NUCLLS.PAS)
unit Av_Nuclls;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, ToolWin, ExtCtrls, StdCtrls, Mask, DBCtrls,
Grids, DBGrids, Buttons, ADODB, DB, Registry;
type
TNucll = class(TForm)
Redactor: TGroupBox;
E_Num: TDBEdit;
E_Sum: TDBEdit;
Tools: TControlBar;
Navig: TToolBar;
Grid: TDBGrid;
E_Date: TDBEdit;
DBEdit6: TDBEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Date_B: TButton;
Label8: TLabel;
Work_B: TButton;
Client_B: TButton;
FioO_B: TButton;
StatO_B: TButton;
Label9: TLabel;
StatP_B: TButton;
B_NSP: TDBCheckBox;
B_Sile: TDBCheckBox;
B_Many: TDBCheckBox;
Label10: TLabel;
Bevel2: TBevel;
DBEdit3: TDBEdit;
Label11: TLabel;
DBEdit4: TDBEdit;
Label12: TLabel;
E_FioP: TDBEdit;
Save: TToolButton;
Add: TToolButton;
Del: TToolButton;
Edit: TToolButton;
Next: TToolButton;
Prior: TToolButton;
ToolButton7: TToolButton;
View: TToolButton;
Help: TToolButton;
ToolButton10: TToolButton;
L_Work: TDBComboBox;
L_Client: TDBComboBox;
L_FioO: TDBComboBox;
L_StatO: TDBComboBox;
L_StatP: TDBComboBox;
Work_A: TBitBtn;
Client_A: TBitBtn;
FioO_A: TBitBtn;
StatO_A: TBitBtn;
StatP_A: TBitBtn;
Lst_Many: TButton;
Ap_Button: TToolBar;
Red_LST: TToolButton;
ToolButton2: TToolButton;
MB_LST: TToolButton;
MoveBy_P: TToolButton;
ToolButton9: TToolButton;
ToolButton11: TToolButton;
ToolButton12: TToolButton;
ToolButton13: TToolButton;
ToolButton14: TToolButton;
ToolButton4: TToolButton;
MoveBy_N: TToolButton;
ToolButton3: TToolButton;
Bevel1: TBevel;
procedure FormResize(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Date_BClick(Sender: TObject);
procedure Work_BClick(Sender: TObject);
procedure EditClick(Sender: TObject);
procedure SaveClick(Sender: TObject);
procedure AddClick(Sender: TObject);
procedure DelClick(Sender: TObject);
procedure PriorClick(Sender: TObject);
procedure NextClick(Sender: TObject);
procedure B_ManyClick(Sender: TObject);
procedure Lst_ManyClick(Sender: TObject);
procedure Work_AClick(Sender: TObject);
procedure Client_BClick(Sender: TObject);
procedure Client_AClick(Sender: TObject);
procedure FioO_BClick(Sender: TObject);
procedure FioO_AClick(Sender: TObject);
procedure StatO_AClick(Sender: TObject);
procedure StatO_BClick(Sender: TObject);
procedure StatP_BClick(Sender: TObject);
procedure StatP_AClick(Sender: TObject);
procedure Red_LSTClick(Sender: TObject);
procedure MoveBy_PClick(Sender: TObject);
procedure MoveBy_NClick(Sender: TObject);
procedure E_NumEnter(Sender: TObject);
procedure E_NumExit(Sender: TObject);
procedure GridExit(Sender: TObject);
procedure GridEnter(Sender: TObject);
procedure MB_LSTMouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
procedure GridDblClick(Sender: TObject);
procedure HelpClick(Sender: TObject);
procedure E_SumEnter(Sender: TObject);
procedure E_DateEnter(Sender: TObject);
procedure E_DateExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Nucll: TNucll;
Can_RS: boolean;{Определяетнужноменятьразмерырабочегоокна}
TAMode{Определяет различные состояния набора данных N_Gen (=>Av_DBData)}: byte;
CH_F, CH_F2, NoATL, SV_Click, No_Adding, InGRD, Exec, CL_Click, SMM: boolean;