Дипломная работа: Автоматизация процесса ведения документации и отчетности на предприятии "Торговый дом АгроСи"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
71
ListFieldуказывает на поле таблицы, которое будет выводиться в виде
спика значений.
KeyField – указывает на ключевое поле, значение которого будет
заноситься в основную таблицу на основании выбранного в компоненте
значения.
3 – компонент DBCheckBox. Позволяет редактировать булевы значения в
выбранном поле выбранной таблицы.
4 – компонент Button. Служит для подтверждения или отмены изменений.
Защита клиентского приложения реализована с помощью сохранения
пароля пользователя системы в зашифрованном виде. Для этого предназначен
модуль UMd5.pas.
Приведем код формы авторизации с комментариями.
unit UAuthorise;
interface
//Объявление библиотек
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants,
System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Buttons, UMd5,
UDataModule;
//Объявление элементов формы
type
TAuthorise = class(TForm)
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
72
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Authorise: TAuthorise;
flag:boolean;
user:integer;
role:integer;
implementation
{$R *.dfm}
//Непосредственно процедура авторизации
procedure TAuthorise.BitBtn1Click(Sender: TObject);
var pass:string;
begin
//Расшифровываем введенный пароль
{pass:=md5(Edit2.Text);
//Если логин не найден в БД
if Not(DataModule1.TSotrudniki.Locate('Логин', Edit1.Text, [])) then
begin
//Выводится сообщение об ошибке и происходит выход
ShowMessage('Такой логин не найден в базе данных!');
exit;
end;
//Если пароль не найден, выводится сообщение об ошибке
if pass<>DataModule1.TSotrudniki.FieldByName('Пароль').AsString then
73
begin
ShowMessage('Пароль неверный!');
exit;
end;
//В противном случае флаг входа становится «Истина»
flag:=True;
//Запоминаются данные сотрудника
user:=DataModule1.TSotrudniki.FieldByName('Номер_сотрудника').AsIntege
r;
role:=DataModule1.TSotrudniki.FieldByName('Номер_роли').AsInteger;}
flag:=true;
Authorise.Close;
end;
//Просто закрытие формы
procedure TAuthorise.BitBtn2Click(Sender: TObject);
begin
Application.Terminate;
end;
//При закрытии формы происходит завершение приложения если не
произведен вход
procedure TAuthorise.FormClose(Sender: TObject; var Action: TCloseAction);
begin
if Not(flag) then Application.Terminate;
end;
end.
74
2.4. Контрольный пример реализации проекта и его описание
Главная форма программы выглядит следующим образом:
Рисунок 2.9. Главная форма программы
Эта форма предназначена для перехода к основным справочникам и
документам программы.
Форма «Реестр» договоров является одной из основных форм в
программе. Она хранит информацию о договорах на предприятии и позволяет
сотрудникам предприятия обмениваться копиями этих документов в любом из
форматов.
Форма выглядит следующим образом:
75
Рисунок 2.10. Реестр договоров
Заполнение значений на форме производится непосредственно с
клавиатуры, либо выбором из выпадающего списка.
Для сохранения документа договора в базе данных необходимо нажать на
кнопку «Загрузить». На экран будет выведено диалоговое окно с просьбой
указать расположение документа. После указания документа он будет загружен
в БД и будет доступен сотрудников во всех филиалах предприятия.
Для открытия документа необходимо нажать на кнопку «Открыть» на
форме. Документ будет открыт, если для него в системе сопоставлено
соответствующее приложение.
Форма просмотра и редактирования контрагентов выглядит следующим
образом.
Источник: https://baza.diplomsite.ru/previewfile/2055