- •1.3. Функциональная модель по стандарту IDEF0 (Icam DEFinition) и методологии SADT………………………………………………………………..8
- •Информационная система для автоматизации учета абитуриентов высшего учебного заведения должна содержать следующую информацию:
- •1.2 Анализ предметной области
- •1.3 Функциональная модель по стандарту IDEF0 (Icam DEFinition) и методологии SADT
- •1.4 Логическая и физическая модели данных по стандарту IDEF1X
- •СПИСОК ИСПОЛЬЗОВАННЫ ИСТОЧНИКОВ
СПИСОК ИСПОЛЬЗОВАННЫ ИСТОЧНИКОВ
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