ПРИЛОЖЕНИЕ А. ТЕКСТ ПРОГРАММЫ

Аннотация

Текст программы – это последовательность инструкций, определяющих процедуру решения конкретной задачи компьютером.

 

Таблица 1 - Модули программы

Наименование Размер строк Назначение
AdminUnit Данный модуль является формой администратора, в нём можно измерять данные о пользователях, удалять учётные записи, а так же добавлять новые.
AuthorizationUnit Данный модуль является формой авторизацией в системе.
MainUnit Данный модуль является связывающим.
PolzovatelUnit Данный модуль хранит в себе записи пользователей.
PosechaemostUnit Данный модуль является основным и отвечает за работоспособность приложения.
DMUnit Данный модуль отвечает за привязку базы данных к приложению.

 

Текст модуля AdminUnit

 

unit AdminUnit;

 

interface

 

uses

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

Dialogs, Grids, DBGrids, ComCtrls, ExtCtrls, DBCtrls, StdCtrls;

 

type

TForm3 = class(TForm)

Panel1: TPanel;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

TabSheet4: TTabSheet;

TabSheet5: TTabSheet;

TabSheet6: TTabSheet;

DBGrid1: TDBGrid;

DBGrid2: TDBGrid;

DBNavigator1: TDBNavigator;

DBGrid3: TDBGrid;

DBNavigator2: TDBNavigator;

DBGrid4: TDBGrid;

ComboBox1: TComboBox;

DBNavigator3: TDBNavigator;

DBGrid5: TDBGrid;

DBGrid6: TDBGrid;

DBNavigator4: TDBNavigator;

DBNavigator5: TDBNavigator;

DBGrid7: TDBGrid;

DBNavigator6: TDBNavigator;

Label1: TLabel;

DBNavigator7: TDBNavigator;

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

procedure TabSheet3Show(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form3: TForm3;

 

implementation

 

uses DMUnit, MainUnit;

 

{$R *.dfm}

 

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

begin

form1.show;

end;

 

procedure TForm3.TabSheet3Show(Sender: TObject);

begin

ComboBox1.Clear;

DM.GRUPP.First;

while not DM.GRUPP.Eof do

begin

ComboBox1.Items.Add(DM.GRUPP.FieldValues['NAZVANIE_GRUPP']);

DM.GRUPP.Next;

end;

 

end;

 

procedure TForm3.ComboBox1Change(Sender: TObject);

var

res : variant;

begin

res:= DM.GRUPP.Lookup('NAZVANIE_GRUPP',ComboBox1.Text,'ID_GRUPP') ;

DM.STUDENT.Filter:='ID_GRUPP = '+ IntToStr(res);

DM.STUDENT.Filtered:=true;

end;

 

end.

Текст модуля AuthorizationUnit

unit AuthorezationUnit;

 

interface

 

uses

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

Dialogs, StdCtrls, ExtCtrls;

 

type

TForm2 = class(TForm)

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: TButton;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form2: TForm2;

 

implementation

 

uses MainUnit, DMUnit;

 

{$R *.dfm}

 

procedure TForm2.Button1Click(Sender: TObject);

begin

DM.POLZOVATEL.Insert;

DM.POLZOVATEL.FieldByName('LOGIN').asstring:= Edit2.Text;

DM.POLZOVATEL.FieldByName('PASSWORD').asstring:= Edit3.Text;

DM.POLZOVATEL.FieldByName('FIO').asstring:= Edit1.Text;

DM.POLZOVATEL.FieldByName('ROL').asinteger:= 2;

DM.POLZOVATEL.Post;

Form2.Hide;

Form1.Show;

end;

 

end.

Текст модуля MainUnit

unit MainUnit;

 

interface

 

uses

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

Dialogs, StdCtrls, ExtCtrls;

 

type

TForm1 = class(TForm)

Panel1: TPanel;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

Button1: TButton;

Button2: TButton;

procedure Button2Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

uses DMUnit, AuthorezationUnit, AdminUnit, PolzovatelUnit;

 

{$R *.dfm}

 

procedure TForm1.Button2Click(Sender: TObject);

begin

form1.Hide;

form2.Show;

end;

 

procedure TForm1.Button1Click(Sender: TObject);

var

res: variant;

begin

res:=DM.POLZOVATEL.Lookup('LOGIN;PASSWORD',VarArrayOf([Edit1.Text, Edit2.Text]),'ROL');

if VarIsNull(res) then

begin

showmessage ('не правильный логин или пароль');

exit;

end;

if res = 1 then

begin

Edit1.Clear;

Edit2.Clear;

Form1.Hide;

Form3.Show;

end

else

begin

Edit1.Clear;

Edit2.Clear;

Form1.Hide;

Form4.Show;

 

end;

end;

 

end.

Текст модуля PolzovatelUnit

unit PolzovatelUnit;

 

interface

 

uses

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

Dialogs, StdCtrls, ComCtrls, Grids, DBGrids;

 

type

TForm4 = class(TForm)

PageControl1: TPageControl;

TabSheet1: TTabSheet;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

DateTimePicker1: TDateTimePicker;

ComboBox1: TComboBox;

ComboBox2: TComboBox;

ComboBox3: TComboBox;

ComboBox4: TComboBox;

ComboBox5: TComboBox;

Edit1: TEdit;

Button1: TButton;

DBGrid1: TDBGrid;

procedure FormShow(Sender: TObject);

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

procedure ComboBox2Change(Sender: TObject);

procedure ComboBox4Change(Sender: TObject);

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

Form4: TForm4;

 

implementation

 

uses DMUnit, MainUnit;

 

{$R *.dfm}

 

procedure TForm4.FormShow(Sender: TObject);

begin

ComboBox4.Clear;

DM.GRUPP.First;

while not DM.GRUPP.Eof do

begin

ComboBox4.Items.Add(DM.GRUPP.FieldValues['NAZVANIE_GRUPP']);

DM.GRUPP.Next;

end;

ComboBox2.Clear;

DM.PREPODAVATEL.First;

while not DM.PREPODAVATEL.Eof do

begin

ComboBox2.Items.Add(DM.PREPODAVATEL.FieldValues['FIO']);

DM.PREPODAVATEL.Next;

end;

ComboBox3.Clear;

end;

 

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

begin

Form1.Show;

end;

 

procedure TForm4.ComboBox2Change(Sender: TObject);

var

res : variant;

begin

ComboBox3.Clear;

res:= DM.PREPODAVATEL.Lookup('FIO',ComboBox2.Text,'ID_PREPODAVATEL') ;

DM.PP.Filter:='PREPODAVATEL_ID = ' + inttostr(res);

DM.PP.Filtered:=true;

Dm.PP.First;

while not DM.PP.Eof do

begin

ComboBox3.Items.Add(DM.PREDMET.Lookup('ID_PREDMET',DM.PP.FieldValues['PREDMET_ID'],'NAZVANIE'));

DM.PP.Next;

end;

end;

 

procedure TForm4.ComboBox4Change(Sender: TObject);

var

res : variant;

begin

ComboBox5.Clear;

res:= DM.GRUPP.Lookup('NAZVANIE_GRUPP',ComboBox4.Text,'ID_GRUPP') ;

DM.STUDENT.Filter:='ID_GRUPP = ' + inttostr(res);

DM.STUDENT.Filtered:=true;

Dm.STUDENT.First;

while not DM.STUDENT.Eof do

begin

ComboBox5.Items.Add(DM.STUDENT.FieldValues['FIO']);

DM.STUDENT.Next;

end;

end;

 

procedure TForm4.Button1Click(Sender: TObject);

var

prep, stud, pred : variant;

begin

prep:= DM.PREPODAVATEL.Lookup('FIO',ComboBox2.Text,'ID_PREPODAVATEL') ;

stud:= DM.STUDENT.Lookup('FIO',ComboBox5.Text,'ID_STUDENT') ;

pred:= DM.PREDMET.Lookup('NAZVANIE',ComboBox3.Text,'ID_PREDMET') ;

DM.POSECAEMOST.Insert;

DM.POSECAEMOST.FieldByName('DATA').AsDateTime:=DateTimePicker1.DateTime;

DM.POSECAEMOST.FieldByName('PARA').Asstring:=ComboBox1.Text;

DM.POSECAEMOST.FieldByName('PREDMET_ID').AsInteger:=pred;

DM.POSECAEMOST.FieldByName('STUDENT_ID').AsInteger:=stud;

DM.POSECAEMOST.FieldByName('PREPODAVATEL_ID').AsInteger:=prep;

DM.POSECAEMOST.FieldByName('PRICHINA').AsString:=Edit1.Text;

DM.POSECAEMOST.Post;

DBGrid1.Refresh;

end;

 

end.

Текст модуля PosechaemostUnit

program Posechaemost;

 

uses

Forms,

MainUnit in 'MainUnit.pas' {Form1},

DMUnit in 'DMUnit.pas' {DM: TDataModule},

AuthorezationUnit in 'AuthorezationUnit.pas' {Form2},

AdminUnit in 'AdminUnit.pas' {Form3},

PolzovatelUnit in 'PolzovatelUnit.pas' {Form4};

 

{$R *.res}

 

begin

Application.Initialize;

Application.CreateForm(TForm1, Form1);

Application.CreateForm(TDM, DM);

Application.CreateForm(TForm2, Form2);

Application.CreateForm(TForm3, Form3);

Application.CreateForm(TForm4, Form4);

Application.Run;

end.

Текст модуля DMUnit

unit DMUnit;

 

interface

 

uses

SysUtils, Classes, DB, IBCustomDataSet, IBTable, IBDatabase;

 

type

TDM = class(TDataModule)

IBDatabase1: TIBDatabase;

IBTransaction1: TIBTransaction;

POLZOVATEL: TIBTable;

GRUPP: TIBTable;

OTDELENIE: TIBTable;

POSECAEMOST: TIBTable;

PREDMET: TIBTable;

STUDENT: TIBTable;

dsPolzovatel: TDataSource;

dsGrupp: TDataSource;

dsOtdelenie: TDataSource;

dsPosecaemost: TDataSource;

dsPredmet: TDataSource;

dsStudent: TDataSource;

POLZOVATELID_POLZOVATEL: TIntegerField;

POLZOVATELLOGIN: TIBStringField;

POLZOVATELPASSWORD: TIBStringField;

POLZOVATELFIO: TIBStringField;

POLZOVATELROL: TSmallintField;

GRUPPID_GRUPP: TIntegerField;

GRUPPID_OTDELENIE: TIntegerField;

GRUPPNAZVANIE_GRUPP: TIBStringField;

PREPODAVATEL: TIBTable;

PREPODAVATELID_PREPODAVATEL: TIntegerField;

PREPODAVATELFIO: TIBStringField;

dsPrepodavatel: TDataSource;

PP: TIBTable;

dsPp: TDataSource;

PPID_PP: TIntegerField;

PPPREPODAVATEL_ID: TIntegerField;

PPPREDMET_ID: TIntegerField;

PREDMETID_PREDMET: TIntegerField;

PREDMETNAZVANIE: TIBStringField;

POSECAEMOSTID_POSECHAEMOST: TIntegerField;

POSECAEMOSTDATA: TDateField;

POSECAEMOSTPARA: TIntegerField;

POSECAEMOSTPREDMET_ID: TIntegerField;

POSECAEMOSTSTUDENT_ID: TIntegerField;

POSECAEMOSTPREPODAVATEL_ID: TIntegerField;

POSECAEMOSTPRICHINA: TIBStringField;

POSECAEMOSTFIO_STUDENTA: TStringField;

STUDENTID_STUDENT: TIntegerField;

STUDENTFIO: TIBStringField;

STUDENTID_GRUPP: TIntegerField;

OTDELENIEID_OTDELENIE: TIntegerField;

OTDELENIENAZVANIE: TIBStringField;

GRUPPNAZVANIE_OTDELENIYA: TStringField;

STUDENTNAZVANIE_GRUPP: TStringField;

PPFIO_PREPODAVATEL: TStringField;

PPNAZVANIE_PREDMETA: TStringField;

private

{ Private declarations }

public

{ Public declarations }

end;

 

var

DM: TDM;

 

implementation

 

{$R *.dfm}

 

end.