Курсовые работы / ПРИС КП_И_23
.pdfПРИЛОЖЕНИЕ А Функциональная модель по стандарту IDEF0
Рисунок А.1 – Контекстная диаграмма
Рисунок А.2 – Диаграмма IDEF0 первого уровня
32
Рисунок А.3 – Диаграмма IDEF0 второго уровня «Прием заявки»
Рисунок А.4 – Диаграмма IDEF0 второго уровня «Исполнение работы»
Рисунок А.5 – Диаграмма IDEF0 второго уровня «Обработка данных»
33
Рисунок А.6 – Диаграмма IDEF0 второго уровня «Создание отчетов»
Рисунок А.7 – Диаграмма IDEF3 третьего уровня «Смена пароля»
34
ПРИЛОЖЕНИЕ Б Описание таблиц базы данных
Таблица Б.1 – Описание свойств полей таблиц базы данных
Имя поля |
Тип данных |
Размер |
Обязательное |
Индексированной поле |
|
|
|
|
поля |
поле |
|
|
|
PSWDTBL |
|
|
|
|
|
|
P_Id |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
P_Login |
Текстовый |
50 |
Да |
Нет |
|
|
P_Pass |
Текстовый |
50 |
Нет |
Нет |
|
|
|
Логический |
- |
- |
Нет |
|
|
Klient |
|
|
|
|
|
|
Klient |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
NazvanieFirm |
Текстовый |
50 |
Да |
Да |
(Совпадения |
не |
|
|
|
|
допускаются) |
|
|
FIO |
Текстовый |
50 |
- |
Нет |
|
|
paspotr |
Текстовый |
50 |
Нет |
Нет |
|
|
adres |
Текстовый |
50 |
Нет |
Нет |
|
|
telefon |
Текстовый |
50 |
Нет |
Нет |
|
|
EDIT |
Логический |
- |
Нет |
Нет |
|
|
nSkidka |
|
|
|
|
|
|
id_sk |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
nazvanie |
Текстовой |
50 |
Нет |
Да |
(Совпадения |
не |
|
|
|
|
допускаются) |
|
|
velichina |
Числовой |
Действител |
Нет |
Нет |
|
|
|
|
ьное |
|
|
|
|
EDIT |
Логический |
|
- |
Нет |
|
|
Oplata |
|
|
|
|
|
|
ID_OPLATA |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
Status |
Текстовый |
50 |
Нет |
Нет |
|
|
SostojnieZakaza |
|
|
|
|
|
|
id_CZ |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
Sostojnie |
Текстовый |
50 |
Нет |
Нет |
|
|
Sotrudnik |
|
|
|
|
|
|
id_sotr |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
FIO |
Текстовый |
50 |
Нет |
Нет |
|
|
FIO |
Текстовый |
50 |
Нет |
Нет |
|
|
Dolgnost |
Текстовый |
50 |
Нет |
Нет |
|
|
Telefon |
Текстовый |
50 |
Нет |
Нет |
|
|
35
Продолжение таблицы Б1
Adres |
Текстовый |
50 |
Нет |
Нет |
|
|
Works |
|
|
|
|
|
|
id_Work |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
Nazvanie |
Текстовый |
50 |
Да |
Да |
(Совпадения |
не |
|
|
|
|
допускаются) |
|
|
|
|
|
|
|
|
|
Praice |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
Zakaz |
|
|
|
|
|
|
id_zakaz |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
Nazvanie |
Текстовый |
50 |
Нет |
Нет |
|
|
Klient |
Числовой |
Длинное |
Нет |
Нет |
|
|
|
|
целое |
|
|
|
|
Sotrudnik |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
Skidka |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
DataNach |
Дата/время |
- |
- |
Нет |
|
|
StatusZakaza |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
StatusOplat |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
Zakaz_Work |
|
|
|
|
|
|
nomer |
Счетчик |
Длинное |
Да |
Да |
(Совпадения |
не |
|
|
целое |
|
допускаются) |
|
|
id_zakaza |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
id_work |
Числовой |
Длинное |
Да |
Нет |
|
|
|
|
целое |
|
|
|
|
36
ПРИЛОЖЕНИЕ В |
|
Листинг программы |
|
unit DataM; |
O1Query: TADOQuery; |
|
O1DataSource: TDataSource; |
interface |
Label10: TLabel; |
|
Otchet2: TLabel; |
uses |
DogQuery: TADOQuery; |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, |
DogDataSource: TDataSource; |
Forms, |
pQuery: TADOQuery; |
Dialogs, DB, ADODB, IniFiles, StdCtrls; |
pDataSource: TDataSource; |
|
CheckEditQuery: TADOQuery; |
type |
DataSource1: TDataSource; |
TDM = class(TForm) |
Label11: TLabel; |
ADOConnection1: TADOConnection; |
Edit: TADODataSet; |
SotrQuery: TADOQuery; |
procedure ADOConnection1BeforeConnect(Sender: TObject); |
KlientQuery: TADOQuery; |
private |
SkidkaQuery: TADOQuery; |
{ Private declarations } |
SotrDataSource: TDataSource; |
public |
KlientDataSource: TDataSource; |
{ Public declarations } |
SkidkaDataSource: TDataSource; |
end; |
ZakazDataSource: TDataSource; |
|
ZakazQuery: TADOQuery; |
var |
ZWQuery: TADOQuery; |
DM: TDM; |
ZWDataSource: TDataSource; |
|
WorkQuery: TADOQuery; |
implementation |
WorkDataSource: TDataSource; |
Uses MainFor; |
Label1: TLabel; |
{$R *.dfm} |
Label2: TLabel; |
|
Label3: TLabel; |
procedure TDM.ADOConnection1BeforeConnect(Sender: TObject); |
Label4: TLabel; |
var DBPath:widestring; //путь к БД |
Label5: TLabel; |
F :TIniFile; // файл с путем к БД |
Label6: TLabel; |
begin |
S_zakazaQuery1: TADOQuery; |
|
S_zakazaDataSource: TDataSource; |
F:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini') |
S_oplatQuery: TADOQuery; |
; |
S_olaDataSource: TDataSource; |
DBPath:=F.ReadString('Section_DBPath','Path',''); |
Label7: TLabel; |
ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4. |
Label8: TLabel; |
0;Data Source='+DBPath+'db1.mdb;Persist Security Info=False'; |
Label9: TLabel; |
end; |
ZaprosQuery: TADOQuery; |
end. |
ZaprosDataSource1: TDataSource; |
|
unit Klient; |
procedure FormClose(Sender: TObject; var Action: TCloseAction); |
|
procedure DBNavigator1BeforeAction(Sender: TObject; |
interface |
Button: TNavigateBtn); |
|
procedure DBEdit1Change(Sender: TObject); |
uses |
procedure DBEdit2Enter(Sender: TObject); |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, |
procedure DBEdit3Enter(Sender: TObject); |
Forms, |
procedure DBEdit4Enter(Sender: TObject); |
Dialogs, Grids, DBGrids, StdCtrls, Mask, DBCtrls, ExtCtrls; |
procedure DBEdit5Enter(Sender: TObject); |
|
procedure DBEdit6Enter(Sender: TObject); |
type |
procedure DBEdit2Exit(Sender: TObject); |
TS_Klient = class(TForm) |
procedure DBEdit3Exit(Sender: TObject); |
DBGrid1: TDBGrid; |
procedure DBEdit4Exit(Sender: TObject); |
DBNavigator1: TDBNavigator; |
procedure DBEdit5Exit(Sender: TObject); |
DBEdit1: TDBEdit; |
procedure DBEdit6Exit(Sender: TObject); |
DBEdit2: TDBEdit; |
procedure DBNavigator1Click(Sender: TObject; Button: |
DBEdit3: TDBEdit; |
TNavigateBtn); |
DBEdit4: TDBEdit; |
private |
DBEdit5: TDBEdit; |
{ Private declarations } |
DBEdit6: TDBEdit; |
procedure Refresh; |
Label1: TLabel; |
procedure isEdit; |
Label2: TLabel; |
procedure notEdit; |
Label3: TLabel; |
function checkEdit:boolean; |
Label4: TLabel; |
public |
Label5: TLabel; |
{ Public declarations } |
Label6: TLabel; |
end; |
Timer1: TTimer; |
const |
DBEdit7: TDBEdit; |
Klient_SQL='SELECT * FROM Klient'; |
DBEdit8: TDBEdit; |
var |
Label7: TLabel; |
S_Klient: TS_Klient; |
procedure FormCreate(Sender: TObject); |
ins:boolean;// признак редактирования |
procedure Timer1Timer(Sender: TObject); |
|
37
implementation |
begin |
Uses DataM; |
ins:=false; |
{$R *.dfm} |
// Если нажата кнопка "Вставить", тогда |
procedure TS_Klient.Refresh; |
// передаём фокус в DBEdit1,если он доступен |
var i:integer; |
if Button=nbInsert then |
begin |
begin |
|
ins:=true; |
DM.ADOConnection1.Connected:=true; |
if DBEdit1.Enabled then DBEdit1.SetFocus; |
DM.KlientQuery.SQL.Clear; |
end; |
DM.KlientQuery.SQL.Add('SELECT * FROM Klient;'); |
// Если нажата кнопка "Обновить" |
DM.KlientQuery.Open; |
if (Button=nbRefresh) then |
end; |
|
|
end; |
procedure TS_Klient.FormCreate(Sender: TObject); |
|
begin |
procedure TS_Klient.DBEdit1Change(Sender: TObject); |
DM.ADOConnection1.Connected:=true; |
begin |
DM.KlientQuery.SQL.Clear; |
if (DBEdit1.Text<>'')and(not ins) then checkEdit; |
DM.KlientQuery.SQL.Add('SELECT * FROM Klient;'); |
end; |
DM.KlientQuery.Open; |
|
end; |
procedure TS_Klient.DBEdit2Enter(Sender: TObject); |
|
begin |
|
Timer1.Enabled:=false; |
procedure TS_Klient.isEdit; |
if (DBEdit1.Text<>'')and(not ins) then |
begin |
if not checkEdit then isEdit; |
|
end; |
if DBEdit1.Text<>'' then |
|
begin |
procedure TS_Klient.DBEdit3Enter(Sender: TObject); |
DM.CheckEditQuery.SQL.Text:='UPDATE Klient SET Klient.EDIT = |
begin |
True WHERE Klient.Klient='+DBEdit1.Text+';'; |
Timer1.Enabled:=false; |
DM.CheckEditQuery.ExecSQL; |
if (DBEdit1.Text<>'')and(not ins) then |
DM.CheckEditQuery.SQL.Text:=Klient_SQL+' WHERE |
if not checkEdit then isEdit; |
Klient='+DBEdit1.Text+';'; |
end; |
DM.CheckEditQuery.Open; |
|
end; |
procedure TS_Klient.DBEdit4Enter(Sender: TObject); |
end; |
begin |
procedure TS_Klient.notEdit; |
Timer1.Enabled:=false; |
begin |
if (DBEdit1.Text<>'')and(not ins) then |
|
if not checkEdit then isEdit; |
if DBEdit1.Text<>'' then |
end; |
begin |
|
DM.CheckEditQuery.SQL.Text:='UPDATE Klient SET Klient.EDIT = |
procedure TS_Klient.DBEdit5Enter(Sender: TObject); |
False WHERE Klient.Klient='+DBEdit1.Text+';'; |
begin |
DM.CheckEditQuery.ExecSQL; |
Timer1.Enabled:=false; |
DM.CheckEditQuery.SQL.Text:=Klient_SQL+' WHERE |
if (DBEdit1.Text<>'')and(not ins) then |
Klient='+DBEdit1.Text+';'; |
if not checkEdit then isEdit; |
DM.CheckEditQuery.Open; |
end; |
end; |
|
end; |
procedure TS_Klient.DBEdit6Enter(Sender: TObject); |
function TS_Klient.checkEdit:boolean; |
begin |
var bool:boolean; |
Timer1.Enabled:=false; |
begin |
if (DBEdit1.Text<>'')and(not ins) then |
checkEdit:=false; |
if not checkEdit then isEdit; |
if DBEdit1.Text<>'' then DM.CheckEditQuery.SQL.Text:=Klient_SQL+' |
end; |
WHERE Klient='+DBEdit1.Text+';'; |
|
DM.CheckEditQuery.Open; |
procedure TS_Klient.DBEdit2Exit(Sender: TObject); |
if DBEdit8.Text<>'' then |
begin |
begin |
Timer1.Enabled:=true; |
bool:=not strtobool(DBEdit8.Text); |
notEdit; |
DBEdit1.Enabled:=bool; |
end; |
DBEdit2.Enabled:=bool; |
|
DBEdit3.Enabled:=bool; |
procedure TS_Klient.DBEdit3Exit(Sender: TObject); |
DBEdit4.Enabled:=bool; |
begin |
DBEdit5.Enabled:=bool; |
Timer1.Enabled:=true; |
DBEdit6.Enabled:=bool; |
notEdit; |
Label7.Visible:= not bool; |
end; |
checkEdit:=not bool; |
|
end; |
procedure TS_Klient.DBEdit4Exit(Sender: TObject); |
end; |
begin |
procedure TS_Klient.FormClose(Sender: TObject; var Action: |
Timer1.Enabled:=true; |
TCloseAction); |
notEdit; |
begin |
end; |
notEdit; |
|
DM.KlientQuery.Close; |
procedure TS_Klient.DBEdit5Exit(Sender: TObject); |
end; |
begin |
|
Timer1.Enabled:=true; |
procedure TS_Klient.DBNavigator1BeforeAction(Sender: TObject; |
notEdit; |
Button: TNavigateBtn); |
end; |
var n:integer; |
|
38
procedure TS_Klient.DBEdit6Exit(Sender: TObject); begin
Timer1.Enabled:=true;
notEdit;
end;
procedure TS_Klient.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);
begin
if (Button=nbPost ) then
begin
if (S_Klient.DBEdit3.Text='') or (S_Klient.DBEdit6.Text='') then begin
MessageDlg('Введите все данные!',mtError,[mbOk],0);
Abort;
end;
//if bool=true then end;
end;
procedure TS_Klient.Timer1Timer(Sender: TObject); begin
if DBNavigator1.Controls[6].Enabled then begin
DBNavigator1.BtnClick(nbEdit);
DBNavigator1.BtnClick(nbRefresh);
end;
end;
end.
unit MainFor;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, jpeg, ExtCtrls, IniFiles;
type
TMainForm = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
BD: TMenuItem;
Exit: TMenuItem; Klient: TMenuItem; Sotr: TMenuItem; Skidka: TMenuItem; Work: TMenuItem; Oformlenie: TMenuItem; N14: TMenuItem;
OpenDialog1: TOpenDialog; N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
procedure BDClick(Sender: TObject); procedure SotrClick(Sender: TObject); procedure KlientClick(Sender: TObject); procedure SkidkaClick(Sender: TObject); procedure WorkClick(Sender: TObject); procedure OformlenieClick(Sender: TObject); procedure N5Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject); private
{Private declarations } public
{Public declarations } end;
var
MainForm: TMainForm;
implementation
Uses DataM, Klient, Skidka, Work, Zakaz, O_1, O2, O_3, O_31, O3, Sotrr,
o_sotr; {$R *.dfm}
procedure TMainForm.BDClick(Sender: TObject); var F:TiniFile;// дискриптор DBPath:widestring;// путь к БД
begin
//создаем объект ини-файла, ассоциируя его с физическим файлом на диске
F:=TIniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini')
;
//запускаем диалог открытия, если запущен успешно, то...
if OpenDialog1.Execute then begin
//сохраняем пользовательский путь
DBPath:=ExtractFilePath(OpenDialog1.FileName);
//записываем в разделе Section_DBPath значение DBPath в параметр Path ини-файла
F.WriteString('Section_DBPath','Path', DBPath); DM.ADOConnection1.Close;
//формируем ConnectionString DM.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLE DB.4.0;DataSourse='+DBPath+'db1.mdb;Persist Security Info=False';
//открываем соединение
DM.ADOConnection1.Open;
end;
//освобождаем память
F.Free;
end;
procedure TMainForm.SotrClick(Sender: TObject); begin
S_Sotr:= TS_Sotr.Create(self); //создаём форму
S_Sotr.ShowModal; //выводим на экран модально end;
procedure TMainForm.KlientClick(Sender: TObject); begin
S_Klient:=TS_Klient.Create(self); S_Klient.ShowModal;
end;
procedure TMainForm.SkidkaClick(Sender: TObject); begin
S_Skidka:=TS_Skidka.Create(self); S_Skidka.ShowModal;
end;
procedure TMainForm.WorkClick(Sender: TObject); begin
S_Work:=TS_Work.Create(self); S_Work.ShowModal;
end;
procedure TMainForm.OformlenieClick(Sender: TObject); begin
S_Zakaz:= TS_Zakaz.Create(self); //создаём форму
S_Zakaz.ShowModal; //выводим на экран модально
end;
procedure TMainForm.N5Click(Sender: TObject);
39
begin
O1:= TO1.Create(self); //создаём форму
O1.ShowModal; //выводим на экран модально end;
procedure TMainForm.N7Click(Sender: TObject); begin
O_2:= TO_2.Create(self); //создаём форму
O_2.ShowModal; //выводим на экран модально end;
procedure TMainForm.N8Click(Sender: TObject); begin
O_YSLYGA:= TO_YSLYGA.Create(self); //создаём форму
O_YSLYGA.ShowModal; //выводим на экран модально end;
procedure TMainForm.N9Click(Sender: TObject); begin
SmenaParol:= TSmenaParol.Create(self); //создаём форму
SmenaParol.ShowModal; //выводим на экран модально end;
procedure TMainForm.N10Click(Sender: TObject); begin
Form1:= TForm1.Create(self); //создаём форму
Form1.ShowModal; //выводим на экран модально end;
procedure TMainForm.N11Click(Sender: TObject); begin
Form3:= TForm3.Create(self); //создаём форму Form3.ShowModal;
end;
procedure TMainForm.N12Click(Sender: TObject); var F:TiniFile;
DBPath1:string; begin
F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Options.ini');
//Считываем путь резервного копирования из файла option.ini
DBPath1:=F.ReadString('Section_DBPath','Path',''); F.Free;
// делаем резервную копию файла БД
CopyFile(pchar(DBPath1+'db1.mdb'),pchar(DBPath1+'COPY_db1.mdb') ,false);
MessageDlg('Создана резервная копия БД ',mtInformation, [mbOk], 0);
end;
end.
unit O_1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, ComCtrls, Grids, DBGrids, StdCtrls, OleServer, ExcelXP,
WordXP;
type
TO1 = class(TForm) DBGrid1: TDBGrid;
HeaderControl1: THeaderControl; PopupMenu1: TPopupMenu; SaveDialog1: TSaveDialog; Excel1: TMenuItem;
Edit1: TEdit;
ComboBox1: TComboBox; WordDocument1: TWordDocument; WordApplication1: TWordApplication; procedure FormCreate(Sender: TObject);
procedure Edit1Change(Sender: TObject); private
{Private declarations } public
{Public declarations } end;
var
O1: TO1;
implementation Uses DataM;
{$R *.dfm}
procedure TO1.FormCreate(Sender: TObject); var i:integer;
begin DM.ADOConnection1.Connected:=true; DM.O1Query.SQL.Clear;
DM.O1Query.SQL.Add('SELECT * FROM Opros;'); DM.O1Query.Open;
for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);
end;
procedure TO1.Edit1Change(Sender: TObject); Var S:String;
begin
if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;
//Сохранение имени поля DBGrid1 в переменную S, по индексу выбранной записи в ComboBox1
S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;
DM.O1Query.SQL.Clear;
//Формирования запроса по полю сохранённому в переменной S
DM.O1Query.SQL.Add('Select * from Opros WHERE '+s+' LIKE
"'+Edit1.text+'%"'); // Обновляем
DM.O1Query.Close;
DM.O1Query.Open;
end;
end.
unit O_31;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DBCtrls;
type
TSmenaParol = class(TForm) DBLookupComboBox1: TDBLookupComboBox; Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject);
procedure DBLookupComboBox1Click(Sender: TObject); procedure FormShow(Sender: TObject);
private
{Private declarations } public
{Public declarations } end;
var
40
SmenaParol: TSmenaParol; |
//устанавливаем фокус в поле ввода пароля |
posetitel,pwd:string; |
Edit1.SetFocus; |
|
DM.pQuery.Close; |
implementation |
DM.pQuery.SQL.Clear; |
Uses DataM, MainFor; |
//формируем запрос по ключевому полю для выбранного |
{$R *.dfm} |
пользователя |
|
DM.pQuery.SQL.Add('SELECT * FROM PWDTBL WHERE |
procedure TSmenaParol.BitBtn2Click(Sender: TObject); |
USER_ID='+inttostr(DBLookupComboBox1.KeyValue)+';'); |
begin |
DM.pQuery.Open; |
SmenaParol.Close; |
// сохраняем пароль |
end; |
pwd:=DM.pQuery.FieldByName('PASS').AsString; |
|
DM.pQuery.SQL.Clear; |
procedure TSmenaParol.BitBtn1Click(Sender: TObject); |
// возвращаем запрос в исходное состояние |
begin |
DM.pQuery.SQL.Add('SELECT * FROM PWDTBL;'); |
if posetitel<>'' then // если пользователь ясен |
DM.pQuery.Open; |
// если пароль не совпадает |
|
if pwd<>Trim(Edit1.Text) then |
end; |
// то выдаём сообщение |
end; |
MessageDlg('Неверный пароль!!!',mtError, [mbOk], 0) |
procedure TSmenaParol.FormShow(Sender: TObject); |
else // иначе |
begin |
begin |
DM.pQuery.SQL.Clear; |
//проверяем дублирование пароля |
DM.pQuery.SQL.Add('SELECT * FROM PWDTBL;'); |
if Edit2.Text=Edit3.Text then |
DM.pQuery.Open; |
begin |
end; |
//если совпадает, то обновляем запись в таблице |
|
DM.pQuery.SQL.Clear; |
end. |
DM.pQuery.SQL.Add('UPDATE PWDTBL SET |
unit o_sotr; |
PASS="'+Edit3.Text+'" WHERE |
|
USER_ID='+inttostr(DBLookupComboBox1.KeyValue)+';'); |
interface |
DM.pQuery.ExecSQL; |
|
MainForm:= TMainForm.Create(self); // создание формы |
uses |
основного меню |
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, |
MainForm.Show; |
Forms, |
(**устанавливаем ограничения в соответствии с |
Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ComCtrls; |
пользователем**) |
|
if posetitel='Гость' then |
type |
begin |
TForm3 = class(TForm) |
MainForm.Sotr.Enabled:=false; |
Label2: TLabel; |
MainForm.Klient.Enabled:=false; |
Label3: TLabel; |
MainForm.Oformlenie.Enabled:=false; |
Label4: TLabel; |
MainForm.Work.Enabled:=false; |
DateTimePicker1: TDateTimePicker; |
MainForm.N9.Enabled:=false; |
DateTimePicker2: TDateTimePicker; |
end; |
Button1: TButton; |
if posetitel='Менеджер' then |
DataSource1: TDataSource; |
begin |
ADOQuery1: TADOQuery; |
MainForm.Sotr.Enabled:=false; |
DBGrid1: TDBGrid; |
MainForm.Klient.Enabled:=true; |
procedure Button1Click(Sender: TObject); |
MainForm.Oformlenie.Enabled:=true; |
private |
MainForm.Oformlenie.Enabled:=false; |
{ Private declarations } |
MainForm.Work.Enabled:=false; |
function FFormatDate(s1: string): string; |
MainForm.N9.Enabled:=false; |
public |
end; |
{ Public declarations } |
if posetitel='Администратор'then |
end; |
begin |
|
MainForm.Sotr.Enabled:=true; |
var |
MainForm.Klient.Enabled:=true; |
Form3: TForm3; |
MainForm.Oformlenie.Enabled:=true; |
period1,period2:string; |
MainForm.Oformlenie.Enabled:=true; |
implementation |
MainForm.Work.Enabled:=true; |
|
MainForm.N9.Enabled:=true; |
{$R *.dfm} |
end; |
function TForm3.FFormatDate(s1: string): string; |
// скрываем форму |
begin |
SmenaParol.Hide; |
Insert((s1[1]+s1[2]),s1,4); |
DM.pQuery.SQL.Clear; |
Delete(s1,1,2); |
DM.pQuery.Close; |
Insert((s1[4]+s1[5]),s1,1); |
end |
Delete(s1,6,2); |
else MessageDlg('Неверное дублирование пароля!!!',mtError, |
Delete(s1,3,1); |
[mbOk], 0); |
Insert('/',s1,3); |
end |
Delete(s1,6,1); |
else MessageDlg('Укажите пользователя',mtWarning, [mbOk], |
Insert('/',s1,6); |
0); |
Insert('#',s1,1); |
end; |
Insert('#',s1,12); |
|
Result := s1; |
procedure TSmenaParol.DBLookupComboBox1Click(Sender: TObject); |
end; |
begin |
|
posetitel:= DBLookupComboBox1.Text; |
|
if posetitel<>'' then |
procedure TForm3.Button1Click(Sender: TObject); |
begin |
var s1,s2:string; |
41