Диплом: Автоматизация распределения заданий и учета работы монтажных бригад в ООО "Евромет"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
107
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;
//Для выбранного комплектующего по заказу записывается его стоимость:
procedure TDM.dstMat_IDChange(Sender: TField);
begin
dstMat.FieldByName('Цена').AsCurrency :=
tbStore.FieldByName('Цена').AsCurrency;
end;
end.
Программный модуль LoginUnit.pas
unit LoginUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, IniFiles;
type
TfmLogin = class(TForm)
Label1: TLabel;
edLogin: TEdit;
Label2: TLabel;
edPassword: TEdit;
bbtOK: TBitBtn;
108
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 MainUnit, DMUnit, DB, ADODB;
{$R *.dfm}
//По введенным логину и паролю определяются права доступа
пользователей к системе,
//а именно - видимость пунктов меню:
procedure TfmLogin.bbtOKClick(Sender: TObject);
type
//Тип, определяющий элементы меню, к которым можно получить доступ
пользователю
//в зависимости от его прав доступа:
TUserGrants =
(ugSpravReq, ugSpravSpec, ugSpravManagers, ugSpravClients,
ugSpravStaff,
ugSpravStore, ugSpravPrice, ugWorkOrders, ugWorkSup, ugRepStat,
ugRepJobByEmp);
109
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;
110
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;
111
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')...
end;
procedure TfmLogin.bbtCancelClick(Sender: TObject);
begin
Close;
end;
procedure TfmLogin.FormShow(Sender: TObject);
begin
//Если логин сохранен с предыдущего сеанса, то фокус ввода
устанавливается на поле пароля:
if edLogin.Text <> '' then
edPassword.SetFocus;
end;
end.
Программный модуль OrderListUnit.pas
unit OrderListUnit;
interface
uses
112
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, DBCtrls, StdCtrls, Buttons, ComCtrls;
type
TfmOrderList = class(TForm)
DBGrid1: TDBGrid;
Panel1: TPanel;
bbtPrint: TBitBtn;
GroupBox1: TGroupBox;
chbDate1: TCheckBox;
chbDate2: TCheckBox;
dtpDate1: TDateTimePicker;
dtpDate2: TDateTimePicker;
chbClient: TCheckBox;
chbManager: TCheckBox;
dblcbClient: TDBLookupComboBox;
dblcbManager: TDBLookupComboBox;
BitBtn4: TBitBtn;
BitBtn1: TBitBtn;
DBNavigator2: TDBNavigator;
chbStatus: TCheckBox;
dblcbStatus: TDBLookupComboBox;
bbtNewOrder: TBitBtn;
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtPrintClick(Sender: TObject);
procedure DBGrid1TitleClick(Column: TColumn);
procedure chbDate1Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure bbtNewOrderClick(Sender: TObject);
113
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmOrderList: TfmOrderList;
implementation
uses DMUnit, ReportsUnit, ADODB, MainUnit, OrderUnit;
{$R *.dfm}
procedure TfmOrderList.FormShow(Sender: TObject);
begin
DM.dstOrders.Open;
dtpDate1.Date := Date;
dtpDate2.Date := Date;
chbDate1Click(Self);
end;
procedure TfmOrderList.FormClose(Sender: TObject; var Action:
TCloseAction);
begin
DM.dstOrders.Close;
end;
procedure TfmOrderList.bbtPrintClick(Sender: TObject);
begin
Rep_Any(DBGrid1, 7, Self.Caption);
end;
//Сортировка данных в таблице по выбранному столбцу:
procedure TfmOrderList.DBGrid1TitleClick(Column: TColumn);
begin
if Column.FieldName = 'Клиент' then
DM.dstOrders.Sort := 'КлиентID'
114
else if Column.FieldName = 'Менеджер' then
DM.dstOrders.Sort := 'МенеджерID'
else if Column.FieldName = 'Работник' then
DM.dstOrders.Sort := 'РаботникID'
else if Column.FieldName = 'Статус' then
DM.dstOrders.Sort := 'СтатусID'
else if Column.FieldName = 'Телефоны' then
DM.dstOrders.Sort := 'КлиентID'
else
DM.dstOrders.Sort := Column.FieldName;
end;
procedure TfmOrderList.chbDate1Click(Sender: TObject);
var
Filter: string;
begin
Filter := '';
if chbDate1.Checked then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'ДатаПриема >= ' + QuotedStr(DateToStr(dtpDate1.Date));
end;
if chbDate2.Checked then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'ДатаПриема <= ' + QuotedStr(DateToStr(dtpDate2.Date));
end;
if chbClient.Checked and (dblcbClient.KeyValue <> Null) then
begin
if Filter <> '' then
115
Filter := Filter + ' and ';
Filter := Filter + 'КлиентID = ' + IntToStr(dblcbClient.KeyValue);
end;
if chbManager.Checked and (dblcbManager.KeyValue <> Null) then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'МенеджерID = ' + IntToStr(dblcbManager.KeyValue);
end;
if chbStatus.Checked and (dblcbStatus.KeyValue <> Null) then
begin
if Filter <> '' then
Filter := Filter + ' and ';
Filter := Filter + 'СтатусID = ' + IntToStr(dblcbStatus.KeyValue);
end;
if Filter <> '' then
begin
DM.dstOrders.Filter := Filter;
DM.dstOrders.Filtered := True;
end
else
DM.dstOrders.Filtered := False;
end;
procedure TfmOrderList.DBGrid1DblClick(Sender: TObject);
begin
fmOrder.Show;
end;
procedure TfmOrderList.FormCreate(Sender: TObject);
begin
dtpDate1.Date := Date;
dtpDate2.Date := Date;
116
end;
procedure TfmOrderList.BitBtn1Click(Sender: TObject);
begin
Close;
end;
procedure TfmOrderList.bbtNewOrderClick(Sender: TObject);
begin
DM.dstOrders.Insert;
fmOrder.Show;
end;
end.
Программный модуль OrderUnit.pas
unit OrderUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls, ExtCtrls, Grids, DBGrids, Mask;
type
TfmOrder = class(TForm)
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Splitter2: TSplitter;
DBGrid2: TDBGrid;
Label1: TLabel;
DBEdit1: TDBEdit;
Label2: TLabel;
DBEdit2: TDBEdit;
Label3: TLabel;
DBEdit3: TDBEdit;

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)