Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab_4.doc
Скачиваний:
9
Добавлен:
12.02.2016
Размер:
4.24 Mб
Скачать

10 3 8 7 4 9 1 7 10 5 9 4 8 3

1. Connection (компонента типу TADOConnection призначена для встановлення зв’язку з базою даних;

2. UsersDataSource – компонента типу TDataSource, яка виконує роль джерела даних про користувачів;

3. GroupsDataSource – компонента типу TDataSource, яка виконує роль джерела даних про групи користувачів;

4. SurveysDataSource – компонента типу TDataSource, яка виконує роль джерела даних тестувань та опитувань думки;

5. ResultsDataSource – компонента типу TDataSource, яка виконує роль джерела даних результатів тестувань та опитувань;

6. UsersStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на завантаження даних про користувачів з бази;

7. GroupsStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на завантаження даних про групи користувачів з бази;

8. SurveysStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на завантаження тестувань та опитувань з бази;

9. ResultsStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на завантаження результатів тестувань та опитувань з бази;

10. ActionStoredProc – компонента типу TADOStoredProc, призначена для виклику збережуваних процидур орієнтованих на додавання, редагування та видалення даних з бази.

Код:

type

TDataModule1 = class(TDataModule)

Connection: TADOConnection;

UsersDataSource: TDataSource;

GroupsDataSource: TDataSource;

UsersStoredProc: TADOStoredProc;

ActionStoredProc: TADOStoredProc;

GroupsStoredProc: TADOStoredProc;

SurveysStoredProc: TADOStoredProc;

SurveysDataSource: TDataSource;

ResultsStoredProc: TADOStoredProc;

ResultsDataSource: TDataSource;

private

{ Private declarations }

public

{ Public declarations }

end;

Клієнт 2

FmMain. Це модуль який відповідає за інтерфейс клієнта 2.

Класи TMain, TPassDlg, TTestProc, що він в себе включає, є класами інтерфейсу тобто класами-формами, які містять методи обробки стандартних подій та методи необхідні для функціонування інтерфейсу.

{ -------- Стандартні бліотеки використані в даному модулі -------- }

uses

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

Dialogs, ComCtrls, StdCtrls, Buttons, ToolWin, Menus, ActnList, ImgList,

ExtCtrls, ADODB;

{ -------- Підключення модулі розробленого модуля DataModule -------- }

uses

DataModule;

  • TMain– клас-форма головного мено клієнта.

Форма:

Код:

type

TMain = class(TForm)

ActionList1: TActionList;

Help: TAction;

ImageList1: TImageList;

SignIn: TAction;

SignOut: TAction;

Exit: TAction;

Splitter1: TSplitter;

Settings: TAction;

PopupMenu1: TPopupMenu;

DataBase1: TMenuItem;

DataBase: TAction;

PageControl1: TPageControl;

TabSheet1: TTabSheet;

TabSheet2: TTabSheet;

TabSheet3: TTabSheet;

StatusBar1: TStatusBar;

Frame11: TFrame1;

Splitter2: TSplitter;

CoolBar1: TCoolBar;

ToolBar1: TToolBar;

BitBtn4: TBitBtn;

BitBtn3: TBitBtn;

BitBtn2: TBitBtn;

ToolButton1: TToolButton;

BitBtn5: TBitBtn;

ToolButton2: TToolButton;

BitBtn1: TBitBtn;

procedure HelpExecute(Sender: TObject);

procedure ExitExecute(Sender: TObject);

procedure DataBaseExecute(Sender: TObject);

procedure SignInExecute(Sender: TObject);

procedure SignOutExecute(Sender: TObject);

procedure AboutExecute(Sender: TObject);

procedure SettingsExecute(Sender: TObject);

procedure ToolBar1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

procedure FormShow(Sender: TObject);

end;

{ глобальні змінні }

var

P: boolean;

UsersDAL1: UsersDAL;

GroupsDAL1: GroupsDAL;

{метод що відображає вікно допомоги}

procedure TMain.AboutExecute(Sender: TObject);

begin

ShowMessage('Developed by Mo3oK :)');

end;

{метод що відображає діалогове вікно налаштевання зв’язку з базою}

procedure TMain.DataBaseExecute(Sender: TObject);

begin

DataModule1.Connection.Connected := false;

DataModule1.UsersStoredProc.Active := false;

DataModule1.GroupsStoredProc.Active := false;

DataModule1.Connection.ConnectionString := ADODB.PromptDataSource(Self.Handle,'');

DataModule1.GroupsStoredProc.Active := true;

DataModule1.UsersStoredProc.Active := true;

DataModule1.Connection.Connected := true;

end;

{ метод що відображає діалогове вікно закриття клієнта }

procedure TMain.ExitExecute(Sender: TObject);

begin

OKRightDlg.Label1.Caption := 'Do you realy want to exit?';

OKRightDlg.ShowModal;

if OKRightDlg.rez = true then

Close

else

OKRightDlg.Close;

end;

procedure TMain.FormShow(Sender: TObject);

begin

ShowMessage(inttostr(PasswordDlg.ShowModal));

UsersDAL1 := UsersDAL.Create;

GroupsDAL1 := GroupsDAL.Create;

end;

procedure TMain.HelpExecute(Sender: TObject);

begin

ShowMessage('Developed by Mo3oK :)');

end;

procedure TMain.SettingsExecute(Sender: TObject);

begin

if P = false then begin

PopupMenu1.Popup(Form1.Left + 186, Form1.Top + 84);

P := true

end else

P := false;

end;

{метод що проводить логування}

procedure TMain.SignInExecute(Sender: TObject);

begin

ShowMessage('Sing In!');

end;

{метод що проводить вихід з системи}

procedure TMain.SignOutExecute(Sender: TObject);

begin

ShowMessage('Sign Out!');

end;

procedure TMain.ToolBar1MouseDown(Sender: TObject; Button: TMouseButton;

Shift: TShiftState; X, Y: Integer);

begin

P := false;

end;

TPassDlg – клас-форма для логування.

Форма:

Код:

type

TPasswordDlg = class(TForm)

Panel1: TPanel;

GroupBox1: TGroupBox;

Label1: TLabel;

Edit1: TEdit;

Label2: TLabel;

CancelBtn: TButton;

OKBtn: TButton;

Edit2: TEdit;

procedure OKBtnClick(Sender: TObject);

function ShowModal: integer; override;

private

{ Private declarations }

public

{ Public declarations }

end;

{глобальні змінні}

var

PasswordDlg: TPasswordDlg, Role_Id: integer;

{метод обробки події натиснення кнопки Enter}

procedure TPasswordDlg.OKBtnClick(Sender: TObject);

var

UsersDAL1: UsersDAL;

begin

UsersDAL1 := UsersDAL.Create;

Role_Id := UsersDAL1.GetRoleId(Edit1.Text, Edit2.Text);

UsersDAL1.Destroy;

end;

function TPasswordDlg.ShowModal: integer;

begin

inherited ShowModal;

ShowModal := Role_Id;

end;

  • TTestProc– клас, що включає в себе компоненти необхідні для зв’язку та роботи з базою.

Форма:

Код:

type

TForm2 = class(TForm)

Shape1: TShape;

Shape2: TShape;

Image1: TImage;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Image2: TImage;

RadioGroup1: TRadioGroup;

SpeedButton1: TSpeedButton;

SpeedButton2: TSpeedButton;

private

{ Private declarations }

public

{ Public declarations }

end;

SurveyDAL: Цей модуль забезпечує проходження тестувань та опитувань думки. Він включає в себе наступні класи: TSurveyDAL, TSurvey, TSurveyAnswers.

{ -------- Стандартні бліотеки використані в даному модулі -------- }

uses

Windows, Messages, SysUtils, Variants, Classes , Controls;

{ -------- Підключення модулі розробленого модуля DataModule -------- }

uses

DataModule;

  • TSurveyDAL– клас, який містить методи призначені для завантаження та відтворення списків тестувань та опитувань, такі як:LoadSurvey(завантаження тестування / опитування), SaveSurveyAnswers(збереження відповідей на тестування / опитування), GetSurveysByUserId(отримати список тестувань / опитувань доступних конкретному користувачу), GetSurveysByGroupId(отримати список тестувань / опитувань доступних конкретній групі),

TSurveyDAL = class (TObject)

function LoadSurvey(Survey_Id: integer):TSurvey;

procedure SaveSurveyAnswer(SurveyAnswer: TSurveyAnswer);

function GetSurveysByUserId(User_Id: integer):TStringList;

function GetSurveysByGroupId(Group_Id: integer):TStringList;

end;

{--------------------------------------------------------------------------------------------------------}

{ метод для завантаження тестування / опитування з бази }

function TSurveyDAL.LoadSurvey(Survey_Id: integer):TSurvey;

begin

{ some code }

end;

{ метод для забереження відповідей тестування / опитування в базу }

procedure TSurveyDAL.SaveSurveyAnswer(SurveyAnswer: TSurveyAnswer);

begin

{ some code }

end;

{ метод для отримання списку тестувань / опитувань доступних конкретному користувачу }

function TSurveyDAL.GetSurveysByUserId(User_Id: integer):TStringList;

begin

{ some code }

end;

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

function TSurveyDAL.GetSurveysByGroupId(Group_Id: integer):TStringList;

begin

{ some code }

end;

  • TSurvey – клас, який містить методи для створення тестувань та опитувань та їх збереження у вигляді об’єкта (екземпляра даного класу), такі як: CreateSurvey (створення тестування / опитування), AddQuestion (додати запинання до тестування / опитування), GetQuestions (відтворити запитання тестування / опитування), DeleteQuestion (видалити запинання з тестування / опитування).

TSurvey = class (TObject)

procedure CreateSurvey;

procedure AddQuestion(Questions: TStringList);

function GetQuestions: TStringList;

procedure DeleteQuestion(Question_Id: integer);

end;

{--------------------------------------------------------------------------------------------------------}

{ метод для створення тестування / опитування }

procedure TSurvey .CreateSurvey;

begin

{ some code }

end;

{ метод для додавання запинання до тестування / опитування }

procedure TSurvey .AddQuestion(Questions: TStringList);

begin

{ some code }

end;

{ метод для відтворення запинань тестування / опитування }

function TSurvey .GetQuestions: TStringList;

begin

{ some code }

end;

{ метод для видалення запинання з тестування / опитування }

procedure TSurvey .DeleteQuestion(Question_Id: integer);

begin

{ some code }

end;

  • TSurveyAnswers– клас, який містить методи для збереження відповідей на питання тестувань та опитувань у вигляді об’єкта (екземпляра даного класу), такі як:CreateSurveyAnswers(створити об’єкт відповідей на тестування / опитування),AddAnswer(додати відповіді на запинання до об’єкта відповідей на тестування / опитування).

TSurveyAnswr = class (TObject)

procedure CreateSurveyAnswer;

procedure AddAnswers(Answers: TStringList);

end;

{--------------------------------------------------------------------------------------------------------}

{ метод для створення об’єкта відповідей на тестування / опитування }

procedure TSurvey .CreateSurveyAnswers;

begin

{ some code }

end;

{ метод для додавання відповіді на запинання до об’єкта відповідей на тестування / опитування }

procedure AddAnswers(Answers: TStringList);

begin

{ some code }

end;

DataModule.Цей модуль призначений для організації зв’язку з базою даних, включає в себе клас TDataModule.

{ -------- Стандартні бліотеки використані в даному модулі -------- }

uses

SysUtils, Classes, DB, ADODB;

  • TDataModule– клас, що включє в себе набір стандартних компонент (TADOConnection, TdataSource та TADOStoredProc) необхідних для взаємодії з базою даних.

Форма:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]