Скачиваний:
8
Добавлен:
17.06.2023
Размер:
1.61 Mб
Скачать

DBPath:=ExtractFilePath(OpenDialog1.FileName);

//записываем в разделе Section_DBPath значение DBPath в параметр Path ини-файла

F.WriteString('Section_DBPath','Path', DBPath); DM.ADOConnection1.Close;

//формируем ConnectionString DM.ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.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); 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

SmenaParol: TSmenaParol; posetitel,pwd:string;

implementation

Uses DataM, MainFor; {$R *.dfm}

procedure TSmenaParol.BitBtn2Click(Sender: TObject); begin

SmenaParol.Close;

end;

procedure TSmenaParol.BitBtn1Click(Sender: TObject); begin

if posetitel<>'' then // если пользователь ясен

//если пароль не совпадает if pwd<>Trim(Edit1.Text) then

//то выдаём сообщение

MessageDlg('Неверный пароль!!!',mtError, [mbOk], 0) else // иначе

begin

//проверяем дублирование пароля if Edit2.Text=Edit3.Text then begin

//если совпадает, то обновляем запись в таблице

DM.pQuery.SQL.Clear;

DM.pQuery.SQL.Add('UPDATE PWDTBL SET PASS="'+Edit3.Text+'" WHERE USER_ID='+inttostr(DBLookupComboBox1.KeyValue)+';');

DM.pQuery.ExecSQL;

MainForm:= TMainForm.Create(self); // создание формы основного меню MainForm.Show;

(**устанавливаем ограничения в соответствии с пользователем**) if posetitel='Гость' then

begin MainForm.Sotr.Enabled:=false;

MainForm.Klient.Enabled:=false;

MainForm.Oformlenie.Enabled:=false;

MainForm.Work.Enabled:=false;

MainForm.N9.Enabled:=false;

end;

if posetitel='Менеджер' then begin MainForm.Sotr.Enabled:=false;

MainForm.Klient.Enabled:=true;

MainForm.Oformlenie.Enabled:=true;

MainForm.Oformlenie.Enabled:=false;

MainForm.Work.Enabled:=false;

MainForm.N9.Enabled:=false;

end;

if posetitel='Администратор'then begin MainForm.Sotr.Enabled:=true; MainForm.Klient.Enabled:=true;

MainForm.Oformlenie.Enabled:=true;

MainForm.Oformlenie.Enabled:=true;

MainForm.Work.Enabled:=true;

MainForm.N9.Enabled:=true;

end;

// скрываем форму

SmenaParol.Hide;

DM.pQuery.SQL.Clear;

DM.pQuery.Close; end

else MessageDlg('Неверное дублирование пароля!!!',mtError, [mbOk], 0); end

else MessageDlg('Укажите пользователя',mtWarning, [mbOk], 0);

end;

procedure TSmenaParol.DBLookupComboBox1Click(Sender: TObject); begin

posetitel:= DBLookupComboBox1.Text; if posetitel<>'' then

begin

//устанавливаем фокус в поле ввода пароля

Edit1.SetFocus;

DM.pQuery.Close;

DM.pQuery.SQL.Clear;

//формируем запрос по ключевому полю для выбранного пользователя

DM.pQuery.SQL.Add('SELECT * FROM PWDTBL WHERE USER_ID='+inttostr(DBLookupComboBox1.KeyValue)+';'); DM.pQuery.Open;

//сохраняем пароль pwd:=DM.pQuery.FieldByName('PASS').AsString; DM.pQuery.SQL.Clear;

//возвращаем запрос в исходное состояние

DM.pQuery.SQL.Add('SELECT * FROM PWDTBL;'); DM.pQuery.Open;

end;

end;

procedure TSmenaParol.FormShow(Sender: TObject); begin

DM.pQuery.SQL.Clear; DM.pQuery.SQL.Add('SELECT * FROM PWDTBL;'); DM.pQuery.Open;

end;

end.

unit o_sotr;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ComCtrls;

type

TForm3 = class(TForm) Label2: TLabel; Label3: TLabel; Label4: TLabel;

DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; Button1: TButton;

DataSource1: TDataSource;

ADOQuery1: TADOQuery; DBGrid1: TDBGrid;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

function FFormatDate(s1: string): string; public

{ Public declarations } end;

var

Form3: TForm3; period1,period2:string;

implementation

{$R *.dfm}

function TForm3.FFormatDate(s1: string): string; begin

Insert((s1[1]+s1[2]),s1,4);

Delete(s1,1,2);

Insert((s1[4]+s1[5]),s1,1);

Delete(s1,6,2);

Delete(s1,3,1);

Insert('/',s1,3);

Delete(s1,6,1);

Insert('/',s1,6);

Insert('#',s1,1);

Insert('#',s1,12); Result := s1; end;

procedure TForm3.Button1Click(Sender: TObject); var s1,s2:string;

n, count: integer; begin

if DateTimePicker1.DateTime>DateTimePicker2.DateTime then begin

ShowMessage('No!'); end

else begin

s1:= FFormatDate(DateToStr(DateTimePicker1.Date)); s2:= FFormatDate(DateToStr(DateTimePicker2.Date)); ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT [6].FIO, Sum([6].[Count-id_zakaz]) AS [Sum-Count-id_zakaz]'+

'FROM [6] '+

'WHERE (([6].DataNach)>='+s1+' And ([6].DataNach)<='+s2+')'+

'GROUP BY [6].FIO, [6].DataNach' +

'ORDER BY Count([6].id_zakaz) DESC');

ADOQuery1.Open;

end;

end;

end. unit O2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Menus, ComCtrls, Grids, DBGrids;

type

TO_2 = class(TForm) DBGrid1: TDBGrid;

HeaderControl1: THeaderControl; SaveDialog1: TSaveDialog; PopupMenu1: TPopupMenu; ComboBox1: TComboBox; Edit1: TEdit;

Label1: TLabel;

procedure FormCreate(Sender: TObject); procedure Edit1Change(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

O_2: TO_2;

implementation Uses DataM;

{$R *.dfm}

procedure TO_2.FormCreate(Sender: TObject); var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.DogQuery.SQL.Clear;

DM.DogQuery.SQL.Add('SELECT * FROM Dogovor2;'); DM.DogQuery.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

procedure TO_2.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.DogQuery.SQL.Clear;

//Формирования запроса по полю сохранённому в переменной S

DM.DogQuery.SQL.Add('Select * from Dogovor2 WHERE '+s+' LIKE "'+Edit1.text+'%"'); // Обновляем

DM.DogQuery.Close;

DM.DogQuery.Open;

end;

end. unit O3;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, DB, ADODB, Grids, DBGrids;

type

TO_YSLYGA = class(TForm) DataSource1: TDataSource; ADOQuery1: TADOQuery; Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; Button1: TButton;

DBGrid1: TDBGrid;

procedure Button1Click(Sender: TObject); private

{ Private declarations }

function FFormatDate(s1: string): string; public

{ Public declarations } end;

var

O_YSLYGA: TO_YSLYGA; period1,period2:string;

implementation

{$R *.dfm}

function TO_YSLYGA.FFormatDate(s1: string): string; begin

Insert((s1[1]+s1[2]),s1,4);

Delete(s1,1,2);

Insert((s1[4]+s1[5]),s1,1);

Delete(s1,6,2);

Delete(s1,3,1);

Insert('/',s1,3);

Delete(s1,6,1);

Insert('/',s1,6);

Insert('#',s1,1);

Insert('#',s1,12); Result := s1; end;

procedure TO_YSLYGA.Button1Click(Sender: TObject); var s1,s2:string;

n, count: integer; begin

if DateTimePicker1.DateTime>DateTimePicker2.DateTime then begin

ShowMessage('No!'); end

else begin

s1:= FFormatDate(DateToStr(DateTimePicker1.Date)); s2:= FFormatDate(DateToStr(DateTimePicker2.Date)); ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT [4].id_zakaz, [4].Nazvanie, [4].DataNach, [4].Выражение1'+

'FROM [4] '+

'WHERE (([4].DataNach)>='+s1+' And ([4].DataNach)<='+s2+')'+

'GROUP BY [4].id_zakaz, [4].Nazvanie, [4].DataNach, [4].Выражение1'+

'ORDER BY [4].Выражение1 DESC');

ADOQuery1.Open;

end;

end;

end.

unit OT22;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ComCtrls;

type

TOT2 = class(TForm) Label2: TLabel; Label3: TLabel; Label4: TLabel;

DateTimePicker1: TDateTimePicker; DateTimePicker2: TDateTimePicker; Button1: TButton;

DataSource1: TDataSource;

ADOQuery1: TADOQuery; DBGrid1: TDBGrid;

private

{Private declarations } public

{Public declarations } end;

var

OT2: TOT2;

implementation

{$R *.dfm}

end.

unit Parol;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DBCtrls, StdCtrls, Buttons, DB, ADODB;

type

TForm2 = class(TForm) Label1: TLabel; Label2: TLabel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

OpenDialog1: TOpenDialog;

DBLookupComboBox1: TDBLookupComboBox; Edit1: TEdit;

procedure BitBtn2Click(Sender: TObject);

procedure DBLookupComboBox1Click(Sender: TObject); procedure BitBtn1Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Form2: TForm2;

pwd:string; // верный пароль

flag:boolean; // признак существования формы posetitel:string;

implementation

Uses DataM, MainFor, Zakaz; {$R *.dfm}

procedure TForm2.BitBtn2Click(Sender: TObject); begin

Form2.Close;

end;

procedure TForm2.DBLookupComboBox1Click(Sender: TObject); begin

posetitel:= DBLookupComboBox1.Text; if posetitel<>'' then

begin

Edit1.SetFocus;

DM.pQuery.Close;

DM.pQuery.SQL.Clear;

DM.pQuery.SQL.Add('SELECT * FROM PWDTBL WHERE USER_ID='+inttostr(DBLookupComboBox1.KeyValue)+';');

DM.pQuery.Open;

pwd:=DM.pQuery.FieldByName('PASS').AsString; DM.pQuery.SQL.Clear;

DM.pQuery.SQL.Add('SELECT * FROM PWDTBL;'); DM.pQuery.Open;

end;

end;

procedure TForm2.BitBtn1Click(Sender: TObject); begin

if posetitel<>'' then

if pwd<>Trim(Edit1.Text) then MessageDlg('Неверный пароль',mtError, [mbOk], 0)

else begin

flag:=false;

//anee iniiaiay oi?ia aua ia nicaaia, oi nicaa?i, oi anou yoi aoia a nenoaio if not flag then

begin

MainForm:= TMainForm.Create(self); // nicaaiea oi?iu iniiaiiai iai? flag:=true;

end;

MainForm.Show;

if posetitel='Администратор' then begin

end;

if posetitel='Менеджер' then begin //MainForm.Sotr.Enabled:=true; MainForm.Klient.Enabled:=true;

MainForm.Oformlenie.Enabled:=true;

MainForm.Oformlenie.Enabled:=true;

MainForm.Work.Enabled:=true;

MainForm.N9.Enabled:=true;

MainForm.N12.Enabled:=false;

end;

if posetitel='Гость'then begin

// MainForm.Sotr.Enabled:=false; MainForm.Klient.Enabled:=false; MainForm.Oformlenie.Enabled:=false; MainForm.Work.Enabled:=false; MainForm.N9.Enabled:=false; MainForm.N12.Enabled:=false;

end;

// ne?uaaai oi?io Form2.Hide; DM.pQuery.SQL.Clear; DM.pQuery.Close;

end // iieuciaaoaeu ia aua?ai

else MessageDlg('Выбери пользователя',mtWarning, [mbOk], 0); end;

end.

unit Skidka;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls, Mask;

type

TS_Skidka = class(TForm) DBGrid1: TDBGrid; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit;

DBNavigator1: TDBNavigator; Label1: TLabel;

Label2: TLabel;

Label3: TLabel; RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; RadioButton2: TRadioButton; DBEdit4: TDBEdit; DBEdit5: TDBEdit;

Label4: TLabel;

Timer1: TTimer;

procedure FormCreate(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn);

procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure DBNavigator1BeforeAction(Sender: TObject;

Button: TNavigateBtn);

procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure DBEdit3Enter(Sender: TObject); procedure DBEdit3Exit(Sender: TObject);

private

{ Private declarations } procedure Refresh;

procedure isEdit; procedure notEdit;

function checkEdit:boolean; public

{ Public declarations } end;

const

nSkidka_SQL='SELECT * FROM nSkidka'; var

S_Skidka: TS_Skidka;

ins:boolean;// признак редактирования

implementation Uses DataM; {$R *.dfm}

procedure TS_Skidka.Refresh; var i:integer;

begin DM.ADOConnection1.Connected:=true; DM.SkidkaQuery.SQL.Clear;

DM.SkidkaQuery.SQL.Add('SELECT * FROM nSkidka;'); DM.SkidkaQuery.Open;

end;

procedure TS_Skidka.FormCreate(Sender: TObject); begin

DM.ADOConnection1.Connected:=true;

DM.SkidkaQuery.SQL.Clear; DM.SkidkaQuery.SQL.Add('SELECT * FROM nSkidka;'); DM.SkidkaQuery.Open;

end;

procedure TS_Skidka.isEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckEditQuery.SQL.Text:='UPDATE nSkidka SET nSkidka.EDIT = True WHERE nSkidka.id_sk='+DBEdit1.Text+';'; DM.CheckEditQuery.ExecSQL;

DM.CheckEditQuery.SQL.Text:=nSkidka_SQL+' WHERE id_sk='+DBEdit1.Text+';'; DM.CheckEditQuery.Open;

end;

end;

procedure TS_Skidka.notEdit; begin

if DBEdit1.Text<>'' then begin

DM.CheckEditQuery.SQL.Text:='UPDATE nSkidka SET nSkidka.EDIT = False WHERE nSkidka.id_sk='+DBEdit1.Text+';'; DM.CheckEditQuery.ExecSQL;

DM.CheckEditQuery.SQL.Text:=nSkidka_SQL+' WHERE id_sk='+DBEdit1.Text+';'; DM.CheckEditQuery.Open;

end;

end;

function TS_Skidka.checkEdit:boolean; var bool:boolean;

begin checkEdit:=false;

if DBEdit1.Text<>'' then DM.CheckEditQuery.SQL.Text:=nSkidka_SQL+' WHERE id_sk='+DBEdit1.Text+';'; DM.CheckEditQuery.Open;

if DBEdit5.Text<>'' then begin

bool:=not strtobool(DBEdit5.Text); DBEdit1.Enabled:=bool; DBEdit2.Enabled:=bool; DBEdit3.Enabled:=bool; Label4.Visible:= not bool; checkEdit:=not bool;

end;

end;

procedure TS_Skidka.DBGrid1TitleClick(Column: TColumn); var

s:string; //направление сорировки i:integer;

clr:TColor; // цвет колонки при сортировке begin

//по умолчанию сортировка по возрастанию

//цвет колонки - зеленый

s:=' ASC';

clr:= clMoneyGreen;

//меняем цвет и направление если пользователь выбрал иное if RadioButton2.Checked then

begin

s:=' DESC'; clr:= clSkyBlue;

end;

//возвращаем исходный цвет всех колонок

//и подсвечиваем выбранную колонку

for i:=0 to DBGrid1.Columns.Count-1 do DBGrid1.Columns.Items[i].Title.Color:= clBtnFace; DBGrid1.Columns.Items[Column.Index].Title.Color:=clr; // выполняем сортировку по выбранной колонке

DM.SkidkaQuery.Sort:= DBGrid1.Columns.Items[Column.Index].FieldName+s;

Соседние файлы в папке Курсовые работы