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

СПИСОК ИСПОЛЬЗОВАННЫ ИСТОЧНИКОВ

1 Абрамов Г. В., Медведкова И. Е., Коробова Л. А. Проектирование информационных систем [Электронный ресурс]. Воронеж, Воронежский Государственный университет инженерных технологий, 2012. 172 с. Режим доступа: http://biblioclub.ru/index.php?page=book_red&id=141626&sr=1 (дата обращения 21.12.2016)

2 Вендров А. М. Проектирование программного обеспечения экономических информационных систем: Учебник для студентов вузов М. : Финансы и статистика, 2013. 352 с.

3 Ревунков Г. И. Проектирование баз данных [электронный ресурс]: учебное пособие. М. : МГТУ им. Н.Э. Баумана (Московский государственный технический университет имени Н.Э. Баумана), 2012. 203 с. Режим доступа: http://e.lanbook.com/books/element.php?pl1_id=52390 (дата обращения 21.12.2016)

4 Карпова Т. С. Базы данных: Модели, разработка, реализация. СПб: Питер, 2012. 253 с.

5 Вендров А. М. CASE технологии. Современные методы и средства проектирования информационных систем. М. : Финансы и статистика, 2012. 254 с.

6 Вендров А. М. Современные технологии анализа и проектирования информационных систем [Электронный ресурс] // Центр Информационных Технологий: Режим доступа: URL http://www.citmgu.ru/ (дата обращения 21.12.2016)

7 Арутюнов, В. В. Теория экономических информационных систем. М. : Синтег, 2013. 360 с.

8 Проектирование информационных систем [Электронный ресурс]: Режим доступа: URL http://www.kgau.ru/istiki/umk/pis/pis.htm (дата обращения 21.12.2016)

26

9 Хоменко А. Д. Базы данных. Учебник для вузов. М. : Синтег, 2012.

262 с.

10 Елманова Н. Корпоративные СУБД – 2012 [Электронный ресурс] КомпьютерПресс: URL: http://www.compress.ru/article.aspx?id=20548&iid=939 (дата обращения 21.12.2016)

11 Богданова С. В., Ермакова А. Н. Информационные технологии: учебное пособие для студентов вузов [Электронный ресурс]: Ставрополь: Сервисшкола, 2014. 211 с. Режим доступа: http://biblioclub.ru/index.php? page=book_red&id=277476&sr=1 (дата обращения 21.12.2016)

12 Ачкасов В. Ю. Программирование баз данных в Delphi [электронный ресурс]: М. : Интернет-Университет Информационных Технологий, 2014. 382 с. Режим доступа: http://biblioclub.ru/index.php? page=book_red&id=233558&sr=1 (дата обращения 21.12.2016)

13 Описание бизнес процессов [Электронный ресурс] URL: http://www.bscconsulting.ru/services/business_consulting/business_processes_defi nition/ (дата обращения 21.12.2016)

14 Уроки по работе с Microsoft Visio 2003 [Электронный ресурс]: URL: http://blog.engexp.ru/training/uroki-po-ms-visio/ (дата обращения 21.12.2016)

15 Блог программиста [Электронный ресурс]: Построение блок схем. URL: http://pro-prof.com/archives/1462 (дата обращения 21.12.2016)

16 Дарахвелидзе П. Г. Программирование в Delphi 7. Спб. : БХВПетербург, 2013. 784 с.

17 Осипов Д.Л. Базы данных и Delphi. Спб. : БХВ-Петербург, 2013. 854

с.

18 Проектная деятельность на уроке с использованием информационных технологий [Электронный ресурс]: Проектная деятельность. URL http://window.edu.ru/window/library/pdf2txt?p_id=26689 (дата обращения 21.12.2016)

ПРИЛОЖЕНИЕ А

27

Графические изображения

Рисунок А.1 – Основное меню программы

Рисунок А.2 – Справочник «Направления»

28

Рисунок А.3 – Справочник «Школы»

Рисунок А.4 – Справочник «Сдача экзаменов»

29

Рисунок А.5 – Отчет «Конкурс»

Рисунок А.6 – Отчет «Статистика»

Рисунок А.7 – Отчет «Успешная школа»

30

Рисунок А.8 – Отчет «Все поступившие»

31

ПРИЛОЖЕНИЕ Б

Листинги программного кода

Menu

unit Menu;

implementation

interface

uses Napravlenie, Abiturient, Sdacha, Disciplina, Konkurs, Spiski,

 

uses

Statistika, Uspeh, Postupivshie, Shkola, Polzovatel, Smena;

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

 

Controls, Forms,

{$R *.dfm}

Dialogs, Menus, DB, ADODB, IniFiles, jpeg, ExtCtrls, ImgList,

 

StdCtrls;

procedure TForm1.N5Click(Sender: TObject);

 

begin

type

form2.ShowModal;

TForm1 = class(TForm)

end;

MainMenu1: TMainMenu;

 

N1: TMenuItem;

procedure TForm1.N6Click(Sender: TObject);

N2: TMenuItem;

begin

N3: TMenuItem;

form3.ShowModal;

N4: TMenuItem;

end;

N5: TMenuItem;

 

N6: TMenuItem;

procedure TForm1.N7Click(Sender: TObject);

N8: TMenuItem;

begin

DataSource1: TDataSource;

form4.ShowModal;

ADOConnection1: TADOConnection;

end;

ADOQuery1: TADOQuery;

 

N9: TMenuItem;

procedure TForm1.N8Click(Sender: TObject);

N10: TMenuItem;

begin

Image1: TImage;

form5.ShowModal;

ImageList1: TImageList;

end;

N11: TMenuItem;

 

N12: TMenuItem;

 

N13: TMenuItem;

procedure TForm1.N9Click(Sender: TObject);

N14: TMenuItem;

begin

N15: TMenuItem;

form6.ShowModal;

N16: TMenuItem;

end;

N17: TMenuItem;

 

N18: TMenuItem;

procedure TForm1.N10Click(Sender: TObject);

N19: TMenuItem;

begin

N20: TMenuItem;

form7.ShowModal;

Timer1: TTimer;

end;

Label1: TLabel;

procedure TForm1.N11Click(Sender: TObject);

N21: TMenuItem;

begin

OpenDialog1: TOpenDialog;

form8.ShowModal;

Label2: TLabel;

end;

procedure N5Click(Sender: TObject);

 

procedure N6Click(Sender: TObject);

procedure TForm1.N12Click(Sender: TObject);

procedure N7Click(Sender: TObject);

begin

procedure N8Click(Sender: TObject);

form9.ShowModal;

procedure N9Click(Sender: TObject);

end;

procedure N10Click(Sender: TObject);

 

procedure N11Click(Sender: TObject);

procedure TForm1.N13Click(Sender: TObject);

procedure N12Click(Sender: TObject);

begin

procedure N13Click(Sender: TObject);

form10.ShowModal;

procedure N14Click(Sender: TObject);

end;

procedure N2Click(Sender: TObject);

 

procedure N20Click(Sender: TObject);

procedure TForm1.N14Click(Sender: TObject);

procedure N18Click(Sender: TObject);

begin

procedure Timer1Timer(Sender: TObject);

form11.ShowModal;

procedure N21Click(Sender: TObject);

end;

procedure FormCreate(Sender: TObject);

 

procedure N16Click(Sender: TObject);

procedure TForm1.N2Click(Sender: TObject); //выход

procedure FormActivate(Sender: TObject);

begin

procedure N17Click(Sender: TObject);

form1.Close;

private

end;

{ Private declarations }

 

public

procedure TForm1.N20Click(Sender: TObject); //о программе

{ Public declarations }

begin

end;

MessageDlg('Программа для автоматизации учета

 

абитуриентов высшего учебного заведения. '+

var

'В данном приложении предусмотрены такие возможности

Form1: TForm1;

как: формирование справочников (Направления)'+

32

'Абитуриенты, Сдача экзаменов и Школы), формирование отчетности (Конкурс поступления, Списки поступивших)'+

'Статистические данные о сдаче экзаменов, Данные о самой успешной школе города по итогам экзаменов '+

'Список всех поступивших. Конкурс поступления рассчитывается как 2 отношения: '+

'Отношение количества подавших на специальность заявлений к плану набора и '+

'Отношение количества поступивших на специальность к плану набора (ср. балл выше 80)'+

' Также в программе предусмотрено разграничение прав доступа (3 уровня - '+

'Администратор, Менеджер и Гость), смена пользователя и пароля, многопользовательский доступ, резервное копирование.',mtInformation, [mbOk],0);

end;

procedure TForm1.N18Click(Sender: TObject);

//резервное

копирование

 

var F:TiniFile;

 

DBPath1:string;

 

begin

 

F:=TiniFile.create(extractFilePath(Application.ExeName)

+'Options.ini'); DBPath1:=F.ReadString('Selection_DBPath','Path',''); F.free;

CopyFile(pchar(DBPath1+'bd.mdb'),pchar(DBPath1+'Copy_bd.m db'),false);

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

end;

procedure TForm1.Timer1Timer(Sender: TObject); begin

Label1.Caption:=TimeToStr(now);

end;

procedure TForm1.N21Click(Sender: TObject); // Связь с БД var F:TiniFile;

DBPath:widestring; begin

F:=TiniFile.Create(ExtractFilePath(Application.ExeName)

+'Options.ini');

if OpenDialog1.Execute then begin

DBPath:=ExtractFilePath(OpenDialog1.FileName); F.WriteString('Section_DBPath','Path',DBPath); Form1.ADOConnection1.Close; Form1.ADOConnection1.ConnectionString:='Provider=Microsoft. Jet.OLEDB.4.0;Data Source='+DBPath+'bd.mdb;Persist Security Info=False';

Form1.ADOConnection1.Open;

end;

F.Free;

end;

procedure TForm1.FormCreate(Sender: TObject); begin

ADOConnection1.Connected:=False;

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

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

+GetCurrentDir+'\bd.mdb'+

';Mode=Share Deny None;Extended Properties="";Persist Security Info=False;'+

Napravlenie

unit Napravlenie;

interface

uses

'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.

OLEDB.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 TForm1.N16Click(Sender: TObject);

// Смена

пользователя

 

var i:integer;

 

begin

 

Form12:=TForm12.Create(self);

 

Form12.Button1.Caption:='Изменить';

 

Form12.ShowModal;

 

end;

 

procedure TForm1.FormActivate(Sender: TObject);

 

begin

 

form12.showmodal;

 

end;

 

procedure TForm1.N17Click(Sender: TObject);

 

begin

 

form13.ShowModal;

 

end;

 

end.

 

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

Controls, Forms,

Dialogs, Grids, DBGrids, DB, ADODB, StdCtrls, ExtCtrls,

DBCtrls, Mask,

jpeg;

33

type

TForm2 = class(TForm) Panel1: TPanel; Image1: TImage; Label4: TLabel; DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator; GroupBox1: TGroupBox; Label1: TLabel;

Label2: TLabel;

Label3: TLabel; DBEdit1: TDBEdit; DBEdit2: TDBEdit; DBEdit3: TDBEdit; DBEdit4: TDBEdit; DBEdit0: TDBEdit; GroupBox2: TGroupBox;

ComboBox1: TComboBox; Edit1: TEdit;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton; Button1: TButton;

Button2: TButton; ADOQuery1: TADOQuery; DataSource1: TDataSource; ADOQuery2: TADOQuery; Timer1: TTimer; ADOQuery3: TADOQuery;

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

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

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); procedure DBEdit1KeyPress(Sender: TObject; var Key: Char); procedure DBEdit2KeyPress(Sender: TObject; var Key: Char); procedure DBEdit3KeyPress(Sender: TObject; var Key: Char); procedure ADOQuery1BeforePost(DataSet: TDataSet); procedure DBEdit1Enter(Sender: TObject);

procedure DBEdit1Exit(Sender: TObject); procedure DBEdit2Enter(Sender: TObject); procedure DBEdit2Exit(Sender: TObject); procedure DBEdit3Enter(Sender: TObject); procedure DBEdit3Exit(Sender: TObject); procedure Timer1Timer(Sender: TObject);

procedure DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

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

procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); private

{ Private declarations }

procedure isEdit; procedure notEdit;

function checkEdit:boolean;

public

{ Public declarations } end;

var

Form2: TForm2; s:string;

ins:boolean;// признак редактирования

implementation

uses Menu;

{$R *.dfm}

procedure TForm2.isEdit; begin

if DBEdit0.Text<>'' then begin

ADOQuery2.SQL.Text:='UPDATE Napravlenie SET Napravlenie.EDIT = True WHERE Napravlenie.n_id='+DBEdit0.Text+';';

ADOQuery2.ExecSQL;

ADOQuery2.SQL.Text:='select * from Napravlenie WHERE Napravlenie.n_id='+DBEdit0.Text+';';

ADOQuery2.Open;

end;

end;

procedure TForm2.notEdit; begin

if DBEdit0.Text<>'' then begin

ADOQuery2.SQL.Text:='UPDATE Napravlenie SET Napravlenie.EDIT = True WHERE Napravlenie.n_id='+DBEdit0.Text+';';

ADOQuery2.ExecSQL;

ADOQuery2.SQL.Text:='select * from Napravlenie WHERE Napravlenie.n_id='+DBEdit0.Text+';';

ADOQuery2.Open;

end;

end;

function TForm2.checkEdit:boolean; var bool:boolean;

begin checkEdit:=false;

if DBEdit0.Text<>'' then ADOQuery2.SQL.Text:='SELECT * FROM Napravlenie WHERE n_id='+DBEdit0.Text+';';

ADOQuery2.Open;

if DBEdit4.Text<>'' then begin

bool:=not strtobool(DBEdit4.Text); DBEdit1.Enabled:=bool; DBEdit2.Enabled:=bool; DBEdit3.Enabled:=bool; Button1.Enabled:=bool; Label4.Visible:= not bool; checkEdit:=not bool;

end;

end;

procedure TForm2.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm2.Edit1Change(Sender: TObject); //поиск begin

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

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

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from Napravlenie WHERE '+s+' LIKE "'+Edit1.Text+'%"');

ADOQuery1.Close;

ADOQuery1.Open;

end;

procedure TForm2.FormCreate(Sender: TObject); var i:integer;

begin ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from Napravlenie'); ADOQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Captio

n);

Button1.Tag:=1;

ADOQuery1.Active:=false;

ADOQuery1.Active:=true;

end;

procedure TForm2.DBGrid1TitleClick(Column: TColumn); //сортировка

var i:integer;

34

clr:TColor; begin

s:=' DESC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' ASC'; clr:=clAqua; 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; ADOQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fiel dName+s;

end;

procedure TForm2.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm2.DBEdit1KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['а'..'я', 'А'..'Я',' ','.',#8]) then Key:=#0;

end;

procedure TForm2.DBEdit2KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['0'..'9',#8]) then Key:=#0;

end;

procedure TForm2.DBEdit3KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['0'..'9',#8]) then Key:=#0;

end;

procedure TForm2.ADOQuery1BeforePost(DataSet: TDataSet); begin

if (DBEdit1.Text = '') or (DBEdit2.Text = '') or (DBEdit3.Text = '') then

begin

MessageDlg('Не все данные заполнены!',mtWarning, [mbOK],0);

DBEdit1.SetFocus;

abort;

end;

end;

procedure TForm2.DBEdit1Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

end;

procedure TForm2.DBEdit1Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TForm2.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

end;

procedure TForm2.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TForm2.DBEdit3Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

end;

procedure TForm2.DBEdit3Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TForm2.Timer1Timer(Sender: TObject); begin

if DBNavigator1.Controls[6].Enabled then begin

DBNavigator1.BtnClick(nbEdit);

DBNavigator1.BtnClick(nbRefresh);

end;

end;

procedure TForm2.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

begin ins:=false;

if button=nbInsert then begin

ins:=true;

if DBEdit1.Enabled then DBEdit1.SetFocus; end;

if button=nbRefresh then begin

checkEdit;

end;

end;

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

begin notEdit;

ADOQuery2.Active:=false;

ADOQuery2.Active:=true;

Timer1.Enabled:=false;

end;

procedure TForm2.Button1Click(Sender: TObject); var i:Integer;

begin ADOQuery1.Active:=True; ADOQuery1.Active:=True; Refresh;

i:=ADOQuery1.FieldValues['n_id']; ADOQuery1.Locate('n_id',i,[]); ADOQuery1.Delete; ADOQuery1.Active:=False; ADOQuery1.Active:=True; ADOQuery1.Active:=False; ADOQuery1.Active:=True; Refresh;

end;

procedure TForm2.Button2Click(Sender: TObject); begin

ADOQuery1.Active:=false;

ADOQuery1.Active:=true;

DBGrid1.Refresh;

Refresh;

end;

end.

35

Abiturient

unit Abiturient;

{ Private declarations }

 

 

 

 

procedure isEdit;

 

 

 

 

 

 

 

 

 

 

interface

procedure notEdit;

 

 

 

 

uses

function checkEdit:boolean;

 

 

 

 

 

 

 

 

 

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

public

 

 

 

 

Controls, Forms,

{ Public declarations }

 

 

 

 

 

Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, StdCtrls,

end;

 

 

 

 

DBCtrls, jpeg,

const

 

 

 

 

Mask, ComCtrls;

SQL='SELECT Abiturient.*, Shkola.sh_gorod, Shkola.sh_nomer,

 

 

Napravlenie.n_name '+

 

 

 

 

type

'FROM Napravlenie INNER JOIN (Shkola INNER JOIN

TForm3 = class(TForm)

Abiturient ON Shkola.sh_id = Abiturient.a_shkola) ON

 

Panel1: TPanel;

Napravlenie.n_id = Abiturient.a_napravlenie';

 

 

 

Image1: TImage;

 

 

 

 

 

 

DBGrid1: TDBGrid;

var

 

 

 

 

 

DBNavigator1: TDBNavigator;

Form3: TForm3;

 

 

 

 

 

GroupBox1: TGroupBox;

s:string;

 

 

 

 

 

Label1: TLabel;

ins:boolean;// признак редактирования

 

 

 

 

Label2: TLabel;

 

 

 

 

 

 

Label3: TLabel;

implementation

 

 

 

 

 

Label4: TLabel;

 

 

 

 

 

 

DateTimePicker1: TDateTimePicker;

uses Menu, Shkola, Uspeh, Postupivshie, Sdacha, Spiski,

 

DBEdit1: TDBEdit;

Statistika;

 

 

 

 

 

DBEdit2: TDBEdit;

 

 

 

 

 

 

DBLookupComboBox1: TDBLookupComboBox;

{$R *.dfm}

 

 

 

 

 

DBEdit5: TDBEdit;

 

 

 

 

 

 

GroupBox2: TGroupBox;

procedure TForm3.isEdit;

 

 

 

 

 

ComboBox1: TComboBox;

begin

 

 

 

 

 

Edit1: TEdit;

if DBEdit0.Text<>'' then

 

 

 

 

 

RadioGroup1: TRadioGroup;

begin

 

 

 

 

 

RadioButton1: TRadioButton;

ADOQuery2.SQL.Text:='UPDATE

Abiturient

SET

 

RadioButton2: TRadioButton;

Abiturient.EDIT

=

True

WHERE

 

ADOQuery1: TADOQuery;

Abiturient.a_id='+DBEdit0.Text+';';

 

 

 

 

DataSource1: TDataSource;

ADOQuery2.ExecSQL;

 

 

 

 

 

Button1: TButton;

ADOQuery2.SQL.Text:='SELECT Abiturient.a_id, Shkola.sh_id,

 

Button2: TButton;

Abiturient.a_fio,'+

 

 

 

 

 

ADOQuery2: TADOQuery;

' Abiturient.a_data, Abiturient.a_god, Shkola.sh_nomer,

 

ADOQuery3: TADOQuery;

Shkola.sh_gorod, Abiturient.EDIT '+

 

 

 

 

Timer1: TTimer;

'FROM Shkola INNER JOIN Abiturient ON Shkola.sh_id =

 

Label5: TLabel;

Abiturient.a_shkola '+

 

 

 

 

 

DBEdit0: TDBEdit;

' WHERE Abiturient.a_id='+DBEdit0.Text+';';

 

 

 

DBEdit3: TDBEdit;

ADOQuery2.Open;

 

 

 

 

 

DataSource2: TDataSource;

end;

 

 

 

 

 

DBLookupComboBox2: TDBLookupComboBox;

end;

 

 

 

 

 

ADOQuery4: TADOQuery;

 

 

 

 

 

 

DataSource3: TDataSource;

procedure TForm3.notEdit;

 

 

 

 

 

Label6: TLabel;

begin

 

 

 

 

 

procedure ComboBox1KeyPress(Sender: TObject; var Key:

if DBEdit0.Text<>'' then

 

 

 

 

Char);

begin

 

 

 

 

 

procedure Edit1Change(Sender: TObject);

ADOQuery2.SQL.Text:='UPDATE

Abiturient

SET

 

procedure FormCreate(Sender: TObject);

Abiturient.EDIT

=

True

WHERE

 

procedure DBGrid1TitleClick(Column: TColumn);

Abiturient.a_id='+DBEdit0.Text+';';

 

 

 

//

procedure DBEdit4Change(Sender: TObject);

ADOQuery2.ExecSQL;

 

 

 

 

 

procedure DateTimePicker1CloseUp(Sender: TObject);

ADOQuery2.SQL.Text:='SELECT Abiturient.a_id, Shkola.sh_id,

 

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);

Abiturient.a_fio,'+

 

 

 

 

 

procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);

' Abiturient.a_data, Abiturient.a_god, Shkola.sh_nomer,

 

procedure DateTimePicker1KeyPress(Sender: TObject; var Key:

Shkola.sh_gorod, Abiturient.EDIT '+

 

 

 

Char);

'FROM Shkola INNER JOIN Abiturient ON Shkola.sh_id =

 

procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);

Abiturient.a_shkola '+

 

 

 

 

 

procedure DBNavigator1Click(Sender: TObject; Button:

' WHERE Abiturient.a_id='+DBEdit0.Text+';';

 

 

TNavigateBtn);

ADOQuery2.Open;

 

 

 

 

 

procedure DBEdit5Change(Sender: TObject);

end;

 

 

 

 

 

procedure DBNavigator1BeforeAction(Sender: TObject;

end;

 

 

 

 

 

Button: TNavigateBtn);

 

 

 

 

 

 

procedure DateTimePicker1Enter(Sender: TObject);

function TForm3.checkEdit:boolean;

 

 

 

 

procedure DateTimePicker1Exit(Sender: TObject);

var bool:boolean;

 

 

 

 

//

procedure Timer1Timer(Sender: TObject);

begin

 

 

 

 

 

procedure FormClose(Sender: TObject; var Action:

checkEdit:=false;

 

 

 

 

TCloseAction);

if DBEdit0.Text<>'' then

 

 

 

 

 

procedure ADOQuery1BeforePost(DataSet: TDataSet);

ADOQuery2.SQL.Text:='SELECT Abiturient.a_id, Shkola.sh_id,

 

procedure Button1Click(Sender: TObject);

Abiturient.a_fio,'+

 

 

 

 

 

procedure Button2Click(Sender: TObject);

' Abiturient.a_data, Abiturient.a_god, Shkola.sh_nomer,

private

Shkola.sh_gorod, Abiturient.EDIT '+

 

 

 

36

'FROM Shkola INNER JOIN Abiturient ON Shkola.sh_id = Abiturient.a_shkola '+

' WHERE Abiturient.a_id='+DBEdit0.Text+';'; ADOQuery2.Open;

if DBEdit3.Text<>'' then begin

bool:=not strtobool(DBEdit3.Text); DateTimePicker1.Enabled:=bool; DBLookupComboBox1.Enabled:=bool; Button1.Enabled:=bool; Label5.Visible:= not bool; checkEdit:=not bool;

end;

end;

procedure TForm3.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm3.Edit1Change(Sender: TObject); //поиск begin

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

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

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(SQL+

' WHERE '+s+' LIKE "'+Edit1.Text+'%"'); ADOQuery1.Close;

ADOQuery1.Open;

end;

procedure TForm3.FormCreate(Sender: TObject); var i:integer;

begin ADOQuery1.SQL.Clear; ADOQuery1.SQL.Add(SQL); ADOQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Captio

n);

{ button1.tag:=1; } end;

procedure TForm3.DBGrid1TitleClick(Column: TColumn); var

i:integer;

clr:TColor; begin

s:=' DESC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' ASC'; clr:=clAqua; 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; ADOQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fiel dName+s;

end;

procedure TForm3.DateTimePicker1CloseUp(Sender: TObject); begin

DBNavigator1.BtnClick(nbEdit);

DBEdit5.EditText:=DateToStr(DateTimePicker1.Date);

end;

procedure TForm3.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm3.DBEdit1KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['а'..'я', 'А'..'Я',' ','.',#8]) then Key:=#0;

end;

procedure TForm3.DateTimePicker1KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['0'..'9','.',#8]) then Key:=#0;

end;

procedure TForm3.DBEdit2KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['0'..'9',#8]) then Key:=#0;

end;

procedure TForm3.DBNavigator1Click(Sender: TObject; Button: TNavigateBtn);

begin

if button=nbPost then //принять begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add(SQL);

ADOQuery1.Open;

DBGrid1.Refresh;

end;

end;

procedure TForm3.DBEdit5Change(Sender: TObject); begin

if DBEdit5.Text<>'' then DateTimePicker1.Date:=StrToDate(DBEdit5.Text); end;

procedure TForm3.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

begin ins:=false;

if button=nbInsert then begin

ins:=true;

end;

if button=nbRefresh then begin

checkEdit;

end;

end;

procedure TForm3.DateTimePicker1Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

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

if not checkEdit then isEdit; end;

procedure TForm3.DateTimePicker1Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

{

procedure TForm3.Timer1Timer(Sender: TObject); begin

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

//если запись не редактируется

if DBNavigator1.Controls[6].Enabled then begin

DBNavigator1.BtnClick(nbEdit);

DBNavigator1.BtnClick(nbRefresh);

end; end; }

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

37

begin

 

 

 

 

 

 

ADOQuery4.Active:=True;

notEdit;

 

 

 

 

 

Refresh;

ADOQuery2.Active:=false;

 

 

 

 

i:=ADOQuery1.FieldValues['a_id'];

ADOQuery2.Active:=true;

 

 

 

 

ADOQuery3.Locate('a_id',i,[]);

Timer1.Enabled:=false;

 

 

 

 

 

ADOQuery3.Delete;

end;

 

 

 

 

 

 

ADOQuery3.Active:=False;

 

 

 

 

 

 

 

ADOQuery3.Active:=True;

procedure TForm3.ADOQuery1BeforePost(DataSet: TDataSet);

 

ADOQuery1.Active:=False;

begin

 

 

 

 

 

 

ADOQuery1.Active:=True;

if

(DBEdit1.Text=

'')

or

(DBEdit2.Text=

'')

or

Form9.ADOQuery1.Active:=false;

(DBLookupComboBox1.Text = '') or (DBLookupComboBox2.Text

Form9.ADOQuery1.Active:=true;

= '') then

 

 

 

 

 

Refresh;

begin

 

 

 

 

 

 

end;

MessageDlg('Введите все данные!',mtError,[mbOk],0);

 

 

Abort;

 

 

 

 

 

procedure TForm3.Button2Click(Sender: TObject);

end;

 

 

 

 

 

begin

end;

 

 

 

 

 

 

ADOQuery1.Active:=false;

 

 

 

 

 

 

 

ADOQuery1.Active:=true;

procedure TForm3.Button1Click(Sender: TObject);

 

 

DBGrid1.Refresh;

var i:integer;

 

 

 

 

 

Refresh;

begin

 

 

 

 

 

 

end;

ADOQuery2.Active:=True;

 

 

 

 

 

ADOQuery1.Active:=True;

 

 

 

 

end.

Sdacha

 

procedure ComboBox1KeyPress(Sender: TObject; var Key:

unit Sdacha;

Char);

 

procedure Edit1Change(Sender: TObject);

interface

procedure FormCreate(Sender: TObject);

 

procedure DBGrid1TitleClick(Column: TColumn);

uses

// procedure DBEdit5Change(Sender: TObject);

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

procedure DateTimePicker1CloseUp(Sender: TObject);

Controls, Forms,

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);

Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, ExtCtrls,

procedure DateTimePicker1KeyPress(Sender: TObject; var Key:

DBCtrls, Mask,

Char);

ComCtrls, jpeg;

procedure DBEdit2KeyPress(Sender: TObject; var Key: Char);

 

procedure DBEdit3KeyPress(Sender: TObject; var Key: Char);

type

procedure DBEdit4KeyPress(Sender: TObject; var Key: Char);

TForm5 = class(TForm)

procedure ADOQuery1BeforePost(DataSet: TDataSet);

DataSource1: TDataSource;

// procedure DBLookupComboBox1CloseUp(Sender: TObject);

Label3: TLabel;

procedure DBNavigator1Click(Sender: TObject; Button:

Panel1: TPanel;

TNavigateBtn);

Image1: TImage;

procedure DBEdit5Change(Sender: TObject);

DBGrid1: TDBGrid;

private

ADOQuery1: TADOQuery;

{ Private declarations }

Panel2: TPanel;

 

DBNavigator1: TDBNavigator;

procedure isEdit;

GroupBox1: TGroupBox;

procedure notEdit;

Label1: TLabel;

function checkEdit:boolean;

Label2: TLabel;

 

Label4: TLabel;

public

Label5: TLabel;

{ Public declarations }

Label6: TLabel;

end;

DateTimePicker1: TDateTimePicker;

const

DBEdit2: TDBEdit;

SQL='SELECT Sdacha.*, Abiturient.a_fio '+

DBEdit3: TDBEdit;

'FROM Abiturient INNER JOIN Sdacha ON Abiturient.a_id =

DBEdit4: TDBEdit;

Sdacha.sd_abitur';

DBEdit5: TDBEdit;

 

DBLookupComboBox1: TDBLookupComboBox;

var

GroupBox2: TGroupBox;

Form5: TForm5;

ComboBox1: TComboBox;

s:string;

Edit1: TEdit;

ins:boolean;// признак редактирования

RadioGroup1: TRadioGroup;

 

RadioButton2: TRadioButton;

implementation

RadioButton1: TRadioButton;

 

Button1: TButton;

uses Menu, Abiturient;

Button2: TButton;

 

DBEdit0: TDBEdit;

{$R *.dfm}

DBEdit1: TDBEdit;

 

ADOQuery2: TADOQuery;

procedure TForm5.isEdit;

ADOQuery3: TADOQuery;

begin

Label7: TLabel;

if DBEdit0.Text<>'' then

Timer1: TTimer;

begin

DataSource2: TDataSource;

 

38

ADOQuery2.SQL.Text:='UPDATE Sdacha SET Sdacha.EDIT =

ADOQuery1.Open;

 

True WHERE Sdacha.sd_id='+DBEdit0.Text+';';

 

 

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

 

ADOQuery2.ExecSQL;

 

 

ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Captio

ADOQuery2.SQL.Text:='SELECT

 

Sdacha.sd_id,

n);

 

 

Sdacha.sd_data,

Abiturient.a_id,

Abiturient.a_fio,

end;

 

 

Sdacha.sd_matem,'+

 

 

 

 

 

 

' Sdacha.sd_russkij, Sdacha.sd_fisika, Sdacha.EDIT'+

procedure

TForm5.DBGrid1TitleClick(Column:

TColumn);

' FROM Abiturient INNER JOIN Sdacha ON Abiturient.a_id =

//сортировка

 

 

Sdacha.sd_abitur'+

 

 

 

var

 

 

' WHERE Sdacha.sd_id='+DBEdit0.Text+';';

 

 

i:integer;

 

 

ADOQuery2.Open;

 

 

 

clr:TColor;

 

 

end;

 

 

 

begin

 

 

end;

 

 

 

s:=' DESC';

 

 

 

 

 

 

clr:=clHighlight;

 

procedure TForm5.notEdit;

 

 

if RadioButton2.Checked then

 

begin

 

 

 

begin

 

 

if DBEdit0.Text<>'' then

 

 

 

s:=' ASC';

 

begin

 

 

 

clr:=clAqua;

 

ADOQuery2.SQL.Text:='UPDATE Sdacha SET Sdacha.EDIT =

end;

 

 

True WHERE Sdacha.sd_id='+DBEdit0.Text+';';

 

 

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

 

ADOQuery2.ExecSQL;

 

 

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

 

ADOQuery2.SQL.Text:='SELECT

 

Sdacha.sd_id,

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

Sdacha.sd_data,

Abiturient.a_id,

Abiturient.a_fio,

ADOQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fiel

Sdacha.sd_matem,'+

 

 

 

dName+s;

 

 

' Sdacha.sd_russkij, Sdacha.sd_fisika, Sdacha.EDIT'+

end;

 

 

' FROM Abiturient INNER JOIN Sdacha ON Abiturient.a_id =

 

 

 

Sdacha.sd_abitur'+

 

 

 

procedure TForm5.DBEdit5Change(Sender: TObject);

 

' WHERE Sdacha.sd_id='+DBEdit0.Text+';';

 

 

begin

 

 

ADOQuery2.Open;

 

 

 

if DBEdit5.Text<>'' then

 

end;

 

 

 

DateTimePicker1.Date:=StrToDate(DBEdit5.Text);

 

end;

 

 

 

end;

 

 

function TForm5.checkEdit:boolean;

 

 

procedure TForm5.DBGrid1KeyPress(Sender: TObject; var Key:

var bool:boolean;

 

 

 

Char);

 

 

begin

 

 

 

begin

 

 

checkEdit:=false;

 

 

 

key:=#0;

 

 

if DBEdit0.Text<>'' then

 

 

 

end;

 

 

ADOQuery2.SQL.Text:='SELECT

 

Sdacha.sd_id,

 

 

 

Sdacha.sd_data,

Abiturient.a_id,

Abiturient.a_fio,

procedure

TForm5.DateTimePicker1KeyPress(Sender:

TObject;

Sdacha.sd_matem,'+

 

 

 

var Key: Char);

 

' Sdacha.sd_russkij, Sdacha.sd_fisika, Sdacha.EDIT'+

begin

 

 

' FROM Abiturient INNER JOIN Sdacha ON Abiturient.a_id =

If not (Key in ['0'..'9','.',#8]) then

 

Sdacha.sd_abitur'+

 

 

 

Key:=#0;

 

 

' WHERE Sdacha.sd_id='+DBEdit0.Text+';';

 

 

end;

 

 

ADOQuery2.Open;

 

 

 

 

 

 

if DBEdit1.Text<>'' then

 

 

procedure TForm5.DBEdit2KeyPress(Sender: TObject; var Key:

begin

 

 

 

Char);

 

 

bool:=not strtobool(DBEdit1.Text);

 

 

begin

 

 

DateTimePicker1.Enabled:=bool;

 

 

If not (Key in ['0'..'9',#8]) then

 

DBLookupComboBox1.Enabled:=bool;

 

 

Key:=#0;

 

 

Button1.Enabled:=bool;

 

 

end;

 

 

Label7.Visible:= not bool;

 

 

 

 

 

checkEdit:=not bool;

 

 

 

procedure TForm5.DBEdit3KeyPress(Sender: TObject; var Key:

end;

 

 

 

Char);

 

 

end;

 

 

 

begin

 

 

 

 

 

 

If not (Key in ['0'..'9',#8]) then

 

procedure TForm5.ComboBox1KeyPress(Sender:

TObject; var

Key:=#0;

 

 

Key: Char);

 

 

 

end;

 

 

begin

 

 

 

 

 

 

key:=#0;

 

 

 

procedure TForm5.DBEdit4KeyPress(Sender: TObject; var Key:

end;

 

 

 

Char);

 

 

 

 

 

 

begin

 

 

procedure TForm5.Edit1Change(Sender: TObject);

//поиск

If not (Key in ['0'..'9',#8]) then

 

begin

 

 

 

Key:=#0;

 

 

if ComboBox1.ItemIndex=-1 then

 

 

end;

 

 

ComboBox1.ItemIndex:=0;

 

 

 

 

 

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

procedure TForm5.ADOQuery1BeforePost(DataSet: TDataSet);

ADOQuery1.SQL.Clear;

 

 

begin

 

 

ADOQuery1.SQL.Add(SQL +

 

 

 

if {(DateTimePicker1.Date = '') or }

' WHERE '+s+' LIKE "'+Edit1.Text+'%"');

 

 

(DBLookupComboBox1.Text = '') or (DBEdit2.Text = '') or

ADOQuery1.Close;

 

 

 

(DBEdit3.Text = '') or (DBEdit4.Text = '') then

 

ADOQuery1.Open;

 

 

 

begin

 

 

end;

 

 

 

MessageDlg('Не все данные заполнены!',mtWarning,

 

 

 

 

[mbOK],0);

 

 

procedure TForm5.FormCreate(Sender: TObject);

 

 

DBEdit2.SetFocus;

 

var i:integer;

 

 

 

abort;

 

 

begin

 

 

 

end;

 

 

ADOQuery1.SQL.Clear;

 

 

end;

 

 

ADOQuery1.SQL.Add(SQL);

 

 

 

 

 

39

procedure TForm5.DateTimePicker1CloseUp(Sender: TObject);

begin

begin

ADOQuery1.SQL.Clear;

DBNavigator1.BtnClick(nbEdit);

ADOQuery1.SQL.Add(SQL);

DBEdit5.EditText:=DateToStr(DateTimePicker1.Date);

ADOQuery1.Open;

end;

DBGrid1.Refresh;

 

end;

procedure TForm5.DBNavigator1Click(Sender: TObject; Button:

end;

TNavigateBtn);

 

begin

end.

if button=nbPost then

 

Shkola

unit Shkola;

procedure Button2Click(Sender: TObject);

 

private

interface

{ Private declarations }

uses

procedure isEdit;

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

procedure notEdit;

Controls, Forms,

function checkEdit:boolean;

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

 

DBGrids,

public

jpeg;

{ Public declarations }

type

end;

 

TForm11 = class(TForm)

var

ADOQuery1: TADOQuery;

Form11: TForm11;

DataSource1: TDataSource;

s:string;

ADOQuery2: TADOQuery;

ins:boolean;// признак редактирования

ADOQuery3: TADOQuery;

 

Timer1: TTimer;

implementation

Label5: TLabel;

 

Panel2: TPanel;

uses Menu, Abiturient;

Image2: TImage;

 

DBGrid1: TDBGrid;

{$R *.dfm}

DBNavigator1: TDBNavigator;

 

GroupBox3: TGroupBox;

procedure TForm11.isEdit;

Label3: TLabel;

begin

Label4: TLabel;

if DBEdit0.Text<>'' then

DBEdit1: TDBEdit;

begin

DBEdit2: TDBEdit;

ADOQuery2.SQL.Text:='UPDATE Shkola SET Shkola.EDIT =

DBEdit5: TDBEdit;

True WHERE Shkola.sh_id='+DBEdit0.Text+';';

GroupBox4: TGroupBox;

ADOQuery2.ExecSQL;

ComboBox1: TComboBox;

ADOQuery2.SQL.Text:='select * from Shkola WHERE

Edit1: TEdit;

Shkola.sh_id='+DBEdit0.Text+';';

RadioGroup2: TRadioGroup;

ADOQuery2.Open;

RadioButton1: TRadioButton;

end;

RadioButton2: TRadioButton;

end;

Button1: TButton;

 

DBEdit0: TDBEdit;

procedure TForm11.notEdit;

Button2: TButton;

begin

procedure Edit1Change(Sender: TObject);

if DBEdit0.Text<>'' then

procedure FormCreate(Sender: TObject);

begin

procedure ComboBox1KeyPress(Sender: TObject; var Key:

ADOQuery2.SQL.Text:='UPDATE Shkola SET Shkola.EDIT =

Char);

True WHERE Shkola.sh_id='+DBEdit0.Text+';';

procedure DBGrid1TitleClick(Column: TColumn);

ADOQuery2.ExecSQL;

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char);

ADOQuery2.SQL.Text:='select * from Shkola WHERE

procedure DBEdit1KeyPress(Sender: TObject; var Key: Char);

Shkola.sh_id='+DBEdit0.Text+';';

procedure ADOQuery1BeforePost(DataSet: TDataSet);

ADOQuery2.Open;

procedure DBEdit1Enter(Sender: TObject);

end;

procedure DBEdit1Exit(Sender: TObject);

end;

procedure DBEdit2Enter(Sender: TObject);

 

procedure DBEdit2Exit(Sender: TObject);

function TForm11.checkEdit:boolean;

procedure Timer1Timer(Sender: TObject);

var bool:boolean;

procedure DBNavigator1BeforeAction(Sender: TObject;

begin

Button: TNavigateBtn);

checkEdit:=false;

procedure FormClose(Sender: TObject; var Action:

if DBEdit0.Text<>'' then ADOQuery2.SQL.Text:='SELECT *

TCloseAction);

FROM Shkola WHERE sh_id='+DBEdit0.Text+';';

procedure Button1Click(Sender: TObject);

ADOQuery2.Open;

40

if DBEdit5.Text<>'' then begin

bool:=not strtobool(DBEdit5.Text); DBEdit1.Enabled:=bool; DBEdit2.Enabled:=bool; Button1.Enabled:=bool; Label5.Visible:= not bool; checkEdit:=not bool;

end;

end;

procedure TForm11.Edit1Change(Sender: TObject); //поиск begin

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

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

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from Shkola WHERE '+s+' LIKE "'+Edit1.Text+'%"');

ADOQuery1.Close;

ADOQuery1.Open;

end;

procedure TForm11.FormCreate(Sender: TObject); var i:integer;

begin ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from Shkola'); ADOQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-1 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Captio

n);

end;

procedure TForm11.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm11.DBGrid1TitleClick(Column: TColumn); //сортировка

var i:integer; clr:TColor; begin

s:=' DESC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' ASC'; clr:=clAqua; 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; ADOQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fiel dName+s;

end;

procedure TForm11.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm11.DBEdit1KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['а'..'я', 'А'..'Я',' ','.',#8]) then Key:=#0;

end;

procedure TForm11.ADOQuery1BeforePost(DataSet: TDataSet); begin

if (DBEdit1.Text = '') or (DBEdit2.Text = '') then begin

MessageDlg('Не все данные заполнены!',mtWarning, [mbOK],0);

DBEdit1.SetFocus;

abort;

end;

end;

procedure TForm11.DBEdit1Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

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

if not checkEdit then isEdit; end;

procedure TForm11.DBEdit1Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TForm11.DBEdit2Enter(Sender: TObject); begin

Timer1.Enabled:=false;

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

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

if not checkEdit then isEdit; end;

procedure TForm11.DBEdit2Exit(Sender: TObject); begin

Timer1.Enabled:=true;

notEdit;

end;

procedure TForm11.Timer1Timer(Sender: TObject); begin

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

//если запись не редактируется

if DBNavigator1.Controls[6].Enabled then begin

DBNavigator1.BtnClick(nbEdit);

DBNavigator1.BtnClick(nbRefresh);

end;

end;

procedure TForm11.DBNavigator1BeforeAction(Sender: TObject; Button: TNavigateBtn);

begin ins:=false;

if button=nbInsert then begin

ins:=true;

if DBEdit1.Enabled then DBEdit1.SetFocus; end;

if button=nbRefresh then begin

checkEdit;

end;

end;

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

begin notEdit;

ADOQuery2.Active:=false;

ADOQuery2.Active:=true;

Timer1.Enabled:=false;

end;

procedure TForm11.Button1Click(Sender: TObject); var i:Integer;

begin ADOQuery1.Active:=True; ADOQuery1.Active:=True; Refresh;

41

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

// Form9.ADOQuery1.Active:=false; //Form9.ADOQuery1.Active:=true; //Form10.ADOQuery1.Active:=false; //Form10.ADOQuery1.Active:=true; Refresh;

Postupivshie

unit Postupivshie;

interface

uses

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

Dialogs, StdCtrls, ExtCtrls, Grids, DBGrids, DB, ADODB, WordXP, OleServer, ComCtrls, COMObj,

ActiveX, jpeg;

type

TForm10 = class(TForm) Panel2: TPanel; Image1: TImage; DBGrid1: TDBGrid; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Label3: TLabel;

Edit1: TEdit;

Edit2: TEdit; Button1: TButton; Button2: TButton;

ADOQuery1: TADOQuery;

DataSource1: TDataSource; WordDocument1: TWordDocument; WordApplication1: TWordApplication; WordFont1: TWordFont; WordLetterContent1: TWordLetterContent;

WordParagraphFormat1: TWordParagraphFormat; SaveDialog1: TSaveDialog;

procedure Button1Click(Sender: TObject);

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Button2Click(Sender: TObject);

private

{Private declarations } public

{Public declarations } end;

var

Form10: TForm10; s:string;

implementation

uses Menu, Abiturient, Shkola, Napravlenie;

{$R *.dfm}

procedure TForm10.Button1Click(Sender: TObject); begin

s:=' DESC';

if Edit1.Text = '' then begin

end;

procedure TForm11.Button2Click(Sender: TObject); begin

ADOQuery1.Active:=false;

ADOQuery1.Active:=true;

DBGrid1.Refresh;

Refresh;

end;

end.

MessageDlg('Заполните поле «Населенный пункт!» Edit1.SetFocus;

end

else if Edit2.Text = '' then begin

MessageDlg('Заполните поле «Школа»!',mtWarning, [mbOK],0);

Edit2.SetFocus; end

else begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Shkola.sh_gorod, Shkola.sh_nomer, Abiturient.a_fio, Napravlenie.n_name, '+

' Round(([Sdacha]![sd_matem]+[Sdacha]![sd_russkij]+ [Sdacha]![sd_fisika])/3,2) AS Res '+

' FROM Napravlenie INNER JOIN (Shkola INNER JOIN (Abiturient INNER JOIN Sdacha ON Abiturient.a_id = Sdacha.sd_abitur)'+

'ON Shkola.sh_id = Abiturient.a_shkola) ON Napravlenie.n_id

=Abiturient.a_napravlenie'+

'WHERE (((Shkola.sh_gorod) Like "'+Edit1.Text+'") AND ((Shkola.sh_nomer) Like "'+Edit2.Text+'")) '+

'OR (((Shkola.sh_gorod) Like "'+Edit1.Text+'") AND ((Shkola.sh_nomer) Like "'+Edit2.Text+'")) '+

'GROUP BY Shkola.sh_id, Shkola.sh_gorod, Shkola.sh_nomer, Abiturient.a_id, Abiturient.a_fio, '+

'Abiturient.a_napravlenie, Napravlenie.n_id,

Napravlenie.n_name, '+

' Round(([Sdacha]![sd_matem]+[Sdacha]![sd_russkij]+ [Sdacha]![sd_fisika])/3,2)'+

' HAVING (((Round(([Sdacha]![sd_matem]+[Sdacha]! [sd_russkij]+[Sdacha]![sd_fisika])/3,2))>80));');

ADOQuery1.Close;

ADOQuery1.Open;

if ADOQuery1.IsEmpty then

MessageDlg(‘По Вашему запросу ничего не найдено!!',mtWarning,[mbOK],0);

end;

end;

procedure TForm10.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm10.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['à'..'ÿ', 'À'..'ß',' ','.',#8]) then Key:=#0;

end;

procedure TForm10.Button2Click(Sender: TObject); const

wdAlignParagraphCenter = 1;

42

wdAlignParagraphLeft = 0; wdAlignParagraphRight = 2;

wdLineStyleSingle = 1; var

wdApp, wdDoc, wdRng, wdTable : Variant; i, j, Res : Integer;

D : TDateTime; Bm : TBookMark; Sd : TSaveDialog; begin

if ADOQuery1.IsEmpty then

MessageDlg('Таблица пуста, формировать отчет бессмысленно !',mtWarning,[mbOK],0)

Else begin

Sd := SaveDialog1;

if Sd.InitialDir = '' then Sd.InitialDir := ExtractFilePath( ParamStr(0) );

if not Sd.Execute then Exit;

if FileExists(Sd.FileName) then begin

Res := MessageBox(0, ‘Файл с заданным именем существует. Перезаписать?'

,'Внимание!', MB_YESNO + MB_ICONQUESTION + MB_APPLMODAL);

if Res <> IDYES then Exit; end;

try

wdApp := CreateOleObject('Word.Application'); except

MessageBox(0, 'Не удалось найти MS Word. Действие отменено.'

,'Внимание!', MB_OK + MB_ICONERROR + MB_APPLMODAL);

Exit;

end;

.

wdApp.Visible := True;.

wdDoc := wdApp.Documents.Add; wdApp.ScreenUpdating := False; try

wdRng := wdDoc.Content;

wdRng.InsertAfter('Все поступившие в ВУЗ абитуриенты из заданной школы заданного города'#13#10);

wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;

wdRng.Font.Name := 'Times New Roman'; wdRng.Font.Bold := True; wdRng.Font.Size := 14;

wdRng.Start := wdRng.End; wdRng.InsertAfter(#13#10); D := Now;

wdRng.InsertAfter('Дата: ' + FormatDateTime('dd.mm.yyyy', D) + #13#10);

wdRng.InsertAfter('Время: ' + FormatDateTime('hh:nn:ss', D) + #13#10);

wdRng.InsertAfter('Населенный пункт: ' + Edit1.Text + #13#10);

wdRng.InsertAfter('Школа: ' + Edit2.Text + #13#10); wdRng.ParagraphFormat.Reset;

wdRng.ParagraphFormat.Alignment := wdAlignParagraphLeft;

wdRng.Font.Reset; wdRng.Font.Size := 12; wdRng.Font.Bold := True;

wdRng.Start := wdRng.End; wdRng.InsertAfter(#13#10);

wdRng.InsertAfter('Таблица 1. Все абитуриенты, поступившие в ВУЗ из заданной школы заданного города.'#13#10);

wdRng.ParagraphFormat.Reset;

wdRng.Font.Reset; wdRng.Font.Size := 12; wdRng.Font.Bold := False;

if not ADOQuery1.Active then ADOQuery1.Open;

wdRng.Start := wdRng.End;

wdTable := wdDoc.Tables.Add(wdRng.Characters.Last, 2, ADOQuery1.Fields.Count);

wdTable.Borders.InsideLineStyle := wdLineStyleSingle; wdTable.Borders.OutsideLineStyle := wdLineStyleSingle; wdRng.ParagraphFormat.Reset;

wdRng.ParagraphFormat.Alignment := wdAlignParagraphCenter;

wdRng := wdTable.Rows.Item(1).Range; wdRng.ParagraphFormat.Alignment :=

wdAlignParagraphCenter; wdRng.Font.Size := 10; wdRng.Font.Bold := True;

wdRng := wdTable.Rows.Item(2).Range; wdRng.ParagraphFormat.Alignment :=

wdAlignParagraphCenter; wdRng.Font.Size := 10; wdRng.Font.Bold := False;

wdTable.Cell(1,1).Range.Text := 'Населенный пункт'; wdTable.Cell(1,2).Range.Text := 'Школа'; wdTable.Cell(1,3).Range.Text := 'ФИО абитуриента'; wdTable.Cell(1,4).Range.Text := 'Направление'; wdTable.Cell(1,5).Range.Text := 'Средний балл'; ADOQuery1.DisableControls;

Bm := ADOQuery1.GetBookMark; ADOQuery1.First;

i := 1;

while not ADOQuery1.Eof do begin Inc(i);

if i > 2 then wdTable.Rows.Add;

for j := 0 to ADOQuery1.Fields.Count - 1 do

wdTable.Cell(i, j + 1).Range.Text := ADOQuery1.Fields[j].AsString;

ADOQuery1.Next;

end;

ADOQuery1.GotoBookMark(Bm);

ADOQuery1.EnableControls;

finally

wdApp.Visible := True. wdApp.ScreenUpdating := True; end;

wdApp.DisplayAlerts := False; try wdDoc.SaveAs(FileName:=Sd.FileName); finally wdApp.DisplayAlerts := True; end;

end;

end;

end.

Konkurs

unit Konkurs;

interface

uses

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

Dialogs, DB, ADODB, Grids, DBGrids, ExtCtrls, jpeg, StdCtrls;

type

TForm6 = class(TForm) DataSource1: TDataSource; ADOQuery1: TADOQuery; Panel1: TPanel;

DBGrid1: TDBGrid; Panel2: TPanel; Image1: TImage;

ADOQuery2: TADOQuery; DataSource2: TDataSource; Label1: TLabel;

43

Label2: TLabel;

Panel3: TPanel;

Label3: TLabel;

Label4: TLabel; DBGrid2: TDBGrid;

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); private

{Private declarations } public

{Public declarations } end;

var

Form6: TForm6;

implementation

uses Menu, Napravlenie, Postupivshie, Sdacha, Statistika;

{$R *.dfm}

procedure TForm6.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

end.

Spiski

unit Spiski;

interface

uses

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

Dialogs, ExtCtrls, DB, ADODB, StdCtrls, ComCtrls, Grids, DBGrids,

ExcelXP, OleServer, COMObj, ActiveX, WordXP, jpeg;

type

TForm7 = class(TForm) ADOQuery1: TADOQuery; DataSource1: TDataSource;

ExcelApplication1: TExcelApplication;

ExcelWorkbook1: TExcelWorkbook;

ExcelOLEObject1: TExcelOLEObject;

ExcelWorksheet1: TExcelWorksheet; SaveDialog1: TSaveDialog;

Timer1: TTimer;

Panel1: TPanel; DBGrid1: TDBGrid;

DateTimePicker1: TDateTimePicker; Label1: TLabel;

Button1: TButton;

Image1: TImage;

Image2: TImage;

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject); procedure FormCreate(Sender: TObject); private

{Private declarations } public

{Public declarations } end;

var

Form7: TForm7; implementation

uses Menu, Abiturient, Napravlenie; {$R *.dfm}

procedure TForm7.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm7.Button1Click(Sender: TObject); var i,j,index: Integer;

ExcelApp,sheet, exRng: Variant; ClassID: TCLSID;

Rez : HRESULT; begin

Rez := CLSIDFromProgID(PWideChar(WideString('Excel.Application')), ClassID);

if Rez <> S_OK then begin

MessageDlg('Excel не установлен!',mtERROR,[mbok],0); Exit;

end;

ExcelApp := CreateOleObject('Excel.Application'); ExcelApp.Visible := true; ExcelApp.WorkBooks.Add(-4167);

ExcelApp.WorkBooks[1].WorkSheets[1].name := 'Поступившие'; sheet:=ExcelApp.WorkBooks[1].WorkSheets['Поступившие'];

Sheet.Cells[1,1]:='Список всех поступивших на: '; Sheet.Cells[1,2]:=DateTimePicker1.DateTime; Sheet.Cells[3,1]:='Абитуриент'; Sheet.Cells[3,2]:='Направление'; Sheet.Cells[3,3]:='Средний балл';

index:=4;

DBGrid1.DataSource.DataSet.First;

for i:=3 to DBGrid1.DataSource.DataSet.RecordCount+2 do begin

for j:=1 to DBGrid1.FieldCount do sheet.cells[index,j]:=DBGrid1.fields[j-1].asstring; inc(index);

ExcelApp.Columns.AutoFit;

// exSheet := ExBook.WorkSheets[1];

exRng := sheet.Range[sheet.Cells[3,1], sheet.Cells[DBGrid1.DataSource.DataSet.RecordCount+3, DBGrid1.FieldCount]];

exRng.Borders[xlEdgeTop].LineStyle := xlContinuous; exRng.Borders[xlEdgeTop].Weight := xlMedium; exRng.Borders[xlEdgeBottom].LineStyle := xlContinuous; exRng.Borders[xlEdgeBottom].Weight := xlMedium; exRng.Borders[xlEdgeLeft].LineStyle := xlContinuous; exRng.Borders[xlEdgeLeft].Weight := xlMedium; exRng.Borders[xlEdgeRight].LineStyle := xlContinuous; exRng.Borders[xlEdgeRight].Weight := xlMedium; //Обрамление ячеек внутри диапазона. exRng.Borders[xlInsideHorizontal].LineStyle := xlContinuous; exRng.Borders[xlInsideHorizontal].Weight := xlThin; exRng.Borders[xlInsideVertical].LineStyle := xlContinuous; exRng.Borders[xlInsideVertical].Weight := xlThin;

sheet.Cells[3, 1].Font.Bold:=true; sheet.Cells[3, 2].Font.Bold:=true; sheet.Cells[3, 3].Font.Bold:=true;

sheet.Cells[3, 1].Borders[xlEdgeBottom].LineStyle := xlContinuous;

sheet.Cells[3, 1].Borders[xlEdgeBottom].Weight := xlMedium; sheet.Cells[3, 2].Borders[xlEdgeBottom].LineStyle :=

xlContinuous;

sheet.Cells[3, 2].Borders[xlEdgeBottom].Weight := xlMedium; sheet.Cells[3, 3].Borders[xlEdgeBottom].LineStyle :=

xlContinuous;

sheet.Cells[3, 3].Borders[xlEdgeBottom].Weight := xlMedium;

sheet.Cells[3, 1].Borders[xlEdgeLeft].LineStyle := xlContinuous; sheet.Cells[3, 1].Borders[xlEdgeLeft].Weight := xlMedium; sheet.Cells[3, 2].Borders[xlEdgeLeft].LineStyle := xlContinuous; sheet.Cells[3, 2].Borders[xlEdgeLeft].Weight := xlMedium; sheet.Cells[3, 3].Borders[xlEdgeLeft].LineStyle := xlContinuous; sheet.Cells[3, 3].Borders[xlEdgeLeft].Weight := xlMedium;

// exRng.Columns.AutoFit; DBGrid1.DataSource.DataSet.Next;

44

end;

end;

procedure TForm7.Timer1Timer(Sender: TObject); begin

DateTimePicker1.DateTime:=now;

end;

procedure TForm7.FormCreate(Sender: TObject); var i:integer;

begin DateTimePicker1.Date:=now; ADOQuery1.Active:=false; ADOQuery1.Active:=true; ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Abiturient.a_fio, Napravlenie.n_name,'+

' Round(([Sdacha]![sd_matem]+[Sdacha]![sd_russkij]+[Sdacha]! [sd_fisika])/3,2) AS Res '+

' FROM (Napravlenie INNER JOIN Abiturient ON Napravlenie.n_id = Abiturient.a_napravlenie)'+

'INNER JOIN Sdacha ON Abiturient.a_id = Sdacha.sd_abitur '+

'WHERE (((Round(([Sdacha]![sd_matem]+[Sdacha]![sd_russkij] +[Sdacha]![sd_fisika])/3,2))>80));');

ADOQuery1.Open;

end;

end.

Statistika

unit Statistika;

interface

uses

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

Dialogs, DB, ADODB, Grids, DBGrids, StdCtrls, ExtCtrls, jpeg;

type

TForm8 = class(TForm) Panel1: TPanel; Image1: TImage; DBGrid1: TDBGrid;

GroupBox2: TGroupBox;

ComboBox1: TComboBox; Edit1: TEdit;

RadioGroup1: TRadioGroup;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

DataSource1: TDataSource;

ADOQuery1: TADOQuery;

procedure ComboBox1KeyPress(Sender: TObject; var Key: Char);

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

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); private

{Private declarations } public

{Public declarations } end;

var

Form8: TForm8; s:string;

implementation

uses Menu;

{$R *.dfm}

procedure TForm8.ComboBox1KeyPress(Sender: TObject; var Key: Char);

begin

key:=#0;

end;

procedure TForm8.Edit1Change(Sender: TObject); //поиск begin

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

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

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Abiturient.a_fio, Napravlenie.n_name, Sdacha.sd_matem, '+

' Sdacha.sd_russkij, Sdacha.sd_fisika, Round(([Sdacha]! [sd_matem]+[Sdacha]![sd_russkij]+[Sdacha]![sd_fisika])/3,2) AS Res'+

' FROM Napravlenie INNER JOIN (Abiturient INNER JOIN Sdacha ON Abiturient.a_id = Sdacha.sd_abitur) '+

'ON Napravlenie.n_id = Abiturient.a_napravlenie'+

'WHERE '+s+' LIKE "'+Edit1.Text+'%"'); ADOQuery1.Close;

ADOQuery1.Open;

end;

procedure TForm8.FormCreate(Sender: TObject); var i:integer;

begin ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Abiturient.a_fio, Napravlenie.n_name, Sdacha.sd_matem, '+

' Sdacha.sd_russkij, Sdacha.sd_fisika, Round(([Sdacha]! [sd_matem]+[Sdacha]![sd_russkij]+[Sdacha]![sd_fisika])/3,2) AS Res'+

' FROM Napravlenie INNER JOIN (Abiturient INNER JOIN Sdacha ON Abiturient.a_id = Sdacha.sd_abitur) '+

' ON Napravlenie.n_id = Abiturient.a_napravlenie'); ADOQuery1.Open;

for i:=0 to DBGrid1.Columns.Count-2 do ComboBox1.Items.Add(DBGrid1.Columns.Items[i].Title.Captio

n);

end;

procedure TForm8.DBGrid1TitleClick(Column: TColumn); //сортировка

var i:integer; clr:TColor; begin

s:=' DESC'; clr:=clHighlight;

if RadioButton2.Checked then begin

s:=' ASC'; clr:=clAqua; 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; ADOQuery1.Sort:=DBGrid1.Columns.Items[Column.index].Fiel dName+s;

end;

procedure TForm8.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

end.

Uspeh

unit Uspeh;

interface

uses

45

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

Dialogs, StdCtrls, ExtCtrls, DB, ADODB, Grids, DBGrids, jpeg;

type

TForm9 = class(TForm) DataSource1: TDataSource; ADOQuery1: TADOQuery; Panel2: TPanel;

DBGrid1: TDBGrid; Panel1: TPanel; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Button1: TButton; Image1: TImage;

procedure Button1Click(Sender: TObject);

procedure DBGrid1KeyPress(Sender: TObject; var Key: Char); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private

{Private declarations } public

{Public declarations } end;

var

Form9: TForm9; s:string;

implementation

uses Menu, Shkola, Abiturient;

{$R *.dfm}

procedure TForm9.Button1Click(Sender: TObject); begin

s:=' DESC';

if Edit1.Text = '' then begin

MessageDlg('Заполните поле!',mtWarning,[mbOK],0); Edit1.SetFocus;

end else begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('SELECT Shkola.sh_id, Shkola.sh_gorod, Shkola.sh_nomer, Abiturient.a_fio,' +

' Round(([Sdacha]![sd_matem]+[Sdacha]![sd_russkij]+ [Sdacha]![sd_fisika])/3,2) AS Res'+

' FROM Shkola INNER JOIN (Abiturient INNER JOIN Sdacha ON Abiturient.a_id = Sdacha.sd_abitur) '+

'ON Shkola.sh_id = Abiturient.a_shkola'+

'WHERE Shkola.sh_gorod LIKE "'+Edit1.Text+'"'+

'GROUP BY Shkola.sh_id, Shkola.sh_gorod,

Shkola.sh_nomer, Abiturient.a_fio, '+

' Round(([Sdacha]![sd_matem]+[Sdacha]![sd_russkij]+ [Sdacha]![sd_fisika])/3,2)'+

' HAVING (((Round(([Sdacha]![sd_matem]+[Sdacha]! [sd_russkij]+[Sdacha]![sd_fisika])/3,2))>80))');

ADOQuery1.Close;

ADOQuery1.Open;

if ADOQuery1.IsEmpty then

MessageDlg('По Вашему запросу ничего не найдено!',mtWarning,[mbOK],0);

end;

end;

procedure TForm9.DBGrid1KeyPress(Sender: TObject; var Key: Char);

begin key:=#0; end;

procedure TForm9.Edit1KeyPress(Sender: TObject; var Key: Char);

begin

If not (Key in ['а'..'я', 'А'..'Я',' ','.',#8]) then Key:=#0;

end;

end.

Polzovatel

unit Polzovatel;

interface

uses

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

Dialogs, ADODB, DB, Mask, DBCtrls, StdCtrls, Buttons, ExtCtrls;

type

TForm12 = class(TForm) Panel1: TPanel; Panel2: TPanel; Label1: TLabel;

DBLookupComboBox1: TDBLookupComboBox; Panel3: TPanel;

Label2: TLabel; Edit1: TEdit; Panel4: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

OpenDialog1: TOpenDialog;

DataSource1: TDataSource;

DataSource2: TDataSource; DBEdit1: TDBEdit; DBEdit2: TDBEdit;

ADODataSet1: TADODataSet; ADOQuery1: TADOQuery; Panel5: TPanel;

Label3: TLabel;

Label4: TLabel;

DBLookupComboBox2: TDBLookupComboBox; Edit2: TEdit;

Panel6: TPanel;

Button1: TButton;

Button2: TButton;

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

procedure FormCreate(Sender: TObject); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormShow(Sender: TObject);

procedure DBLookupComboBox2KeyPress(Sender: TObject; var Key: Char);

private

{Private declarations } public

{Public declarations } end;

var

Form12: TForm12; pass:boolean; pwd:string; flag:boolean; posetitel:string;

implementation

uses Menu, Napravlenie, Abiturient, Sdacha, Disciplina, Konkurs, Spiski, Statistika, Uspeh, Postupivshie, Shkola;

{$R *.dfm}

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

46

begin

if not pass then form1.Close; end;

procedure TForm12.FormCreate(Sender: TObject); begin

pass:=false;

end;

procedure TForm12.Button1Click(Sender: TObject); var i:integer;

begin form12.ADODataSet1.Active:=false; form12.ADODataSet1.Active:=true; ADODataSet1.First;

for i:=1 to ADODataSet1.RecordCount do begin

if (DBLookupComboBox2.text=DBEdit1.Text) and (Edit2.text=DBEdit2.text) then

begin

if DBEdit1.Text='АДМИНИСТРАТОР' then begin

Form1.N17.Enabled:=true;

Form1.N18.Enabled:=true;

Form1.N3.Enabled:=true;

form10.Button2.Enabled:=true;

form7.Button1.Enabled:=true;

Form1.N12.Enabled:=true;

end;

if DBEdit1.Text='МЕНЕДЖЕР' then begin

Form1.N17.Enabled:=false;

Form1.N18.Enabled:=false;

Form1.N3.Enabled:=true;

form10.Button2.Enabled:=true;

form7.Button1.Enabled:=true;

Form1.N12.Enabled:=true;

end;

if DBEdit1.Text='ГОСТЬ' then begin Form1.N3.Enabled:=false; form10.Button2.Enabled:=false; form7.Button1.Enabled:=false; Form1.N12.Enabled:=false; Form1.N17.Enabled:=false; Form1.N18.Enabled:=false; end;

pass:=true;

form12.Close;

end;

ADODataSet1.Next;

end;

if not pass then MessageDlg('Логин/пароль не верен',mtWarning,[mbOk],0);

form1.Label2.Caption:=DBLookupComboBox2.text;

form1.Label2.Visible:=True;

form12.ADODataSet1.Active:=false;

form12.ADODataSet1.Active:=true;

end;

procedure TForm12.Button2Click(Sender: TObject); begin

Form12.Close;

Form1.Close;

end;

procedure TForm12.FormShow(Sender: TObject); begin

ADODataSet1.Refresh; ADODataSet1.CommandText:='select * from Polzovatel'; ADODataSet1.Open;

end;

procedure TForm12.DBLookupComboBox2KeyPress(Sender: TObject;

var Key: Char); begin

Key:=#0;

end;

end.

Smena

unit Smena;

interface

uses

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

Dialogs, DBCtrls, StdCtrls, ExtCtrls, DB, ADODB, Buttons;

type

TForm13 = class(TForm) Panel1: TPanel; Label1: TLabel;

DBLookupComboBox1: TDBLookupComboBox; Panel2: TPanel;

Label2: TLabel; Edit1: TEdit; Panel3: TPanel; Label3: TLabel; Label4: TLabel; Edit2: TEdit; Edit3: TEdit; Panel4: TPanel; BitBtn1: TBitBtn; BitBtn2: TBitBtn;

ADOQuery1: TADOQuery;

DataSource1: TDataSource;

procedure BitBtn1Click(Sender: TObject);

procedure DBLookupComboBox1CloseUp(Sender: TObject); procedure BitBtn2Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure DBLookupComboBox1KeyPress(Sender: TObject; var Key: Char);

private

{Private declarations } public

{Public declarations } end;

var

Form13: TForm13; posetitel,pwd:string;

implementation

uses Menu, Postupivshie, Spiski;

{$R *.dfm}

procedure TForm13.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 ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('Update Polzovatel set p_parol="'+Edit3.Text+'" where p_id='+IntToStr(DBLookupComboBox1.KeyValue)+';');

ADOQuery1.ExecSQL;

Form1:=TForm1.Create(self);

Form1.Show;

if posetitel='ГОСТЬ' then begin

Form1.N3.Enabled:=false; // справочники form10.Button2.Enabled:=false; //сформировать отчет в

Word

47

form7.Button1.Enabled:=false; //сформировать отчет в

var Key: Char);

Excel

 

 

begin

Form1.N12.Enabled:=false;

// успешная школа

Key:=#0;

Form1.N17.Enabled:=false; //смена пароля

end;

Form1.N18.Enabled:=false; //резервное копирование

 

end;

 

 

end.

if posetitel='МЕНЕДЖЕР' then

 

begin

 

 

 

Form1.N17.Enabled:=false; //смена пароля

 

Form1.N18.Enabled:=false; //резервное копирование

 

end;

 

 

 

if posetitel='АДМИНИСТРАТОР' then

 

begin

 

 

 

end;

 

 

 

Form13.Hide;

 

 

ADOQuery1.SQL.Clear;

 

 

ADOQuery1.Close;

 

 

end

 

 

 

else

 

 

 

MessageDlg('Неверное

дублирование пароля',mtError,

 

[mbOk],0);

 

 

 

end

 

 

 

else

 

 

 

MessageDlg('Укажите пользователя',mtWarning,[mbOk],0);

 

end;

 

 

 

procedure

TForm13.DBLookupComboBox1CloseUp(Sender:

 

TObject);

 

 

 

begin

 

 

 

posetitel:=DBLookupComboBox1.Text;

 

if posetitel <> '' then

 

 

begin

 

 

 

Edit1.SetFocus;

 

 

ADOQuery1.Close;

 

 

ADOQuery1.SQL.Clear;

 

 

ADOQuery1.SQL.Add('select * from Polzovatel where

 

p_id='+inttostr(DBLookupComboBox1.KeyValue)+';');

 

ADOQuery1.Open;

 

 

pwd:=ADOQuery1.fieldByName('p_parol').AsString;

 

ADOQuery1.SQL.Clear;

 

 

ADOQuery1.SQL.Add('select * from Polzovatel;');

 

ADOQuery1.Open;

 

 

end;

 

 

 

end;

 

 

 

procedure TForm13.BitBtn2Click(Sender: TObject);

 

begin

 

 

 

Form13.Close;

 

 

 

end;

 

 

 

procedure TForm13.FormShow(Sender: TObject);

 

begin

 

 

 

ADOQuery1.SQL.Clear;

 

 

ADOQuery1.SQL.Add('select * from Polzovatel');

 

ADOQuery1.Open;

 

 

end;

 

 

 

procedure

TForm13.DBLookupComboBox1KeyPress(Sender:

 

TObject;

 

 

 

ПРИЛОЖЕНИЕ В

Ксерокопия статьи

48

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