Разработка программной оболочки «Методические указания по самостоятельной работе студентов по дисциплине «Базы данных» (Текст программы)

Страницы работы

Фрагмент текста работы

ПРИЛОЖЕНИЕ Л

ТЕКСТ ПРОГРАММЫ

// Листинг окна приветсвия

unit Glavnai;

interface

uses

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

Dialogs, Polzovatel, Menus, StdCtrls, jpeg, ExtCtrls, ComCtrls, Gauges,

DBTables;

type

TFrmGlavnai = class(TForm)                //форма запускная

Fon: TImage;                            // фон формы

Label1: TLabel;                         // методические указания

Label2: TLabel;

Timer1: TTimer;

ProcZagr: TProgressBar;

Session1: TSession;

Label3: TLabel;                      // команда меню файл-выход

procedure FormActivate(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

// procedure FormActivate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FrmGlavnai: TFrmGlavnai;

i: Variant;

implementation

uses StrUtils;

{$R *.dfm}

// Активизация формы

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

procedure TFrmGlavnai.FormActivate(Sender: TObject);

const

Document = 'Tables\';

var n: Integer ;

strDoc: String;

begin

strDoc := ExtractFilePath(Application.ExeName);    // определение пути к текущему проекту

n :=  Length(strDoc); // определение длины строки (пути к проекту)

strdoc:=LeftStr(strDoc, n-9)+Document; //от основного

with Session do begin

ConfigMode:=cmSession;

try

AddStandardAlias('MetodUk',strDoc,'PARADOX');

finally

ConfigMode:=cmAll;

end;

end;

FrmGlavnai.Timer1.Enabled := true;

i:=1;

end;

// Таймер

procedure TFrmGlavnai.Timer1Timer(Sender: TObject);

begin

repeat

if i = 100 then begin

FrmPolzov.Visible:=true;              // отражение формы "Пользователь"

FrmGlavnai.Visible:=false;            // скрытие формы "Главная"

FrmGlavnai.Timer1.Enabled := False;

exit;

end

else begin

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

i:=i+0.01;

end;

ProcZagr.StepIt;

until i =100;

end;

end.

// Листинг окна "Методические указания"

unit MetUkGr;

interface

uses

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

Dialogs, StdCtrls, Menus, ExtCtrls, ComCtrls, Buttons, ToolWin, Ocenki, SrokiV,

OleCtnrs, OleCtrls, SHDocVw, DBTables, ImgList;

type

TfrmMetUkGr = class(TForm)

ToolBar1: TToolBar;

bbtnExit: TBitBtn;

bbtnSlovar: TBitBtn;

bbtnSroki: TBitBtn;

BitBtn4: TBitBtn;

ScrollBox2: TScrollBox;

WebBrowser1: TWebBrowser;

BBtnKontr: TBitBtn;

StatusBar1: TStatusBar;

Panel1: TPanel;

ScrollBox1: TScrollBox;

TreeView1: TTreeView;

bbtnSpravka: TBitBtn;

ImageListMetodUkGr: TImageList;

procedure ExiClick(Sender: TObject);

procedure BitBtn4Click(Sender: TObject);

procedure bbtnSrokiClick(Sender: TObject);

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

procedure bbtnExitClick(Sender: TObject);

procedure TreeView1Click(Sender: TObject);

procedure bbtnSlovarClick(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure TreeView1Change(Sender: TObject; Node: TTreeNode);

procedure BBtnKontrClick(Sender: TObject);

procedure bbtnSpravkaClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmMetUkGr: TfrmMetUkGr;

implementation

uses StrUtils, Polzovatel, Glavnai, Slovar, Kontr, Spravka;

{$R *.dfm}

procedure TfrmMetUkGr.ExiClick(Sender: TObject);

begin

frmMetUkGr.Close;

end;

// Нажатие кнопки "Оценки"

procedure TfrmMetUkGr.BitBtn4Click(Sender: TObject);

var

IdGrup, Famss, Imss, Otchss: string;

begin

frmOcenci.StatusBar1.Panels[0].Text:=DateToStr(Now);

frmOcenci.tblOcenki.Open;

idGrup:=Grup;

Famss:= Fams;

imss:= Ims;

otchss:= Otchs;

//if Grup <> ''  and Fams <>'' then  begin

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

with frmOcenci.Query1 do begin

close;

SQL.Clear;

SQL.Add('Select IdGr, Fam, Name, Otch, Oc1, Oc2, Oc3, Oc4, Oc5, Oc6, Oc7, Oc8');

SQL.Add('FROM "..\Tables\Ocenki.db"');

SQL.Add('WHERE');

SQL.Add('(Idgr="'+IdGrup+'") and (fam="'+Famss+'") and (Name="'+Imss+'") and (Otch="'+Otchss+'")');

// SQL.Add();

Open;

end;

if frmOcenci.Query1.RecordCount <>0 then     begin

frmOcenci.GurOcData.DataSet:=frmOcenci.Query1;

frmOcenci.Visible:=True;

end

else Begin

ShowMessage('В БД нет записей, удовлетворяющих  '+'критерию запроса');

end;

end;

// Нажатие кнопки "Сроки сдачи"

procedure TfrmMetUkGr.bbtnSrokiClick(Sender: TObject);

begin

frmSroki.Visible:=True;

end;

procedure TfrmMetUkGr.bbtnExitClick(Sender: TObject);

begin

Close;

frmPolzov.Visible :=True;

end;

procedure TfrmMetUkGr.TreeView1Click(Sender: TObject);

const

Document = 'Metoxd_uk\';

var m, n: Integer ;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

strDoc: String;

begin

strDoc := ExtractFilePath(Application.ExeName);    // определение пути к текущему проекту

n :=  Length(strDoc); // определение длины строки (пути к проекту)

strdoc:=LeftStr (strDoc, n-9)+Document; //от основного

m := TreeView1.Selected.Index;

if frmMetUkGr.TreeView1.Selected.Level = 0 then begin

if m = 0 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Sodreg.htm');

StatusBar1.Panels[2].Text:= 'Содержание'

end;

if m = 1 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Vvedenie.htm');

StatusBar1.Panels[2].Text:= 'Введение'

end;

if m = 2 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Sodreg.htm');

StatusBar1.Panels[2].Text:= 'Содрежание'

end;

if m = 3 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Lit.htm');

StatusBar1.Panels[2].Text:= 'Литература'

end;

end

else if frmMetUkGr.TreeView1.Selected.Level = 1 then begin

if m = 0 then begin

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk1.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 1'

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

end;

if m = 1 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk2.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 2'

end;

if m = 2 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk3.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 3'

end;

if m = 3 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk4.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 4'

end;

if m = 4 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk5.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 5'

end;

if m = 5 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk6.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 6'

end;

if m = 6 then begin

frmMetUkGr.WebBrowser1.Navigate('');

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk7.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 7'

end;

if m = 7 then begin

frmMetUkGr.WebBrowser1.Navigate('');

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Metod_ uk8.htm');

StatusBar1.Panels[2].Text:= 'Самостоятельная работа № 8'

end;

end;

end;

procedure TfrmMetUkGr.bbtnSlovarClick(Sender: TObject);

begin

frmSlovar.visible :=true;

end;

procedure TfrmMetUkGr.FormActivate(Sender: TObject);

const

Document = 'Metoxd_uk\';

var n: Integer ;

strDoc: String;

begin

frmMetUkGr.Align := alClient;

frmMetUkGr.ScrollBox1.Align := alClient;

frmMetUkGr.ScrollBox2.Align := alClient;

frmMetUkGr.TreeView1.Align :=alClient;

frmMetUkGr.WebBrowser1.Align :=alClient;

StatusBar1.Panels[0].Text:=DateToStr(Now);

strDoc := ExtractFilePath(Application.ExeName);    // определение пути к текущему проекту

n :=  Length(strDoc); // определение длины строки (пути к проекту)

strdoc:=LeftStr (strDoc, n-9)+Document; //от основного

frmMetUkGr.WebBrowser1.Navigate(strDoc + 'Sodreg.htm');

end;

procedure TfrmMetUkGr.TreeView1Change(Sender: TObject; Node: TTreeNode);

begin

TreeView1Click(Sender);

end;

procedure TfrmMetUkGr.BBtnKontrClick(Sender: TObject);

begin

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmKontrol.visible :=true;

end;

procedure TfrmMetUkGr.bbtnSpravkaClick(Sender: TObject);

const

Document = 'Spravka\';

var  n: Integer ;

Doc: String;

begin

Doc := ExtractFilePath(Application.ExeName);    // определение пути к текущему проекту

n :=  Length(Doc); // определение длины строки (пути к проекту)

doc:=LeftStr(Doc, n-9)+Document; //от основного

frmSpravk.WebBrowser1.Navigate(Doc + 'frmMetodUkGr.htm');

frmSpravk.Visible :=True;

end;

end.

// Листинг формы "Журнал оценок"

unit GurOc;

interface

uses

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

Dialogs,StdCtrls,  OleCtrls, ExtCtrls, ComCtrls, Menus, Buttons, ToolWin,

DBCtrls, Grids, DBGrids, DB, DBTables, RpRave, RpDefine, RpCon, RpConDS,

RpConBDE,  RpRender, RpRenderCanvas, RpRenderPreview;

type

TfrmGurOc = class(TForm)                          // форма "Журанал оценок"

GurOcMenu: TMainMenu;                               // команда меню Правка

// команда меню Правка

// "Добавить"

mSpravka: TMenuItem;                             // панель управления

DBGridOcenki: TDBGrid;

Query1: TQuery;

tblOcenki: TTable;

GurOcData: TDataSource;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

mExit: TMenuItem;

GroupBoxStud: TGroupBox;

LabGr: TLabel;

LabFam: TLabel;

LabIm: TLabel;

LabOtch: TLabel;

GroupBoxOcenki: TGroupBox;

SrRabNum: TComboBox;

Ocenk: TComboBox;

LabSr: TLabel;

LabOcenki: TLabel;

Panel: TPanel;

bbtnAll: TBitBtn;

bbtnProsmotr: TBitBtn;

btnTabl: TButton;

btnDel: TButton;

btnPerv: TButton;

btnPred: TButton;

btnSled: TButton;

btnPosled: TButton;

btnPech: TButton;

RvDataSetConnection1: TRvDataSetConnection;

RvProject1: TRvProject;

OchistkaPoley: TMenuItem;

tblGrupps: TTable;

tblGruppsIdgr: TStringField;

tblGruppsVrIz: TStringField;

SpisokSource: TDataSource;

Gruppa: TComboBox;

Famyli: TComboBox;

tlbStudent: TTable;

SursStud: TDataSource;

Imja: TComboBox;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

Otchest: TComboBox;

RvQueryConnection1: TRvQueryConnection;                          // кнопка  "Промостр"

procedure kmSaveClick(Sender: TObject);

procedure bbtnProsmotrClick(Sender: TObject);

procedure FormActivate(Sender: TObject);

procedure bbtnAllClick(Sender: TObject);

procedure mExitClick(Sender: TObject);

procedure btnTablClick(Sender: TObject);

procedure btnDelClick(Sender: TObject);

procedure DBGridOcenkiCellClick(Column: TColumn);

procedure btnPervClick(Sender: TObject);

procedure btnPredClick(Sender: TObject);

procedure btnSledClick(Sender: TObject);

procedure btnPosledClick(Sender: TObject);

procedure btnPechClick(Sender: TObject);

procedure OchistkaPoleyClick(Sender: TObject);

procedure OcenkChange(Sender: TObject);

procedure GruppaExit(Sender: TObject);

procedure FamyliExit(Sender: TObject);

procedure ImjaExit(Sender: TObject);

procedure OtchestExit(Sender: TObject);

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

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

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

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

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

procedure DBGridOcenkiKeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

procedure mSpravkaClick(Sender: TObject);

procedure GruppaChange(Sender: TObject);

procedure FamyliChange(Sender: TObject);

procedure ImjaChange(Sender: TObject);

procedure OtchestChange(Sender: TObject);

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

private

{ Private declarations }

public

{ Public declarations }

end;

var

frmGurOc: TfrmGurOc;

a : integer;

implementation

uses  KonstrMU, Math, StrUtils, Spravka;

{$R *.dfm}

// вызов команды меню Файл-Сохранить

procedure TfrmGurOc.kmSaveClick(Sender: TObject);

begin

frmGurOc.tblOcenki.Post;

end;

// Нажатие копки "Просмостр"

procedure TfrmGurOc.bbtnProsmotrClick(Sender: TObject);

var

idgr:Variant;

begin

frmGurOc.tblOcenki.Close;

frmGurOc.tblOcenki.Open;

idgr:=InputBox('Выборка информации из БД',

'Укажите группу и щелкните на ОК','');

if idgr <> '' then

begin

with frmGurOc.Query1 do begin

Close;

SQL.Clear;

SQL.Add('SELECT IdGr, Fam, Name, Otch, Oc1, Oc2, Oc3, Oc4, Oc5, Oc6, Oc7, Oc8');

SQL.Add('FROM "..\Tables\Ocenki.db"');

SQL.Add('WHERE');

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

SQL.Add('(IdGr="' +idgr+ '")');

//SQL.Add('ORDER BY Fam, Name, IdGr');

Open;

end;

if Query1.RecordCount <>0 then

frmGurOc.GurOcData.DataSet:=Query1

else

Begin

ShowMessage('В БД нет записей, удовлетворяющих  '+'критерию запроса');

frmGurOc.GurOcData.DataSet:= frmGurOc.tblOcenki;

end;

end;

end;

// при активации формы

procedure TfrmGurOc.FormActivate(Sender: TObject);

const

Document = 'Otchets\GurOc.rav';

var m, n: Integer ;

strDoc: String;

begin

strDoc := ExtractFilePath(Application.ExeName);    // определение пути к текущему проекту

n :=  Length(strDoc); // определение длины строки (пути к проекту)

strdoc:=LeftStr(strDoc, n-9)+Document; //от основного

frmGurOc.RvProject1.ProjectFile := strDoc;

//frmGurOc.StatusBar1.Panels[0].Text:=DateToStr(Now);

Self.DBGridOcenki.Visible:=False;

Self.Height:=264;

a:=0;

frmGurOc.tblGrupps.Open;

frmGurOc.tblGrupps.First;

frmGurOc.Gruppa.Items.Clear;

while not frmGurOc.tblGrupps.Eof do begin

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmGurOc.Gruppa.Items.Insert(a,frmGurOc.tblGrupps.Fields[0].AsString);

a :=a+1;

frmGurOc.tblGrupps.Next;

end;

frmGurOc.tblOcenki.Open;

frmGurOc.GurOcData.DataSet:=frmGurOc.tblOcenki;

end;

// нажатие кнопки ""Все записи"

procedure TfrmGurOc.bbtnAllClick(Sender: TObject);

begin

frmGurOc.GurOcData.DataSet:=frmGurOc.tblOcenki;

DBGridOcenki.DataSource:= frmGurOc.GurOcData;

end;

// нажате команды меню "Закрыть"

procedure TfrmGurOc.mExitClick(Sender: TObject);

begin

frmGurOc.tblOcenki.Refresh;

frmGurOc.tblOcenki.Close;

frmGurOc.tblGrupps.Close;

frmGurOc.Close;

end;

// нажатие кнопки "Таблица"

procedure TfrmGurOc.btnTablClick(Sender: TObject);

begin

if DBGridOcenki.Visible = true then

// скрыть таблицу

begin

Self.DBGridOcenki.Visible:=False;

Self.Height:=264;

btnDel.Enabled:=False;

btnPerv.Enabled:=False;

btnPred.Enabled:=False;

btnSled.Enabled:=False;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

btnPosled.Enabled:=False;

bbtnAll.Enabled:=False;

bbtnProsmotr.Enabled:=False;

end

else

// ввести таблицу

begin

Self.DBGridOcenki.Visible:=True;

self.Height:=480;

btnDel.Enabled:=True;

btnPerv.Enabled:=True;

btnPred.Enabled:=True;

btnSled.Enabled:=True;

btnPosled.Enabled:=True;

bbtnAll.Enabled:=True;

bbtnProsmotr.Enabled:=True;

end;

end;

// Нажатие кнопки "Удалить"

procedure TfrmGurOc.btnDelClick(Sender: TObject);

begin

frmGurOc.tblOcenki.Delete;

end;

// Редактирование записей

procedure TfrmGurOc.DBGridOcenkiCellClick(Column: TColumn);

begin

frmGurOc.Gruppa.Enabled :=False;

frmGurOc.Famyli.Enabled :=False;

frmGurOc.Imja.Enabled :=False;

frmGurOc.Otchest.Enabled :=False;

frmGurOc.Gruppa.Text := frmGurOc.tblOcenki.Fields[1].AsString;

frmGurOc.Famyli.Text := frmGurOc.tblOcenki.Fields[2].AsString;

frmGurOc.Imja.Text := frmGurOc.tblOcenki.Fields[3].AsString;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmGurOc.Otchest.Text := frmGurOc.tblOcenki.Fields[4].AsString;

frmGurOc.SrRabNum.Text  := '1';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[5].AsString;

if DBGridOcenki.SelectedIndex = 4 then begin

frmGurOc.SrRabNum.Text  := '1';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[5].AsString;

end;

if DBGridOcenki.SelectedIndex = 5 then begin

frmGurOc.SrRabNum.Text  := '2';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[6].AsString;

end;

if DBGridOcenki.SelectedIndex = 6 then begin

frmGurOc.SrRabNum.Text  := '3';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[7].AsString;

end;

if DBGridOcenki.SelectedIndex = 7 then begin

frmGurOc.SrRabNum.Text  := '4';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[8].AsString;

end;

if DBGridOcenki.SelectedIndex = 8 then begin

frmGurOc.SrRabNum.Text  := '5';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[9].AsString;

end;

if DBGridOcenki.SelectedIndex = 9 then begin

frmGurOc.SrRabNum.Text  := '6';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[10].AsString;

end;

if DBGridOcenki.SelectedIndex = 10 then begin

frmGurOc.SrRabNum.Text  := '7';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[11].AsString;

end;

if DBGridOcenki.SelectedIndex = 11 then begin

frmGurOc.SrRabNum.Text  := '8';

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[12].AsString;

end;

end;

// Нажатие кнопки "Первая"

procedure TfrmGurOc.btnPervClick(Sender: TObject);

begin

if frmGurOc.tblOcenki.Bof = False then begin

FrmGurOc.tblOcenki.First;

frmGurOc.DBGridOcenki.SetFocus;

end;

end;

// Нажатие кнопки "Предыдущая"

procedure TfrmGurOc.btnPredClick(Sender: TObject);

begin

if frmGurOc.tblOcenki.Bof = false then begin

frmGurOc.tblOcenki.Prior;

frmGurOc.DBGridOcenki.SetFocus;

end;

end;

// Нажатие кнопки "Следующая"

procedure TfrmGurOc.btnSledClick(Sender: TObject);

begin

if frmGurOc.tblOcenki.Eof = false then begin

frmGurOc.tblOcenki.Next;

frmGurOc.DBGridOcenki.SetFocus;

end;

end;

// Нажатие кнопки "Последняя"

procedure TfrmGurOc.btnPosledClick(Sender: TObject);

begin

if frmGurOc.tblOcenki.Eof = false then begin

frmGurOc.tblOcenki.Last;

frmGurOc.DBGridOcenki.SetFocus;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

end;

end;

//Нажатие кнопки "Печать"

procedure TfrmGurOc.btnPechClick(Sender: TObject);

var

idgr:Variant;

begin

frmGurOc.tblOcenki.Close;

frmGurOc.tblOcenki.Open;

idgr:=InputBox('Выборка информации из БД',

'Укажите группу и щелкните на ОК','');

if idgr <> '' then

begin

with frmGurOc.Query1 do begin

Close;

SQL.Clear;

SQL.Add('SELECT IdGr, Fam, Name, Otch, Oc1, Oc2, Oc3, Oc4, Oc5, Oc6, Oc7, Oc8');

SQL.Add('FROM "..\Tables\Ocenki.db"');

SQL.Add('WHERE');

SQL.Add('(IdGr="' +idgr+ '")');

//SQL.Add('ORDER BY Fam, Name, IdGr');

Open;

end;

if Query1.RecordCount <>0 then

frmGurOc.GurOcData.DataSet:=Query1

else

Begin

ShowMessage('В БД нет записей, удовлетворяющих  '+'критерию запроса');

frmGurOc.GurOcData.DataSet:= frmGurOc.tblOcenki;

end;

end;

RvProject1.ExecuteReport('Report3');

end;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

procedure TfrmGurOc.OchistkaPoleyClick(Sender: TObject);

begin

frmGurOc.Gruppa.Enabled := true;

// frmGurOc.Famyli.Enabled := true;

// frmGurOc.Imja.Enabled := true;

//  frmGurOc.Otchest.Enabled := true;

frmGurOc.SrRabNum.Enabled := true;

frmGurOc.Ocenk.Enabled := true;

frmGurOc.Gruppa.Text := '';

frmGurOc.Famyli.Text := '';

frmGurOc.Imja.Text := '';

frmGurOc.Otchest.Text := '';

frmGurOc.SrRabNum.Text :='';

frmGurOc.Ocenk.Text :='';

frmGurOc.Gruppa.SetFocus;

frmGurOc.tblOcenki.Append;

end;

procedure TfrmGurOc.OcenkChange(Sender: TObject);

begin

frmGurOc.tblOcenki.Edit;

if frmGurOc.SrRabNum.Text = '1' then begin

frmGurOc.tblOcenki.Fields[5].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '2' then begin

frmGurOc.tblOcenki.Fields[6].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '3' then begin

frmGurOc.tblOcenki.Fields[7].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '4' then begin

frmGurOc.tblOcenki.Fields[8].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '5' then begin

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmGurOc.tblOcenki.Fields[9].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '6' then begin

frmGurOc.tblOcenki.Fields[10].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '7' then begin

frmGurOc.tblOcenki.Fields[11].AsString  := frmGurOc.Ocenk.Text;

end;

if frmGurOc.SrRabNum.Text = '8' then begin

frmGurOc.tblOcenki.Fields[12].AsString  := frmGurOc.Ocenk.Text;

end;

frmGurOc.tblOcenki.Post;

end;

procedure TfrmGurOc.GruppaExit(Sender: TObject);

begin

if frmGurOc.Gruppa.Text ='' then  begin

if (frmGurOc.Gruppa.Text = '') and (frmGurOc.Famyli.Text = '') and

(frmGurOc.Imja.Text = '')   and (frmGurOc.Otchest.Text ='') then begin

MessageDlg('Есть не заполненные поля, пожалуйста заполните', mtWarning, [mbOK], 0 );

exit;

end;

end

else begin

frmGurOc.tblOcenki.Fields[1].AsString := frmGurOc.Gruppa.Text;

frmGurOc.tblOcenki.Fields[2].AsString := frmGurOc.Famyli.Text;

frmGurOc.tblOcenki.Fields[3].AsString := frmGurOc.Imja.Text;

frmGurOc.tblOcenki.Fields[4].AsString := frmGurOc.Otchest.Text;

end;

//  frmGurOc.tblOcenki.Post;

end;

procedure TfrmGurOc.FamyliExit(Sender: TObject);

begin

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

if frmGurOc.Gruppa.Text =''  then  begin

if (frmGurOc.Gruppa.Text = '') and (frmGurOc.Famyli.Text = '') and

(frmGurOc.Imja.Text = '')   and (frmGurOc.Otchest.Text ='') then begin

MessageDlg('Есть не заполненные поля, пожалуйста заполните', mtWarning, [mbOK], 0 );

exit;

end;

end

else begin

frmGurOc.tblOcenki.Fields[1].AsString := frmGurOc.Gruppa.Text;

frmGurOc.tblOcenki.Fields[2].AsString := frmGurOc.Famyli.Text;

frmGurOc.tblOcenki.Fields[3].AsString := frmGurOc.Imja.Text;

frmGurOc.tblOcenki.Fields[4].AsString := frmGurOc.Otchest.Text;

end;

// frmGurOc.tblOcenki.Post;

end;

procedure TfrmGurOc.ImjaExit(Sender: TObject);

begin

if frmGurOc.Gruppa.Text ='' then  begin

if (frmGurOc.Gruppa.Text = '') and (frmGurOc.Famyli.Text = '') and

(frmGurOc.Imja.Text = '')   and (frmGurOc.Otchest.Text ='') then begin

MessageDlg('Есть не заполненные поля, пожалуйста заполните', mtWarning, [mbOK], 0 );

exit;

end;

end

else begin

frmGurOc.tblOcenki.Fields[1].AsString := frmGurOc.Gruppa.Text;

frmGurOc.tblOcenki.Fields[2].AsString := frmGurOc.Famyli.Text;

frmGurOc.tblOcenki.Fields[3].AsString := frmGurOc.Imja.Text;

frmGurOc.tblOcenki.Fields[4].AsString := frmGurOc.Otchest.Text;

end;

//  frmGurOc.tblOcenki.Post;

end;

procedure TfrmGurOc.OtchestExit(Sender: TObject);

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

begin

if frmGurOc.Gruppa.Text ='' then  begin

if (frmGurOc.Gruppa.Text = '') and (frmGurOc.Famyli.Text = '') and

(frmGurOc.Imja.Text = '')   and (frmGurOc.Otchest.Text ='') then begin

MessageDlg('Есть не заполненные поля, пожалуйста заполните', mtWarning, [mbOK], 0 );

exit;

end;

end

else begin

frmGurOc.tblOcenki.Fields[1].AsString := frmGurOc.Gruppa.Text;

frmGurOc.tblOcenki.Fields[2].AsString := frmGurOc.Famyli.Text;

frmGurOc.tblOcenki.Fields[3].AsString := frmGurOc.Imja.Text;

frmGurOc.tblOcenki.Fields[4].AsString := frmGurOc.Otchest.Text;

end;

// frmGurOc.tblOcenki.Post;

end;

procedure TfrmGurOc.GruppaKeyPress(Sender: TObject; var Key: Char);

begin

case Key oF

#13: frmGurOc.Famyli.SetFocus;

end;

end;

procedure TfrmGurOc.ImjaKeyPress(Sender: TObject; var Key: Char);

begin

case Key oF

#13: frmGurOc.Otchest.SetFocus;

end;

end;

procedure TfrmGurOc.OtchestKeyPress(Sender: TObject; var Key: Char);

begin

case Key oF

#13: frmGurOc.SrRabNum.SetFocus;

end;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

end;

procedure TfrmGurOc.SrRabNumKeyPress(Sender: TObject; var Key: Char);

begin

case Key oF

#13: frmGurOc.Ocenk.SetFocus;

end;

end;

procedure TfrmGurOc.FamyliKeyPress(Sender: TObject; var Key: Char);

begin

case Key oF

#13: frmGurOc.Imja.SetFocus;

end;

end;

procedure TfrmGurOc.DBGridOcenkiKeyUp(Sender: TObject; var Key: Word;

Shift: TShiftState);

begin

frmGurOc.Gruppa.Enabled :=False;

frmGurOc.Famyli.Enabled :=False;

frmGurOc.Imja.Enabled :=False;

frmGurOc.Otchest.Enabled :=False;

frmGurOc.Gruppa.Text := frmGurOc.tblOcenki.Fields[1].AsString;

frmGurOc.Famyli.Text := frmGurOc.tblOcenki.Fields[2].AsString;

frmGurOc.Imja.Text := frmGurOc.tblOcenki.Fields[3].AsString;

frmGurOc.Otchest.Text := frmGurOc.tblOcenki.Fields[4].AsString;

frmGurOc.SrRabNum.Text  := '1';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[5].AsString;

if DBGridOcenki.SelectedIndex = 4 then begin

frmGurOc.SrRabNum.Text  := '1';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[5].AsString;

end;

if DBGridOcenki.SelectedIndex = 5 then begin

frmGurOc.SrRabNum.Text  := '2';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[6].AsString;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

end;

if DBGridOcenki.SelectedIndex = 6 then begin

frmGurOc.SrRabNum.Text  := '3';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[7].AsString;

end;

if DBGridOcenki.SelectedIndex = 7 then begin

frmGurOc.SrRabNum.Text  := '4';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[8].AsString;

end;

if DBGridOcenki.SelectedIndex = 8 then begin

frmGurOc.SrRabNum.Text  := '5';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[9].AsString;

end;

if DBGridOcenki.SelectedIndex = 9 then begin

frmGurOc.SrRabNum.Text  := '6';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[10].AsString;

end;

if DBGridOcenki.SelectedIndex = 10 then begin

frmGurOc.SrRabNum.Text  := '7';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[11].AsString;

end;

if DBGridOcenki.SelectedIndex = 11 then begin

frmGurOc.SrRabNum.Text  := '8';

frmGurOc.Ocenk.Text := frmGurOc.tblOcenki.Fields[12].AsString;

end;

end;

procedure TfrmGurOc.mSpravkaClick(Sender: TObject);

const

Document = 'Spravka\';

var  n: Integer ;

Doc: String;

begin

Doc := ExtractFilePath(Application.ExeName);    // определение пути к текущему проекту

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

n :=  Length(Doc); // определение длины строки (пути к проекту)

doc:=LeftStr(Doc, n-9)+Document; //от основного

frmSpravk.WebBrowser1.Navigate(Doc + 'frmGurOc.htm');

frmSpravk.Visible :=True;

end;

procedure TfrmGurOc.GruppaChange(Sender: TObject);

begin

a:=0;

frmGurOc.tlbStudent.Open;

frmGurOc.tlbStudent.First;

frmGurOc.Famyli.Items.Clear;

while not frmGurOc.tlbStudent.Eof do begin

if frmGurOc.tlbStudent.Fields[1].AsString = frmGurOc.Gruppa.Text then begin

frmGurOc.Famyli.Items.Insert(a,frmGurOc.tlbStudent.Fields[2].AsString);

a :=a+1;

frmGurOc.tlbStudent.Next;

end

else begin

frmGurOc.tlbStudent.Next;

end;

end;

if frmGurOc.Gruppa.Text <> '' then begin

frmGurOc.Famyli.Enabled := true;

frmGurOc.Famyli.Text :='';

frmGurOc.Imja.Text :='';

frmGurOc.Otchest.Text :='';

frmGurOc.Famyli.SetFocus;

end

else begin

frmGurOc.Famyli.Enabled := False;

frmGurOc.Famyli.Text :='';

end;

end;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

procedure TfrmGurOc.FamyliChange(Sender: TObject);

begin

a:=0;

frmGurOc.tlbStudent.Open;

frmGurOc.tlbStudent.First;

frmGurOc.imja.Items.Clear;

while not frmGurOc.tlbStudent.Eof do begin

if (frmGurOc.tlbStudent.Fields[1].AsString = frmGurOc.Gruppa.Text)  and

(frmGurOc.tlbStudent.Fields[2].AsString = frmGurOc.Famyli.Text)  then begin

frmGurOc.Imja.Items.Insert(a,frmGurOc.tlbStudent.Fields[3].AsString);

a :=a+1;

frmGurOc.tlbStudent.Next;

end

else begin

frmGurOc.tlbStudent.Next;

end;

end;

if frmGurOc.Famyli.Text  <> '' then begin

frmGurOc.Imja.Enabled := true;

frmGurOc.Imja.Text :='';

frmGurOc.Imja.SetFocus;

end

else begin

frmGurOc.Imja.Enabled := False;

frmGurOc.Imja.Text :='';

end;

end;

procedure TfrmGurOc.ImjaChange(Sender: TObject);

begin

a:=0;

frmGurOc.tlbStudent.Open;

frmGurOc.tlbStudent.First;

frmGurOc.Otchest.Items.Clear;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

while not frmGurOc.tlbStudent.Eof do begin

if (frmGurOc.tlbStudent.Fields[1].AsString = frmGurOc.Gruppa.Text)  and

(frmGurOc.tlbStudent.Fields[2].AsString = frmGurOc.Famyli.Text) and

(frmGurOc.tlbStudent.Fields[3].AsString = frmGurOc.Imja.Text) then begin

frmGurOc.Otchest.Items.Insert(a,frmGurOc.tlbStudent.Fields[4].AsString);

a :=a+1;

frmGurOc.tlbStudent.Next;

end

else begin

frmGurOc.tlbStudent.Next;

end;

end;

if frmGurOc.Imja.Text  <> '' then begin

frmGurOc.Otchest.Enabled := true;

frmGurOc.Otchest.Text :='';

frmGurOc.Otchest.SetFocus;

end

else begin

frmGurOc.Otchest.Enabled := False;

frmGurOc.Otchest.Text :='';

end;

end;

procedure TfrmGurOc.OtchestChange(Sender: TObject);

begin

if frmGurOc.Gruppa.Text ='' then  begin

if (frmGurOc.Gruppa.Text = '') and (frmGurOc.Famyli.Text = '') and

(frmGurOc.Imja.Text = '')   and (frmGurOc.Otchest.Text ='') then begin

MessageDlg('Есть не заполненные поля, пожалуйста заполните', mtWarning, [mbOK], 0 );

exit;

end;

end

else begin

frmGurOc.tblOcenki.Fields[1].AsString := frmGurOc.Gruppa.Text;

ПРОДОЛЖЕНИЕ ПРИЛОЖЕНИЯ Л

frmGurOc.tblOcenki.Fields[2].AsString := frmGurOc.Famyli.Text;

frmGurOc.tblOcenki.Fields[3].AsString := frmGurOc.Imja.Text;

frmGurOc.tblOcenki.Fields[4].AsString := frmGurOc.Otchest.Text;

end;

end;

end. // конец листинга

// Листинг окна "Оценки"

unit Ocenki;

interface

uses

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

Dialogs, Grids, DBGrids,StdCtrls, Buttons, ToolWin, ComCtrls,

ExtCtrls, DBCtrls, DB, DBTables, Mask, Polzovatel, ImgList, Menus

Похожие материалы

Информация о работе