ПЗ (Автоматизированная информационная система предприятия компьютерного сервиса), страница 8
Описание файла
Файл "ПЗ" внутри архива находится в следующих папках: Автоматизированная информационная система предприятия компьютерного сервиса, Черноусов. Документ из архива "Автоматизированная информационная система предприятия компьютерного сервиса", который расположен в категории "". Всё это находится в предмете "дипломы и вкр" из 8 семестр, которые можно найти в файловом архиве ДВГУПС. Не смотря на прямую связь этого архива с ДВГУПС, его также можно найти и в других разделах. .
Онлайн просмотр документа "ПЗ"
Текст 8 страницы из документа "ПЗ"
Stat in 'Stat.pas' {fmStat};
{$R *.res}
begin
Application.Initialise;
Application.CreateForm(TDM, DM);
Application.CreateForm(TfmLogin, fmLogin);
Application.CreateForm(TfmMain, fmMain);
Application.CreateForm(TfmClients, fmClients);
Application.CreateForm(TfmRequisite, fmRequisite);
Application.CreateForm(TfmPost, fmPost);
Application.CreateForm(TfmPrice, fmPrice);
Application.CreateForm(TfmManagers, fmManagers);
Application.CreateForm(TfmSupplierList, fmSupplierList);
Application.CreateForm(TfmStore, fmStore);
Application.CreateForm(TfmStaff, fmStaff);
Application.CreateForm(TfmOrder, fmOrder);
Application.CreateForm(TfmOrderList, fmOrderList);
Application.CreateForm(TfmDiapason, fmDiapason);
Application.CreateForm(TfmStat, fmStat);
Application.Run;
end.
Программныймодуль DMUnit.pas
unit DMUnit;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDM = class(TDataModule)
ADOConnection1: TADOConnection;
tbManagers: TADOTable;
dsManagers: TDataSource;
tbManagersN: TAutoIncField;
tbManagersDSDesigner: TWideStringField;
tbSpec: TADOTable;
dsSpec: TDataSource;
tbSpecID: TAutoIncField;
tbSpecDSDesigner: TWideStringField;
tbClients: TADOTable;
dsClients: TDataSource;
tbClientsID: TAutoIncField;
tbClients_: TWideStringField;
tbClientsDSDesigner: TWideStringField;
tbClientsDSDesigner4: TWideStringField;
tbClientsDSDesigner5: TWideStringField;
tbClientsDSDesigner6: TWideStringField;
tbClientsDSDesigner7: TWideStringField;
tbClientsDSDesigner8: TWideStringField;
tbRequisite: TADOTable;
dsRequisite: TDataSource;
tbRequisiteDSDesigner: TWideStringField;
tbRequisiteDSDesigner2: TWideStringField;
tbRequisiteDSDesigner4: TWideStringField;
tbRequisiteDSDesigner5: TWideStringField;
tbRequisiteDSDesigner6: TWideStringField;
tbRequisiteDSDesigner7: TWideStringField;
tbRequisiteDSDesigner8: TWideStringField;
tbStore: TADOTable;
dsStore: TDataSource;
tbStoreDSDesigner: TAutoIncField;
tbStoreDSDesigner2: TWideStringField;
tbStoreDSDesigner3: TWideStringField;
tbStoreDSDesigner4: TWideStringField;
tbStoreDSDesigner5: TIntegerField;
tbStoreDSDesigner6: TBCDField;
tbPrice: TADOTable;
dsPrice: TDataSource;
tbStaff: TADOTable;
dsStaff: TDataSource;
tbStaffN: TAutoIncField;
tbStaffDSDesigner: TWideStringField;
tbStaffID: TIntegerField;
tbStaffIntegerField: TStringField;
tbStoreField: TCurrencyField;
tbPriceDSDesigner: TAutoIncField;
tbPriceDSDesigner2: TWideStringField;
tbPriceDSDesigner3: TWideStringField;
tbPriceDSDesigner4: TFloatField;
tbPriceDSDesigner5: TBCDField;
dsOrders: TDataSource;
dstOrders: TADODataSet;
dstOrdersN: TAutoIncField;
dstOrdersDSDesigner: TDateTimeField;
dstOrdersDSDesigner2: TDateTimeField;
dstOrdersID: TIntegerField;
dstOrdersID2: TIntegerField;
dstOrdersID3: TIntegerField;
dstOrdersDSDesigner3: TBCDField;
dstOrdersField: TStringField;
dstOrdersField2: TStringField;
dstOrdersIntegerField: TStringField;
dsJobs: TDataSource;
dstJobs: TADODataSet;
dstJobsN: TIntegerField;
dstJobsID: TIntegerField;
dstJobsDSDesigner: TDateTimeField;
dstJobsID2: TIntegerField;
dstJobsDSDesigner3: TBCDField;
dstJobsField: TStringField;
dstJobsStringField: TStringField;
dstJobsField2: TCurrencyField;
dstJobsDSDesigner2: TFloatField;
dsMat: TDataSource;
dstMat: TADODataSet;
dstMatN: TIntegerField;
dstMat_ID: TIntegerField;
dstMatDSDesigner: TIntegerField;
dstMatDSDesigner2: TBCDField;
dstMatCurrencyField: TCurrencyField;
dstMatStringField: TStringField;
dstOrderJobSum: TADODataSet;
dstOrderJobSumSum1: TFloatField;
dstOrderMatSum: TADODataSet;
FloatField1: TFloatField;
dstStatEmp: TADODataSet;
dstStatJobs: TADODataSet;
dstStatEmpDSDesigner2: TFloatField;
dstStatEmpField: TStringField;
dstStatJobsDSDesigner2: TFloatField;
dstStatJobsField: TStringField;
dstStatOrderSum: TADODataSet;
BCDField2: TBCDField;
StringField2: TStringField;
dstStatClientSum: TADODataSet;
dstStatClientSumDSDesigner: TBCDField;
dstStatClientSum_: TStringField;
dstEmpJobList: TADODataSet;
dstEmpJobListDSDesigner: TWideStringField;
dstEmpJobListDSDesigner2: TAutoIncField;
dstEmpJobListDSDesigner3: TFloatField;
dstEmpJobListDSDesigner4: TWideStringField;
dsSupOrders: TDataSource;
dstSupOrders: TADODataSet;
dstSupOrdersN: TAutoIncField;
dstSupOrdersDSDesigner: TDateTimeField;
dsSupCont: TDataSource;
dstSupCont: TADODataSet;
dstSupContN: TIntegerField;
dstSupCont_ID: TIntegerField;
dstSupContDSDesigner: TIntegerField;
dstSupContField: TStringField;
dstStatSupOrderSum: TADODataSet;
BCDField3: TBCDField;
StringField1: TStringField;
tbManagersDSDesigner2: TWideStringField;
tbManagersDSDesigner3: TWideStringField;
tbStaffDSDesigner2: TWideStringField;
tbStaffDSDesigner3: TWideStringField;
dstSupOrdersID: TIntegerField;
dstSupOrdersStringField: TStringField;
dsStatus: TDataSource;
dstStatus: TADODataSet;
dstStatusID: TAutoIncField;
dstStatusDSDesigner: TWideStringField;
dstOrdersID4: TIntegerField;
dstOrdersField3: TStringField;
dstOrdersField4: TStringField;
procedure tbStoreCalcFields(DataSet: TDataSet);
procedure dstJobsCalcFields(DataSet: TDataSet);
procedure dstMatCalcFields(DataSet: TDataSet);
procedure DataModuleDestroy(Sender: TObject);
procedure dstOrdersAfterInsert(DataSet: TDataSet);
procedure dstSupOrdersAfterInsert(DataSet: TDataSet);
procedure dstJobsIDChange(Sender: TField);
procedure dstMat_IDChange(Sender: TField);
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
uses Login;
{$R *.dfm}
//Для нового заказа записывается ID приемщика:
procedure TDM.dstOrdersAfterInsert(DataSet: TDataSet);
begin
DataSet.FieldByName('МенеджерID').AsInteger := fmLogin.UserID;
end;
//Для новой заявки поставщику записывается ID приемщика:
procedure TDM.dstSupOrdersAfterInsert(DataSet: TDataSet);
begin
DataSet.FieldByName('РаботникID').AsInteger := fmLogin.UserID;
end;
//Для выбранной работы по заказу записывается ее стоимость за норму:
procedure TDM.dstJobsIDChange(Sender: TField);
begin
dstJobs.FieldByName('ОплатаЗаНорму').AsCurrency := tbPrice.FieldByName('ОплатаЗаНорму').AsCurrency;
end;
end.
Программный модуль Login.pas
unit Login;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IniFiles;
type
TfmLogin = class(TForm)
Label1: TLabel;
edLogin: TEdit;
Label2: TLabel;
edPassword: TEdit;
bbtOK: TBitBtn;
bbtCancel: TBitBtn;
OpenDialog1: TOpenDialog;
procedure bbtOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure bbtCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
UserID: Integer;
DBPath: string;
end;
var
fmLogin: TfmLogin;
implementation
uses Main, DMUnit, DB, ADODB;
{$R *.dfm}
procedure TfmLogin.FormCreate(Sender: TObject);
var
IniFile: TIniFile;
APchar: array[0..254] of Char;
NewDBPath: Boolean;
begin
//Задание пути к БД:
DM.ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBPath + ';Mode=ReadWrite;Persist Security Info=False';
//Попытка открытия БД. Если она неудачна, предлагается изменить путь к БД
try
DM.ADOConnection1.Open;
except
Application.MessageBox('Базаданныхненайдена!', 'Ошибка', MB_OK+MB_ICONERROR);
if OpenDialog1.Execute then
begin
DBPath := OpenDialog1.FileName;
NewDBPath := True;
end;
DM.ADOConnection1.ConnectionString :=
'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=' + DBPath + ';Persist Security Info=False';
//При возникновении ошибки при повторном открытии БД программа закрывается:
try
DM.ADOConnection1.Open;
except
Application.MessageBox('Базаданныхненайдена!', 'Ошибка', MB_OK+MB_ICONERROR);
Application.Terminate;
end;
end;
end;
if NewDBPath then
SaveToFile(DBPath);
end;
//Тип, определяющий элементы меню, к которым можно получить доступ пользователю
//в зависимости от его прав доступа:
TUserGrants =
(ugSpravReq, ugSpravSpec, ugSpravManagers, ugSpravClients, ugSpravStaff,
ugSpravStore, ugSpravPrice, ugWorkOrders, ugWorkSup, ugRepStat, ugRepJobByEmp);
TUserGrantsSet = set of TUserGrants;
//Установка видимости заданных элементов меню для текущего пользователя:
procedure SetGrants(UserGrants: TUserGrantsSet);
begin
with fmMain do
begin
acSpravReq.Enabled := ugSpravReq in UserGrants;
acSpravSpec.Enabled := ugSpravSpec in UserGrants;
acSpravManagers.Enabled := ugSpravManagers in UserGrants;
acSpravClients.Enabled := ugSpravClients in UserGrants;
acSpravStaff.Enabled := ugSpravStaff in UserGrants;
acSpravStore.Enabled := ugSpravStore in UserGrants;
acSpravPrice.Enabled := ugSpravPrice in UserGrants;
acWorkOrders.Enabled := ugWorkOrders in UserGrants;
acWorkSup.Enabled := ugWorkSup in UserGrants;
acRepStat.Enabled := ugRepStat in UserGrants;
acRepJobByEmp.Enabled := ugRepJobByEmp in UserGrants;
end;
end;
begin
//Режим администратора:
if (edLogin.Text = 'admin') and (edPassword.Text = 'admin') then
begin
UserID := 0;
fmLogin.Hide;
if not Assigned(fmMain) then
Application.CreateForm(TfmMain, fmMain);
SetGrants([ugSpravReq, ugSpravSpec, ugSpravManagers, ugSpravStaff]);
fmMain.Caption := fmMain.Caption + ': Администратор';
fmMain.ShowModal;
end
else
begin
//Поиск приемщика с заданными логином и паролем:
DM.tbManagers.Open;
if DM.tbManagers.Locate('Логин;Пароль', VarArrayOf([edLogin.Text, edPassword.Text]), [loCaseInsensitive]) then
begin
UserID := DM.tbManagers.FieldByName('ТабN').AsInteger;
if not Assigned(fmMain) then
Application.CreateForm(TfmMain, fmMain);
fmMain.Caption := fmMain.Caption + ': ' + DM.tbManagers.FieldByName('ФИО').AsString;
SetGrants([ugSpravClients, ugSpravStore, ugSpravPrice, ugWorkOrders, ugRepStat, ugRepJobByEmp]);
DM.tbManagers.Close;
fmLogin.Hide;
fmMain.ShowModal;
end
else
begin
//Поиск мастера с заданными логином и паролем:
DM.tbStaff.Open;
if DM.tbStaff.Locate('Логин;Пароль', VarArrayOf([edLogin.Text, edPassword.Text]), [loCaseInsensitive]) then
begin
UserID := DM.tbStaff.FieldByName('ТабN').AsInteger;
if not Assigned(fmMain) then
Application.CreateForm(TfmMain, fmMain);
fmMain.Caption := fmMain.Caption + ': ' + DM.tbStaff.FieldByName('ФИО').AsString;
SetGrants([ugSpravClients, ugSpravStore, ugSpravPrice, ugWorkOrders, ugWorkSup]);
DM.tbStaff.Close;
fmLogin.Hide;
fmMain.ShowModal;
end
else
Application.MessageBox('Неверныелогинилипароль!', 'Ошибка', MB_OK+MB_ICONEXCLAMATION);
end;
DM.tbStaff.Close;
DM.tbManagers.Close;
end; //else if (edLogin.Text = 'admin')...