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

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms,

Dialogs, Menus, Grids, DBGrids, StdCtrls, ExtCtrls;

type

TFrmPreiskurant = class(TForm) MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem; DBGrid1: TDBGrid; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Edit1: TEdit;

ComboBox1: TComboBox;

GroupBox1: TGroupBox; RadioButton1: TRadioButton; RadioButton2: TRadioButton;

procedure FormCreate(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure Edit1Change(Sender: TObject); procedure FormShow(Sender: TObject); procedure Refresh;

procedure N1Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

const

preiskurant_SQL='select * from preiskurant';

var

FrmPreiskurant: TFrmPreiskurant;

implementation

uses DataModule, authorization, EditPreiskurant;

{$R *.dfm}

procedure TFrmPreiskurant.Refresh; var

s:string; begin

if DM.PreiskurantQuery.FieldValues['pr_id']<>null then begin

s:=DM.PreiskurantQuery.FieldValues['pr_id'];//запоминаем код DM.PreiskurantQuery.Close; DM.PreiskurantQuery.Open; DM.PreiskurantQuery.Locate('pr_id',s,[]);//

перемещаемся на нужную позицию end;

end;

procedure TFrmPreiskurant.FormCreate(Sender: TObject); var

i: integer; begin

//подключение к БД

DM.ADOConnection.Connected:=true; //очистка текста запроса

DM.PreiskurantQuery.SQL.Clear; //формирование запроса

DM.PreiskurantQuery.SQL.Add(preiskurant_SQL+';');

//исполнение запроса и вывод результата

DM.PreiskurantQuery.Open;

// Заполняем ComboBox1 по заголовкам секций компонента

DBGrid1

for i:=0 to DBGrid1.Columns.Count-1 do

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

procedure TFrmPreiskurant.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.PreiskurantQuery.Sort:=

DBGrid1.Columns.Items[Column.Index].FieldName+s;

end;

procedure TFrmPreiskurant.Edit1Change(Sender: TObject); var

S:String; begin

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0;

//Сохранение имени поля BDGrid1 в переменную S, по индексу выбранной записи в ComboBox1

s:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

DM.PreiskurantQuery.SQL.Clear;

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

DM.PreiskurantQuery.SQL.Add(preiskurant_SQL+' WHERE '+s+' LIKE '''+Edit1.Text+'%''');

DM.PreiskurantQuery.Open; // Обновляем

Refresh;

end;

procedure TFrmPreiskurant.FormShow(Sender: TObject); begin

if chek='Пользователь' then begin

N1.Enabled:=false;

N2.Enabled:=false;

end;

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

N1.Enabled:=false;

N2.Enabled:=false;

N3.Enabled:=false;

end;

end;

procedure TFrmPreiskurant.N1Click(Sender: TObject); begin

OpenForm(false); // вызов процедуры "открытие формы" второй случай (см.выше)

Refresh; //вызов процедуры обновления end;

procedure TFrmPreiskurant.N2Click(Sender: TObject); begin

Refresh; // вызов процедуры обновления

if DM.PreiskurantQuery.FieldValues['edit']=false then begin

OpenForm(true);

Refresh;

42

end

 

 

Windows, Messages, SysUtils, Variants, Classes, Graphics,

else

 

 

Controls, Forms,

MessageDlg('Запись

редактируется

другим

Dialogs, Menus, StdCtrls, ExtCtrls, Grids, DBGrids;

пользователем',mtError,[mbOK],0);

 

 

 

end;

 

 

type

 

 

 

TFrmSpravki = class(TForm)

procedure TFrmPreiskurant.N3Click(Sender: TObject);

MainMenu1: TMainMenu;

begin

 

 

N1: TMenuItem;

Refresh;

 

 

N2: TMenuItem;

if DM.PreiskurantQuery.FieldValues['edit']=false then

N3: TMenuItem;

begin

 

 

DBGrid1: TDBGrid;

if

MessageDlg('Удалить

Panel1: TPanel;

запись?',mtWarning,[mbYes,mbNo],0)=mrYes then//если "да"

 

Label1: TLabel;

begin

 

 

Label2: TLabel;

DM.PreiskurantQuery.Delete;

 

Edit1: TEdit;

Refresh;

 

 

ComboBox1: TComboBox;

end;

 

 

GroupBox1: TGroupBox;

end

 

 

RadioButton1: TRadioButton;

else

 

 

RadioButton2: TRadioButton;

MessageDlg('Запись

редактируется

другим

procedure FormShow(Sender: TObject);

пользователем',mtError,[mbOK],0);

 

 

procedure Edit1Change(Sender: TObject);

end;

 

 

procedure DBGrid1TitleClick(Column: TColumn);

 

 

 

procedure FormCreate(Sender: TObject);

end.

 

 

procedure Refresh;

unit Rep2;

 

 

procedure N3Click(Sender: TObject);

 

 

 

procedure N1Click(Sender: TObject);

interface

 

 

procedure N2Click(Sender: TObject);

 

 

 

private

uses

 

 

{ Private declarations }

Windows, Messages, SysUtils, Variants, Classes, Graphics,

public

Controls, Forms,

 

 

{ Public declarations }

Dialogs, StdCtrls, Grids, DBGrids;

 

end;

 

 

 

const

type

 

 

spravki_SQL= 'Select * from spravki';

TFrmRep2 = class(TForm)

 

 

 

DBGrid1: TDBGrid;

 

 

var

Button1: TButton;

 

 

FrmSpravki: TFrmSpravki;

procedure Button1Click(Sender: TObject);

 

 

procedure FormCreate(Sender: TObject);

 

implementation

private

 

 

 

{ Private declarations }

 

 

uses DataModule, authorization, EditSpavki, Preiskurant;

public

 

 

 

{ Public declarations }

 

 

{$R *.dfm}

end;

 

 

 

 

 

 

procedure TFrmSpravki.Refresh;

var

 

 

var s:string;

FrmRep2: TFrmRep2;

 

 

begin

 

 

 

if DM.SpravkiQuery.FieldValues['s_id']<>null then

implementation

begin

 

 

 

s:=DM.SpravkiQuery.FieldValues['s_id'];//запоминаем код

uses DataModule;

DM.SpravkiQuery.Close;

 

 

DM.SpravkiQuery.Open;

 

{$R *.dfm}

DM.SpravkiQuery.Locate('s_id',s,[]);// перемещаемся на

 

нужную позицию

 

 

procedure TFrmRep2.Button1Click(Sender: TObject);

end;

 

 

begin

end;

 

 

Close;

 

 

 

end;

procedure TFrmSpravki.FormShow(Sender: TObject);

 

 

begin

 

 

procedure TFrmRep2.FormCreate(Sender: TObject);

if chek='Пользователь' then

 

begin

begin

 

 

DM.ADOConnection.Connected:=true;

N1.Enabled:=false;

 

//очистка текста запроса

N2.Enabled:=false;

 

DM.ADOQuery1.SQL.Clear;

end;

 

 

//формирование запроса

if chek='Гость' then

 

DM.ADOQuery1.SQL.Add('select * from Запрос1');

begin

 

 

//исполнение запроса и вывод результата

N1.Enabled:=false;

 

DM.ADOQuery1.Open;

N2.Enabled:=false;

 

end;

N3.Enabled:=false;

 

 

end;

 

 

end.

end;

 

 

unit Spravki;

procedure TFrmSpravki.Edit1Change(Sender: TObject);

 

 

var

 

 

interface

S:String;

 

 

 

begin

 

 

uses

if

ComboBox1.ItemIndex=-1

then

 

ComboBox1.ItemIndex:=0;

 

 

43

//Сохранение имени поля BDGrid1 в переменную S, по

//исполнение запроса и вывод результата

 

индексу выбранной записи в ComboBox1

DM.SpravkiQuery.Open;

 

 

 

 

DM.PreiskurantQuery.SQL.Clear;

 

s:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName;

//формирование запроса

 

 

DM.SpravkiQuery.SQL.Clear;

DM.PreiskurantQuery.SQL.Add(preiskurant_SQL+';');

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

//исполнение запроса и вывод результата

 

переменную S

 

DM.PreiskurantQuery.Open;

 

 

DM.SpravkiQuery.SQL.Add(spravki_SQL+' WHERE '+s+'

// Заполняем ComboBox1 по заголовкам секций компонента

LIKE '''+Edit1.Text+'%''');

 

DBGrid1

 

 

DM.SpravkiQuery.Open;

for i:=0 to DBGrid1.Columns.Count-1 do

 

// Обновляем

 

 

 

 

Refresh;

 

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Caption);

end;

 

end;

 

 

procedure

TFrmSpravki.DBGrid1TitleClick(Column:

procedure TFrmSpravki.N3Click(Sender: TObject);

 

TColumn);

 

begin

 

 

var

 

Refresh;

 

 

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

if DM.SpravkiQuery.FieldValues['edit']=false then

 

i:integer;

 

begin

 

 

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

if

MessageDlg('Удалить

begin

 

запись?',mtWarning,[mbYes,mbNo],0)=mrYes then//если "да"

 

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

begin

 

 

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

DM.SpravkiQuery.Delete;

 

 

s:=' ASC';

 

Refresh;

 

 

clr:= clMoneyGreen;

end;

 

 

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

end

 

 

иное

 

else

 

 

if RadioButton2.Checked then

MessageDlg('Запись

редактируется

другим

begin

 

пользователем',mtError,[mbOK],0);

 

 

s:=' DESC';

 

end;

 

 

clr:= clSkyBlue;

 

 

 

 

end;

 

procedure TFrmSpravki.N1Click(Sender: TObject);

 

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

begin

 

 

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

OpenForm(false);

 

 

for i:=0 to DBGrid1.Columns.Count-1 do

Refresh;

 

 

DBGrid1.Columns.Items[i].Title.Color:= clBtnFace;

end;

 

 

DBGrid1.Columns.Items[Column.Index].Title.Color:=clr;

 

 

 

// выполняем сортировку по выбранной колонке

procedure TFrmSpravki.N2Click(Sender: TObject);

 

DM.SpravkiQuery.Sort:=

begin

 

 

DBGrid1.Columns.Items[Column.Index].FieldName+s;

Refresh;

 

 

end;

 

if DM.SpravkiQuery.FieldValues['edit']=false then

 

 

 

begin

 

 

procedure TFrmSpravki.FormCreate(Sender: TObject);

OpenForm(true);

 

 

var

 

Refresh;

 

 

i: integer;

 

end

 

 

begin

 

else

 

 

//подключение к БД

MessageDlg('Запись

редактируется

другим

DM.ADOConnection.Connected:=true;

пользователем',mtError,[mbOK],0);

 

 

//очистка текста запроса

end;

 

 

DM.SpravkiQuery.SQL.Clear;

 

 

 

//формирование запроса

end.

 

 

DM.SpravkiQuery.SQL.Add(spravki_SQL+';');

 

 

 

44

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