Курсовые работы / ПРИС КП_И_19
.pdfDBPath:=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;