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

 

 

Обязательное поле: нет

 

pr_dolzhnost

Размер поля: Длинное целое

 

 

Индексированное поле: нет

 

 

Обязательное поле: нет

 

EDIT

Формат поля: Истина/Ложь

 

 

Значенеие по умолчанию: 0

 

 

Индексированное поле: нет

prepodDiscipline

prepDisc_id

Размер поля: Длинное целое

 

 

Индексированное поле: Да (совпадения не

 

 

допускаются)

 

prepDisc_prep

Размер поля: Длинное целое

 

 

Индексированное поле: нет

 

 

Обязательное поле: нет

 

prepDisc_disc

Размер поля: Длинное целое

 

 

Индексированное поле: нет

 

 

Обязательное поле: нет

 

EDIT

Формат поля: Истина/Ложь

 

 

Значенеие по умолчанию: 0

 

 

Индексированное поле: нет

tarify

t_id_tarifa

Размер поля: Длинное целое

 

 

Новые значения: последовательные

 

 

Индексированное поле: Да (совпадения не

 

 

допускаются)

 

t_dolzhnost

Размер поля: 255

 

 

Пустые строки: да

 

 

Индексированное поле: да

 

 

Обязательное поле: нет

 

t_tarif

Размер поля: 255

 

 

Пустые строки: да

 

 

Индексированное поле: нет

 

 

Обязательное поле: нет

 

EDIT

Формат поля: Истина/Ложь

 

 

Значенеие по умолчанию: 0

 

 

Индексированное поле: нет

32

ПРИЛОЖЕНИЕ В

Листинг программы

unit DiscipEkzUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, StdCtrls, Grids, DBGrids, MyWord, DBTables, ExtCtrls;

type

TDiscipEkzForm = class(TForm) Button2: TButton;

Button3: TButton; DBGrid1: TDBGrid; DataSource1: TDataSource;

ADODataSet1: TADODataSet; Table1: TTable;

PrinterSetupDialog1: TPrinterSetupDialog; Panel2: TPanel;

Label4: TLabel;

Label5: TLabel; ComboBox1: TComboBox; Edit4: TEdit;

ADODataSet2: TADODataSet; Button1: TButton;

procedure ComboBox1Change(Sender: TObject); procedure FormActivate(Sender: TObject); procedure Edit4Change(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn);

private

{Private declarations } public

{Public declarations } end;

var

DiscipEkzForm: TDiscipEkzForm;

implementation

{$R *.dfm}

procedure TDiscipEkzForm.ComboBox1Change(Sender: TObject);

Var S:String; begin

ADODataSet1.Active:=False;

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

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

S:=Combobox1.Items[ComboBox1.ItemIndex]; ADODataSet1.CommandText:='SELECT nagruzka.n_semestr,

prepodavateli.pr_FIO, discipline.d_nazvanie, discipline.d_ekz'#13#10 +

'FROM (prepodavateli INNER JOIN (discipline INNER JOIN PrepodDiscipline ON discipline.d_id_discipline = PrepodDiscipline.prepDisc_disc) ON prepodavateli.pr_id_prepoda ='#13#10 +

'PrepodDiscipline.prepDisc_prep) INNER JOIN nagruzka ON PrepodDiscipline.prepDisc_id = nagruzka.n_prepDisc'#13#10 + 'WHERE ((prepodavateli.pr_FIO)="'+s+'") AND ((discipline.d_ekz)=True)';

ADODataSet1.Active:=True;

end;

procedure TDiscipEkzForm.FormActivate(Sender: TObject); begin

ADODataSet2.Active:=False; ADODataSet2.CommandText:='select * from prepodavateli'; ADODataSet2.Active:=True;

ADODataSet2.First;

While not ADODataSet2.eof do begin

ComboBox1.Items.Add(ADODataSet2.FieldByName('pr_FIO').As String);

ADODataSet2.Next;

end;

ADODataSet1.Active:=False; ADODataSet1.CommandText:='SELECT nagruzka.n_semestr,

prepodavateli.pr_FIO, discipline.d_nazvanie, discipline.d_ekz'#13#10 +

'FROM (prepodavateli INNER JOIN (discipline INNER JOIN PrepodDiscipline ON discipline.d_id_discipline = PrepodDiscipline.prepDisc_disc) ON prepodavateli.pr_id_prepoda ='#13#10 +

'PrepodDiscipline.prepDisc_prep) INNER JOIN nagruzka ON PrepodDiscipline.prepDisc_id = nagruzka.n_prepDisc'#13#10 + 'WHERE (((discipline.d_ekz)=True))';

ADODataSet1.Active:=True;

end;

procedure TDiscipEkzForm.Edit4Change(Sender: TObject); Var S:String;

begin ADODataSet1.Active:=False;

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

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

S:=Combobox1.Items[ComboBox1.ItemIndex]; ADODataSet1.CommandText:='SELECT nagruzka.n_semestr, prepodavateli.pr_FIO, discipline.d_nazvanie, discipline.d_ekz'#13#10 +

'FROM (prepodavateli INNER JOIN (discipline INNER JOIN PrepodDiscipline ON discipline.d_id_discipline = PrepodDiscipline.prepDisc_disc) ON prepodavateli.pr_id_prepoda ='#13#10 +

'PrepodDiscipline.prepDisc_prep) INNER JOIN nagruzka ON PrepodDiscipline.prepDisc_id = nagruzka.n_prepDisc'#13#10 + 'WHERE (((nagruzka.n_semestr) = "'+Edit4.text+'") AND ((prepodavateli.pr_FIO)="'+s+'") AND ((discipline.d_ekz)=True))'; ADODataSet1.Active:=True;

end;

procedure TDiscipEkzForm.Button2Click(Sender: TObject); var table:integer;

begin

if CreateWord then begin

VisibleWord(false);

AddDoc;

Table1.DisableControls;

WordTableAddFromDBGrid(DBGrid1,true,table);

VisibleWord(true);

Table1.EnableControls;

end;

end;

procedure TDiscipEkzForm.Button3Click(Sender: TObject);

33

begin PrinterSetupDialog1.Execute; end;

procedure TDiscipEkzForm.Button1Click(Sender: TObject); begin

Edit4.clear;

ADODataSet1.Active:=False; ADODataSet1.CommandText:='SELECT nagruzka.n_semestr,

prepodavateli.pr_FIO, discipline.d_nazvanie, discipline.d_ekz'#13#10 +

'FROM (prepodavateli INNER JOIN (discipline INNER JOIN PrepodDiscipline ON discipline.d_id_discipline = PrepodDiscipline.prepDisc_disc) ON prepodavateli.pr_id_prepoda ='#13#10 +

'PrepodDiscipline.prepDisc_prep) INNER JOIN nagruzka ON PrepodDiscipline.prepDisc_id = nagruzka.n_prepDisc'#13#10 + 'WHERE (((discipline.d_ekz)=True))';

ADODataSet1.Active:=True;

ComboBox1.ItemIndex:=-1; end;

procedure TDiscipEkzForm.DBGrid1TitleClick(Column: TColumn);

begin

if ADODataSet1.Sort=Column.FieldName+' ASC' then ADODataSet1.Sort:=Column.FieldName+' DESC' else

ADODataSet1.Sort:=Column.FieldName+' ASC'; end;

end.

unit DisciplineUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, DB, ADODB, DBCtrls, StdCtrls, Mask, Grids, DBGrids;

type

TDisciplineForm = class(TForm) DBGrid1: TDBGrid;

Panel1: TPanel;

Label2: TLabel;

Label1: TLabel;

Label4: TLabel;

Label3: TLabel; DBEdit2: TDBEdit; DBEdit1: TDBEdit; DBEdit3: TDBEdit; Button4: TButton; Button3: TButton; Button2: TButton; Button1: TButton; Button5: TButton; DBEdit4: TDBEdit;

ADODataSet1: TADODataSet; DataSource1: TDataSource; DBEdit5: TDBEdit;

Label5: TLabel;

Label6: TLabel; DBCheckBox1: TDBCheckBox; DBCheckBox2: TDBCheckBox; ADODataSet2: TADODataSet; Panel2: TPanel;

Label7: TLabel;

Label8: TLabel; ComboBox1: TComboBox; Edit4: TEdit;

Label12: TLabel; DBEdit6: TDBEdit;

DBNavigator1: TDBNavigator; Timer1: TTimer;

procedure FormActivate(Sender: TObject);

procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit4Change(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit3Enter(Sender: TObject); procedure DBEdit4Enter(Sender: TObject); procedure DBEdit5Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure DBEdit3Exit(Sender: TObject); procedure DBEdit4Exit(Sender: TObject); procedure DBEdit5Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn);

procedure DBGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

procedure DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

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

private

{ Private declarations } procedure Refresh; procedure isEdit; procedure notEdit;

function CheckEdit:boolean; public

{ Public declarations } end;

var

DisciplineForm: TDisciplineForm;

implementation

uses MainUnit, DM;

{$R *.dfm} var ins:boolean;

procedure TDisciplineForm.Refresh; var i:integer;

begin ADODataSet1.Active:=False; ADODataSet1.Active:=True;

end;

procedure TDisciplineForm.isEdit; begin

if DBEdit1.Text<>'' then begin

DMForm.CheckEditQuery.SQL.Text:='UPDATE discipline SET discipline.EDIT = True WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.ExecSQL; DMForm.CheckEditQuery.SQL.Text:='select * from discipline WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.Open;

end;

end;

procedure TDisciplineForm.notEdit; begin

if DBEdit1.Text<>'' then begin

DMForm.CheckEditQuery.SQL.Text:='UPDATE discipline SET discipline.EDIT = False WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.ExecSQL; DMForm.CheckEditQuery.SQL.Text:='select * from discipline WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.Open;

end;

end;

34

function TDisciplineForm.checkEdit:boolean; begin

checkEdit:=false;

if DBEdit1.Text<>'' then DMForm.CheckEditQuery.SQL.Text:='select * from discipline WHERE discipline.d_id_discipline='+DBEdit1.Text+';';

DMForm.CheckEditQuery.Open; if DBEdit6.Text<>'' then

begin

checkEdit:= strtobool(DBEdit6.Text); Label12.Visible:= strtobool(DBEdit6.Text); DBEdit2.Enabled:=not strtobool(DBEdit6.Text); DBEdit3.Enabled:=not strtobool(DBEdit6.Text); DBEdit4.Enabled:=not strtobool(DBEdit6.Text); DBEdit5.Enabled:=not strtobool(DBEdit6.Text); Button1.Enabled:=not strtobool(DBEdit6.Text); Button2.Enabled:=not strtobool(DBEdit6.Text); Button3.Enabled:=not strtobool(DBEdit6.Text); Button4.Enabled:=not strtobool(DBEdit6.Text); Button5.Enabled:=not strtobool(DBEdit6.Text); end;

end;

procedure TDisciplineForm.FormActivate(Sender: TObject); var i:integer;

begin ADODataSet1.Active:=False;

ADODataSet1.CommandText:='select * from discipline'; ADODataSet1.Active:=True;

ADODataSet2.Active:=False; ADODataSet2.CommandText:='SELECT * FROM discipline'; ADODataSet2.Active:=True;

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

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

;

end;

procedure TDisciplineForm.Button4Click(Sender: TObject); begin

ins:=true;

if DBEdit2.Enabled then DBEdit2.SetFocus; ADODataSet1.Insert;

end;

procedure TDisciplineForm.Button1Click(Sender: TObject); begin

ins:=false;

ADODataSet2.Active:=false; ADODataSet2.CommandText:='select * from discipline where

(d_nazvanie like "'+DBEdit2.Text+'")'; ADODataSet2.Active:=true;

if (DBEdit2.Text='') or (DBEdit3.Text='') or (DBEdit4.Text='') or (DBEdit5.Text='') then

begin

MessageDlg('Заполнитевсеполя',mtWarning, [mbOk], 0); end

else

if ADODataSet2.RecordCount>0 then begin

MessageDlg('Такаядисциплинаужеесть',mtWarning, [mbOk], 0);

ADODataSet1.Cancel; end

else begin

ADODataSet1['d_nazvanie']:=DBEdit2.Text; ADODataSet1['d_hour_lektsii']:=DBEdit3.Text; ADODataSet1['d_hour_lab']:=DBEdit4.Text; ADODataSet1['d_hour_practice']:=DBEdit5.Text; ADODataSet1['d_RZ']:=DBCheckBox1.State; ADODataSet1['d_ekz']:=DBCheckBox2.State; ADODataSet1.Post; ADODataSet1.Active:=False;

ADODataSet1.Active:=True;

ADODataSet2.Active:=False;

ADODataSet2.Active:=True; end

end;

procedure TDisciplineForm.Button5Click(Sender: TObject); begin

ADODataSet1.Active:=False; ADODataSet1.CommandText:='select * from discipline'; ADODataSet1.Active:=True;

ADODataSet2.Active:=False; ADODataSet2.CommandText:='SELECT * FROM discipline'; ADODataSet2.Active:=True;

end;

procedure TDisciplineForm.Button3Click(Sender: TObject); begin

{ADODataSet2.Active:=false; ADODataSet2.CommandText:='select * from prepodavateli

where (pr_FIO like "'+DBEdit2.Text+'")'; ADODataSet2.Active:=true;

if (DBEdit2.Text='') or (DBLookupComboBox1.KeyValue=null) then

begin

MessageDlg('Заполнитевсеполя',mtWarning, [mbOk], 0); end

else

if ADODataSet4.RecordCount>0 then begin

MessageDlg('Такойпреподавательужеесть',mtWarning, [mbOk], 0);

ADODataSet1.Cancel; end

else begin

ADODataSet1.Edit;

ADODataSet1.Post;

ADODataSet1.Active:=False;

ADODataSet1.Active:=True; end; }

end;

procedure TDisciplineForm.Button2Click(Sender: TObject); var i:Integer;

begin ADODataSet2.Active:=False;

ADODataSet2.CommandText:='SELECT * FROM discipline'; ADODataSet2.Active:=True;

ADODataSet1.Active:=True; i:=ADODataSet1.FieldValues['d_id_discipline']; ADODataSet2.Locate('d_id_discipline',i,[]); ADODataSet2.Delete; ADODataSet2.Active:=False; ADODataSet2.Active:=True; ADODataSet1.Active:=False; ADODataSet1.Active:=True;

end;

procedure TDisciplineForm.Edit4Change(Sender: TObject); Var S:String;

begin ADODataSet1.Active:=False;

if ComboBox1.ItemIndex=-1 then ComboBox1.ItemIndex:=0; // Сохранение имени поля DBGrid1 в переменную S, по индексу выбранной записи в ComboBox1

S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; ADODataSet1.CommandText:='SELECT * FROM discipline

WHERE '+s+' LIKE "'+Edit4.text+'%"'; ADODataSet1.Active:=True;

end;

procedure TDisciplineForm.DBGrid1TitleClick(Column: TColumn);

35

begin

ADODataSet1.Active:=False;

if ADODataSet1.Sort=Column.FieldName+' ASC' then

ADODataSet1.Active:=True;

ADODataSet1.Sort:=Column.FieldName+' DESC'

ADODataSet1.Locate('d_id_discipline',i,[]);

else

end;

ADODataSet1.Sort:=Column.FieldName+' ASC';

 

end;

procedure TDisciplineForm.DBGrid1KeyUp(Sender: TObject; var

 

Key: Word;

procedure TDisciplineForm.DBEdit1Change(Sender: TObject);

Shift: TShiftState);

begin

var i:integer;

if (DBEdit1.Text<>'')and(not ins) then checkEdit;

begin

end;

i:=ADODataSet1.FieldValues['d_id_discipline'];

 

ADODataSet1.Active:=False;

procedure TDisciplineForm.DBEdit2Enter(Sender: TObject);

ADODataSet1.Active:=True;

begin

ADODataSet1.Locate('d_id_discipline',i,[]);

Timer1.Enabled:=false;

end;

if (DBEdit1.Text<>'')and(not ins) then

 

if not checkEdit then isEdit;

procedure TDisciplineForm.DBGrid1KeyDown(Sender: TObject;

end;

var Key: Word;

 

Shift: TShiftState);

procedure TDisciplineForm.DBEdit3Enter(Sender: TObject);

var i:integer;

begin

begin

Timer1.Enabled:=false;

i:=ADODataSet1.FieldValues['d_id_discipline'];

if (DBEdit1.Text<>'')and(not ins) then

ADODataSet1.Active:=False;

if not checkEdit then isEdit;

ADODataSet1.Active:=True;

end;

ADODataSet1.Locate('d_id_discipline',i,[]);

 

end;

procedure TDisciplineForm.DBEdit4Enter(Sender: TObject);

 

begin

procedure TDisciplineForm.FormClose(Sender: TObject;

Timer1.Enabled:=false;

var Action: TCloseAction);

if (DBEdit1.Text<>'')and(not ins) then

begin

if not checkEdit then isEdit;

notEdit;

end;

Timer1.Enabled:=false;

 

end;

procedure TDisciplineForm.DBEdit5Enter(Sender: TObject);

 

begin

end.

Timer1.Enabled:=false;

 

if (DBEdit1.Text<>'')and(not ins) then

unit DisciplineUnit;

if not checkEdit then isEdit;

 

end;

interface

procedure TDisciplineForm.DBEdit2Exit(Sender: TObject);

uses

begin

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

Timer1.Enabled:=true;

Controls, Forms,

notEdit;

Dialogs, ExtCtrls, DB, ADODB, DBCtrls, StdCtrls, Mask, Grids,

end;

DBGrids;

procedure TDisciplineForm.DBEdit3Exit(Sender: TObject);

type

begin

TDisciplineForm = class(TForm)

Timer1.Enabled:=true;

DBGrid1: TDBGrid;

notEdit;

Panel1: TPanel;

end;

Label2: TLabel;

 

Label1: TLabel;

procedure TDisciplineForm.DBEdit4Exit(Sender: TObject);

Label4: TLabel;

begin

Label3: TLabel;

Timer1.Enabled:=true;

DBEdit2: TDBEdit;

notEdit;

DBEdit1: TDBEdit;

end;

DBEdit3: TDBEdit;

 

Button4: TButton;

procedure TDisciplineForm.DBEdit5Exit(Sender: TObject);

Button3: TButton;

begin

Button2: TButton;

Timer1.Enabled:=true;

Button1: TButton;

notEdit;

Button5: TButton;

end;

DBEdit4: TDBEdit;

 

ADODataSet1: TADODataSet;

procedure TDisciplineForm.Timer1Timer(Sender: TObject);

DataSource1: TDataSource;

var i:integer;

DBEdit5: TDBEdit;

begin

Label5: TLabel;

i:=ADODataSet1.FieldValues['d_id_discipline'];

Label6: TLabel;

ADODataSet1.Active:=False;

DBCheckBox1: TDBCheckBox;

ADODataSet1.Active:=True;

DBCheckBox2: TDBCheckBox;

ADODataSet1.Locate('d_id_discipline',i,[]);

ADODataSet2: TADODataSet;

end;

Panel2: TPanel;

 

Label7: TLabel;

procedure TDisciplineForm.DBGrid1CellClick(Column:

Label8: TLabel;

TColumn);

ComboBox1: TComboBox;

var i:integer;

Edit4: TEdit;

begin

Label12: TLabel;

i:=ADODataSet1.FieldValues['d_id_discipline'];

DBEdit6: TDBEdit;

36

DBNavigator1: TDBNavigator; Timer1: TTimer;

procedure FormActivate(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure Edit4Change(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn); procedure DBEdit1Change(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit3Enter(Sender: TObject); procedure DBEdit4Enter(Sender: TObject); procedure DBEdit5Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure DBEdit3Exit(Sender: TObject); procedure DBEdit4Exit(Sender: TObject); procedure DBEdit5Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject); procedure DBGrid1CellClick(Column: TColumn);

procedure DBGrid1KeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);

procedure DBGrid1KeyDown(Sender: TObject; var Key: Word; Shift: TShiftState);

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

private

{ Private declarations } procedure Refresh; procedure isEdit; procedure notEdit;

function CheckEdit:boolean; public

{ Public declarations } end;

var

DisciplineForm: TDisciplineForm;

implementation

uses MainUnit, DM;

{$R *.dfm} var ins:boolean;

procedure TDisciplineForm.Refresh; var i:integer;

begin ADODataSet1.Active:=False; ADODataSet1.Active:=True;

end;

procedure TDisciplineForm.isEdit; begin

if DBEdit1.Text<>'' then begin

DMForm.CheckEditQuery.SQL.Text:='UPDATE discipline SET discipline.EDIT = True WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.ExecSQL; DMForm.CheckEditQuery.SQL.Text:='select * from discipline WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.Open;

end;

end;

procedure TDisciplineForm.notEdit; begin

if DBEdit1.Text<>'' then begin

DMForm.CheckEditQuery.SQL.Text:='UPDATE discipline SET discipline.EDIT = False WHERE discipline.d_id_discipline='+DBEdit1.Text+';'; DMForm.CheckEditQuery.ExecSQL; DMForm.CheckEditQuery.SQL.Text:='select * from discipline WHERE discipline.d_id_discipline='+DBEdit1.Text+';';

DMForm.CheckEditQuery.Open;

end;

end;

function TDisciplineForm.checkEdit:boolean; begin

checkEdit:=false;

if DBEdit1.Text<>'' then DMForm.CheckEditQuery.SQL.Text:='select * from discipline WHERE discipline.d_id_discipline='+DBEdit1.Text+';';

DMForm.CheckEditQuery.Open; if DBEdit6.Text<>'' then

begin

checkEdit:= strtobool(DBEdit6.Text); Label12.Visible:= strtobool(DBEdit6.Text); DBEdit2.Enabled:=not strtobool(DBEdit6.Text); DBEdit3.Enabled:=not strtobool(DBEdit6.Text); DBEdit4.Enabled:=not strtobool(DBEdit6.Text); DBEdit5.Enabled:=not strtobool(DBEdit6.Text); Button1.Enabled:=not strtobool(DBEdit6.Text); Button2.Enabled:=not strtobool(DBEdit6.Text); Button3.Enabled:=not strtobool(DBEdit6.Text); Button4.Enabled:=not strtobool(DBEdit6.Text); Button5.Enabled:=not strtobool(DBEdit6.Text); end;

end;

procedure TDisciplineForm.FormActivate(Sender: TObject); var i:integer;

begin ADODataSet1.Active:=False;

ADODataSet1.CommandText:='select * from discipline'; ADODataSet1.Active:=True;

ADODataSet2.Active:=False; ADODataSet2.CommandText:='SELECT * FROM discipline'; ADODataSet2.Active:=True;

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

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

;

end;

procedure TDisciplineForm.Button4Click(Sender: TObject); begin

ins:=true;

if DBEdit2.Enabled then DBEdit2.SetFocus; ADODataSet1.Insert;

end;

procedure TDisciplineForm.Button1Click(Sender: TObject); begin

ins:=false;

ADODataSet2.Active:=false; ADODataSet2.CommandText:='select * from discipline where

(d_nazvanie like "'+DBEdit2.Text+'")'; ADODataSet2.Active:=true;

if (DBEdit2.Text='') or (DBEdit3.Text='') or (DBEdit4.Text='') or (DBEdit5.Text='') then

begin

MessageDlg('Заполнитевсеполя',mtWarning, [mbOk], 0); end

else

if ADODataSet2.RecordCount>0 then begin

MessageDlg('Такаядисциплинаужеесть',mtWarning, [mbOk], 0);

ADODataSet1.Cancel; end

else begin

ADODataSet1['d_nazvanie']:=DBEdit2.Text; ADODataSet1['d_hour_lektsii']:=DBEdit3.Text; ADODataSet1['d_hour_lab']:=DBEdit4.Text; ADODataSet1['d_hour_practice']:=DBEdit5.Text; ADODataSet1['d_RZ']:=DBCheckBox1.State;

37

ADODataSet1['d_ekz']:=DBCheckBox2.State;

 

ADODataSet1.Post;

procedure TDisciplineForm.DBGrid1TitleClick(Column:

ADODataSet1.Active:=False;

TColumn);

ADODataSet1.Active:=True;

begin

 

if ADODataSet1.Sort=Column.FieldName+' ASC' then

ADODataSet2.Active:=False;

ADODataSet1.Sort:=Column.FieldName+' DESC'

ADODataSet2.Active:=True;

else

end

ADODataSet1.Sort:=Column.FieldName+' ASC';

end;

end;

procedure TDisciplineForm.Button5Click(Sender: TObject);

procedure TDisciplineForm.DBEdit1Change(Sender: TObject);

begin

begin

ADODataSet1.Active:=False;

if (DBEdit1.Text<>'')and(not ins) then checkEdit;

ADODataSet1.CommandText:='select * from discipline';

end;

ADODataSet1.Active:=True;

 

 

procedure TDisciplineForm.DBEdit2Enter(Sender: TObject);

ADODataSet2.Active:=False;

begin

ADODataSet2.CommandText:='SELECT * FROM discipline';

Timer1.Enabled:=false;

ADODataSet2.Active:=True;

if (DBEdit1.Text<>'')and(not ins) then

end;

if not checkEdit then isEdit;

 

end;

procedure TDisciplineForm.Button3Click(Sender: TObject);

 

begin

procedure TDisciplineForm.DBEdit3Enter(Sender: TObject);

 

begin

{ADODataSet2.Active:=false;

Timer1.Enabled:=false;

ADODataSet2.CommandText:='select * from prepodavateli

if (DBEdit1.Text<>'')and(not ins) then

where (pr_FIO like "'+DBEdit2.Text+'")';

if not checkEdit then isEdit;

ADODataSet2.Active:=true;

end;

if (DBEdit2.Text='') or

procedure TDisciplineForm.DBEdit4Enter(Sender: TObject);

(DBLookupComboBox1.KeyValue=null) then

begin

begin

Timer1.Enabled:=false;

MessageDlg('Заполнитевсеполя',mtWarning, [mbOk], 0);

if (DBEdit1.Text<>'')and(not ins) then

end

if not checkEdit then isEdit;

else

end;

if ADODataSet4.RecordCount>0 then

 

begin

procedure TDisciplineForm.DBEdit5Enter(Sender: TObject);

MessageDlg('Такойпреподавательужеесть',mtWarning,

begin

[mbOk], 0);

Timer1.Enabled:=false;

ADODataSet1.Cancel;

if (DBEdit1.Text<>'')and(not ins) then

end

if not checkEdit then isEdit;

else

end;

begin

 

ADODataSet1.Edit;

procedure TDisciplineForm.DBEdit2Exit(Sender: TObject);

ADODataSet1.Post;

begin

ADODataSet1.Active:=False;

Timer1.Enabled:=true;

ADODataSet1.Active:=True;

notEdit;

end; }

end;

end;

 

 

procedure TDisciplineForm.DBEdit3Exit(Sender: TObject);

procedure TDisciplineForm.Button2Click(Sender: TObject);

begin

var i:Integer;

Timer1.Enabled:=true;

begin

notEdit;

ADODataSet2.Active:=False;

end;

ADODataSet2.CommandText:='SELECT * FROM discipline';

 

ADODataSet2.Active:=True;

procedure TDisciplineForm.DBEdit4Exit(Sender: TObject);

ADODataSet1.Active:=True;

begin

i:=ADODataSet1.FieldValues['d_id_discipline'];

Timer1.Enabled:=true;

ADODataSet2.Locate('d_id_discipline',i,[]);

notEdit;

ADODataSet2.Delete;

end;

ADODataSet2.Active:=False;

 

ADODataSet2.Active:=True;

procedure TDisciplineForm.DBEdit5Exit(Sender: TObject);

ADODataSet1.Active:=False;

begin

ADODataSet1.Active:=True;

Timer1.Enabled:=true;

end;

notEdit;

 

end;

procedure TDisciplineForm.Edit4Change(Sender: TObject);

 

Var S:String;

procedure TDisciplineForm.Timer1Timer(Sender: TObject);

begin

var i:integer;

ADODataSet1.Active:=False;

begin

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

i:=ADODataSet1.FieldValues['d_id_discipline'];

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

ADODataSet1.Active:=False;

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

ADODataSet1.Active:=True;

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

ADODataSet1.Locate('d_id_discipline',i,[]);

ADODataSet1.CommandText:='SELECT * FROM discipline

end;

WHERE '+s+' LIKE "'+Edit4.text+'%"';

 

ADODataSet1.Active:=True;

procedure TDisciplineForm.DBGrid1CellClick(Column:

end;

TColumn);

38

var i:integer; begin

i:=ADODataSet1.FieldValues['d_id_discipline']; ADODataSet1.Active:=False; ADODataSet1.Active:=True; ADODataSet1.Locate('d_id_discipline',i,[]);

end;

procedure TDisciplineForm.DBGrid1KeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState); var i:integer;

begin i:=ADODataSet1.FieldValues['d_id_discipline']; ADODataSet1.Active:=False; ADODataSet1.Active:=True; ADODataSet1.Locate('d_id_discipline',i,[]);

end;

procedure TDisciplineForm.DBGrid1KeyDown(Sender: TObject; var Key: Word;

Shift: TShiftState); var i:integer;

begin i:=ADODataSet1.FieldValues['d_id_discipline']; ADODataSet1.Active:=False; ADODataSet1.Active:=True; ADODataSet1.Locate('d_id_discipline',i,[]);

end;

procedure TDisciplineForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin notEdit;

Timer1.Enabled:=false;

end;

end.

unit GruppyUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, DB, ADODB, StdCtrls, Mask, DBCtrls, ExtCtrls, Grids, DBGrids;

type

TGruppyForm = class(TForm) DBGrid1: TDBGrid;

Panel1: TPanel;

Label2: TLabel;

Label1: TLabel;

Label4: TLabel;

Label3: TLabel; DBEdit2: TDBEdit; DBEdit1: TDBEdit; DBEdit3: TDBEdit; Button4: TButton; Button3: TButton; Button2: TButton; Button1: TButton; Button5: TButton;

ADODataSet1: TADODataSet; DataSource1: TDataSource; ADODataSet2: TADODataSet; DataSource2: TDataSource; Panel2: TPanel;

Label11: TLabel;

Label12: TLabel; ComboBox1: TComboBox; Edit4: TEdit;

procedure Button2Click(Sender: TObject); procedure Button5Click(Sender: TObject); procedure Button4Click(Sender: TObject); procedure Button1Click(Sender: TObject);

procedure FormActivate(Sender: TObject); procedure Button3Click(Sender: TObject); procedure Edit4Change(Sender: TObject); procedure DBGrid1TitleClick(Column: TColumn);

private

{Private declarations } public

{Public declarations } end;

var

GruppyForm: TGruppyForm;

implementation

{$R *.dfm}

procedure TGruppyForm.Button2Click(Sender: TObject); var i:Integer;

begin ADODataSet1.Active:=True;

i:=ADODataSet1.FieldValues['gr_id_gruppy']; ADODataSet1.Locate('gr_id_gruppy',i,[]); ADODataSet1.Delete; ADODataSet1.Active:=False; ADODataSet1.Active:=True;

end;

procedure TGruppyForm.Button5Click(Sender: TObject); var i:integer;

begin

i:=ADODataSet1.FieldValues['gr_id_gruppy'];

ADODataSet1.Active:=False; ADODataSet1.CommandText:='SELECT * FROM gruppy'; ADODataSet1.Active:=True;

ADODataSet1.Locate('gr_id_gruppy',i,[]); end;

procedure TGruppyForm.Button4Click(Sender: TObject); begin

//ins:=true;

//DBEdit2.text:=DateToStr(date);

if DBEdit2.Enabled then DBEdit2.SetFocus; ADODataSet1.Insert;

end;

procedure TGruppyForm.Button1Click(Sender: TObject); begin

//ins:=false;

if (DBEdit2.Text<>'') or (DBEdit3.Text<>'') then

begin ADODataSet2.Active:=false;

ADODataSet2.CommandText:='select * from gruppy where (gr_nazvanie like "'+DBEdit2.Text+'")';

ADODataSet2.Active:=true;

if ADODataSet2.RecordCount>0 then begin

MessageDlg('ТакаяГруппаужесуществует',mtWarning, [mbOk], 0);

ADODataSet1.Cancel; end

else

begin ADODataSet1['gr_nazvanie']:=DBEdit2.Text; ADODataSet1['gr_chisl_stud']:=DBEdit3.Text; ADODataSet1.Post; ADODataSet1.Active:=False;

ADODataSet1.CommandText:='select * from gruppy'; ADODataSet1.Active:=True;

end; end

39

else

begin

MessageDlg('Заполнитевсеполя',mtWarning, [mbOk], 0); end;

end;

procedure TGruppyForm.FormActivate(Sender: TObject); var i:integer;

begin ADODataSet1.Active:=False;

ADODataSet1.CommandText:='select * from gruppy'; ADODataSet1.Active:=True;

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

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

;

end;

procedure TGruppyForm.Button3Click(Sender: TObject); begin

ADODataSet2.Active:=false; ADODataSet2.CommandText:='select * from gruppy where (gr_nazvanie like "'+DBEdit2.Text+'")'; ADODataSet2.Active:=true;

if (DBEdit2.Text<>'') or (DBEdit3.Text<>'') then

begin

if ADODataSet2.RecordCount>1 then begin

MessageDlg('Такаягруппаужесуществует',mtWarning, [mbOk], 0);

ADODataSet1.Cancel; end

else begin

ADODataSet1.Edit;

ADODataSet1.Post;

ADODataSet1.Active:=False;

ADODataSet1.Active:=True;

end; end

else begin

MessageDlg('Заполнитевсеполя',mtWarning, [mbOk], 0); end;

end;

procedure TGruppyForm.Edit4Change(Sender: TObject); Var S:String;

begin ADODataSet1.Active:=False;

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

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

S:=DBGrid1.Columns.Items[ComboBox1.ItemIndex].FieldName; ADODataSet1.CommandText:='select * from gruppy WHERE

'+s+' LIKE "'+Edit4.text+'%"';

ADODataSet1.Active:=True;

end;

procedure TGruppyForm.DBGrid1TitleClick(Column: TColumn); begin

if ADODataSet1.Sort=Column.FieldName+' ASC' then ADODataSet1.Sort:=Column.FieldName+' DESC' else

ADODataSet1.Sort:=Column.FieldName+' ASC'; end;

end.

unit MainUnit;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Menus, DB, ADODB, IniFiles, ExtCtrls, jpeg, DateUtils;

type

TMainForm = class(TForm) MainMenu1: TMainMenu; N1: TMenuItem;

N14: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N7: TMenuItem;

N9: TMenuItem;

N6: TMenuItem;

N17: TMenuItem;

N12: TMenuItem;

N15: TMenuItem;

N16: TMenuItem;

N18: TMenuItem;

N8: TMenuItem;

N19: TMenuItem;

ADOConnection1: TADOConnection; OpenDialog1: TOpenDialog;

Panel1: TPanel; N13: TMenuItem; N10: TMenuItem;

procedure N14Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N9Click(Sender: TObject);

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

procedure FormCreate(Sender: TObject); procedure N16Click(Sender: TObject); procedure N18Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N6Click(Sender: TObject); procedure N19Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N10Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

MainForm: TMainForm;

implementation

uses DisciplineUnit, PrepodavateliUnit, TarifyUnit, NagruzkaOtchetUnit,

DiscipEkzUnit, PrepodGruppyUnit, GruppyUnit, PrepDiscUnit, NagruzkaUnit,

DostupUnit, DM, SmenaParolUnit;

{$R *.dfm}

procedure TMainForm.N14Click(Sender: TObject); var F:TiniFile;//дискриптор ini-файла

DBPath:widestring; //путькБД begin

//создаём объект Ini-файла, ассоциируя его с физическим файлом на диске

F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Optio

ns.ini');

40

//запускаем диалог открытия, если запущен успешно, то...

if OpenDialog1.Execute then begin

//сохраняем указанный в диалоговом окне пользователем путь

DBPath:=ExtractFilePath(OpenDialog1.FileName);

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

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

//формируем ConnectionString ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OL EDB.4.0;Data Source='+DBPath+'BD_Kinoteatr.mdb;Persist Security Info=False';

//открываем соединение

ADOConnection1.Open;

end;

// освобождаем память

F.Free;

end;

procedure TMainForm.N5Click(Sender: TObject); begin

DisciplineForm.ShowModal;

end;

procedure TMainForm.N7Click(Sender: TObject); begin

PrepodavateliForm.ShowModal;

end;

procedure TMainForm.N9Click(Sender: TObject); begin

TarifyForm.ShowModal;

end;

procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);

begin ADOConnection1.Connected:=false; Application.Terminate;

end;

procedure TMainForm.FormCreate(Sender: TObject); begin

ADOConnection1.Connected:=False;

if FileExists(GetCurrentDir+'\bd_Strukov.mdb') then begin

ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OL EDB.4.0;User ID=Admin;Data Source='

+GetCurrentDir+'\bd_Strukov.mdb'+ ';Mode=Share Deny None;Extended

Properties="";Persist Security Info=False;'+

'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+

'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'+

'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+

'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'+

'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;'+

'Jet OLEDB:SFP=False'; Application.Title:='Результатоперации'; ShowMessage('Базаданныхнайдена'); ADOConnection1.Connected:=True;

end else begin

Application.Title:='Результатоперации';

ShowMessage('База данных не найдена');

If OpenDialog1.Execute then begin

ADOConnection1.ConnectionString:='Provider=Microsoft.Jet.OL EDB.4.0;User ID=Admin;Data Source='+

OpenDialog1.FileName+ ';Mode=Share Deny None;Extended

Properties="";Persist Security Info=False;'+

'Jet OLEDB:System database="";Jet OLEDB:Registry Path="";Jet OLEDB:Database Password="";'+

'Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;'+

'Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password="";'+

'Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;'+

'Jet OLEDB:Don''t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;'+

'Jet OLEDB:SFP=False'; ADOConnection1.Connected:=True;

end;

end;

end;

procedure TMainForm.N16Click(Sender: TObject); begin

NagruzkaOtchetForm.ShowModal;

end;

procedure TMainForm.N18Click(Sender: TObject); begin

DiscipEkzForm.ShowModal;

end;

procedure TMainForm.N15Click(Sender: TObject); begin

PrepodGruppyForm.ShowModal;

end;

procedure TMainForm.N17Click(Sender: TObject); begin

GruppyForm.ShowModal;

end;

procedure TMainForm.N2Click(Sender: TObject); var F:TiniFile;

DBPath1:string; begin

F:=TiniFile.Create(ExtractFilePath(Application.ExeName)+'Optio

ns.ini');

//Считываем путь резервного копирования из файла option.ini

DBPath1:=F.ReadString('Section_DBPath','Path',''); F.Free;

// делаем резервную копию файла БД

CopyFile(pchar(DBPath1+'bd_Strukov.mdb'),pchar(DBPath1+'bd_ Strukov_'+datetostr(date)+'_'+stringreplace(timetostr(time),':','.',[rf ReplaceAll, rfIgnoreCase])+'.mdb'),false);

MessageDlg('СозданарезервнаякопияБД ',mtInformation, [mbOk], 0);

end;

procedure TMainForm.N11Click(Sender: TObject); begin

PrepDiscForm.ShowModal;

end;

procedure TMainForm.N3Click(Sender: TObject); begin

MainForm.Close;

end;

procedure TMainForm.N6Click(Sender: TObject); begin

NagruzkaForm.ShowModal;

end;

procedure TMainForm.N19Click(Sender: TObject);

41

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