Курсовые работы / ПРИС П _22
.pdfWindows, 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