Смекни!
smekni.com

Информационная система Data-центр (стр. 4 из 4)

FRMAdd.DBLookupComboBoxM3.Visible:=false;

FRMAdd.DBLookupComboBoxM4.Visible:=false;

FRMAdd.DBEditm1.Visible:=false;

FRMAdd.DBEditm2.Visible:=false;

FRMAdd.Label1.Caption:=('ФИО Клиента');

FRMAdd.Label2.Caption:=('Название машины');

FRMAdd.Label3.Caption:=('Дата заключения');

FRMAdd.Label4.Caption:=('Дата окончания');

FRMAdd.Label5.Caption:=('');

FRMAdd.Label6.Caption:=('');

end;

procedure set_add_form_mashin;

begin

FRMAdd.DBLookupComboBoxD1.Visible:=false;

FRMAdd.DBLookupComboBoxD2.Visible:=false;

FRMAdd.DBEditD1.Visible:=false;

FRMAdd.DBEditD2.Visible:=false;

FRMAdd.DBLookupComboBoxM1.Visible:=true;

FRMAdd.DBLookupComboBoxM2.Visible:=true;

FRMAdd.DBLookupComboBoxM3.Visible:=true;

FRMAdd.DBLookupComboBoxM4.Visible:=true;

FRMAdd.DBEditm1.Visible:=true;

FRMAdd.DBEditm2.Visible:=true;

FRMAdd.Label1.Caption:=('Процессор');

FRMAdd.Label2.Caption:=('Жесткий диск');

FRMAdd.Label3.Caption:=('Память');

FRMAdd.Label4.Caption:=('Скорость подключения');

FRMAdd.Label5.Caption:=('Название');

FRMAdd.Label6.Caption:=('Цена');

end;

procedure TFRMTable.Button1Click(Sender: TObject);

begin

if DBGrid1.DataSource=DM.DS_DOGOVOR then begin

DM.T_DOGOVOR.Append;

set_add_form_dogovor;

FRMAdd.Caption:='Добавить договор';

end else

if DBGrid1.DataSource=DM.DS_MASHIN then begin

DM.T_MASHIN.Append;

set_add_form_mashin;

FRMAdd.Caption:='Добавить конфигурацию';

end;

FRMAdd.show;

end;

procedure TFRMTable.Button2Click(Sender: TObject);

begin

if DBGrid1.DataSource=DM.DS_DOGOVOR then begin

DM.T_DOGOVOR.Edit;

set_add_form_dogovor;

FRMAdd.Caption:='Редактировать договор';

end else

if DBGrid1.DataSource=DM.DS_MASHIN then begin

DM.T_MASHIN.Edit;

set_add_form_mashin;

FRMAdd.Caption:='Редактировать конфигурацию';

end;

FRMAdd.show;

end;

procedure TFRMTable.Button3Click(Sender: TObject);

begin

if DBGrid1.DataSource=DM.DS_DOGOVOR then begin

DM.T_DOGOVOR.Delete;

end else

if DBGrid1.DataSource=DM.DS_MASHIN then begin

DM.T_MASHIN.Delete;

end;

end;

procedure TFRMTable.Button4Click(Sender: TObject);

var s:string;

begin

if DBGrid1.DataSource=DM.DSQ_DOGOVOR then begin

DM.QP_Dogovor.Close;

s:='SELECT NAIM_KLIENT, NAIM_MASH, CENA, Date_zakl, Date_okonch, ';

s:=s+' Stoimost FROM PR_DOGOVOR ';

s:=s+'WHERE NAIM_MASH =('''+edit1.Text+''')';

DM.QP_Dogovor.SQL.Clear;

DM.QP_Dogovor.SQL.Add(s);

try

dm.QP_Dogovor.Open;

except

showmessage('ошибка');

end;

end else

if DBGrid1.DataSource=DM.DSP_Poisk then begin

dm.P_Poisk.close;

dm.P_Poisk.Parameters.ParamByName('@p').Value:=Edit1.Text;

dm.P_Poisk.Open;

end;

end;

end.

unit UnitAdd;

interface

uses

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

Dialogs, StdCtrls, DBCtrls, Mask;

type

TFRMAdd = class(TForm)

Button1: TButton;

DBEditD1: TDBEdit;

DBEditD2: TDBEdit;

DBLookupComboBoxD1: TDBLookupComboBox;

DBLookupComboBoxD2: TDBLookupComboBox;

Button2: TButton;

DBLookupComboBoxM1: TDBLookupComboBox;

DBLookupComboBoxM2: TDBLookupComboBox;

DBLookupComboBoxM3: TDBLookupComboBox;

DBLookupComboBoxM4: TDBLookupComboBox;

DBEditM1: TDBEdit;

DBEditM2: TDBEdit;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

FRMAdd: TFRMAdd;

implementation

uses UnitDM, UnitTable;

{$R *.dfm}

procedure TFRMAdd.Button1Click(Sender: TObject);

begin

if FRMTable.DBGrid1.DataSource=DM.DS_DOGOVOR then begin

DM.T_Dogovor.Fields[5].AsFloat:=round(DM.T_Dogovor.Fields[4].AsDateTime-DM.T_Dogovor.Fields[3].AsDateTime)*(round(DM.T_Mashin.Fields[6].AsInteger/30));

DM.T_DOGOVOR.Post;

DM.T_DOGOVOR.Active:=false;

DM.T_DOGOVOR.Active:=true;

DM.T_DOGOVOR.Append;

end

else if FRMTable.DBGrid1.DataSource=DM.DS_MASHIN then begin

DM.T_MASHIN.Post;

DM.T_MASHIN.Active:=false;

DM.T_MASHIN.Active:=true;

DM.T_MASHIN.Append;

end;

end;

procedure TFRMAdd.Button2Click(Sender: TObject);

begin

close;

end;

end.

3.2 Руководство пользователя

Главная форма (рис. 3.1) позволяет получить доступ ко всем функциям программы, путем использования главного меню. Так же на ней отображен весь список договоров.

Рисунок 3.1 Главная форма

С помощью главного меню открывается редактор таблиц, путем использования кнопок «Добавить», «Редактировать», «Удалить» можно внести изменения в состав таблиц (рис. 3.2, 3.3). При нажатии кнопки «Ок» на форме добавления/редактирования записи автоматически посчитается сумма договора на основании длительности договора и стоимости аренды данной конфигурации.


Рисунок 3.2 Таблица «Договора» и форма для внесения изменений.

Рисунок 3.3 Таблица «Прайс-лист» и форма для внесения изменений.

При использовании второго пункта меню «Справочники» Можно внести изменения в имеющиеся в базе данных справочники (рис. 3.4 – 3.8)


Рисунок 3.4 Справочник «Клиенты».

Рисунок 3.5 Справочник «Процессоры».

Рисунок 3.6 Справочник «Жесткие диски».


Рисунок 3.7 Справочник «Оперативная память».

Рисунок 3.8 Справочник «Скорость».

Для удобства просмотра хранящейся в базе данных информации сделаны представления, которые можно увидеть с помощью пункта меню «Представления» (рис. 3.9, 3.10)

Рисунок 3.9 Представление Договоров.


Рисунок 3.10 Представление Прайс-листа.

Для получения каких-либо сведений из базы данных используются запросы. На рис 3.11 показан результат запроса на выборку всех арендаторов заданной конфигурации.

Рисунок 3.11 Запрос.

Для удобства просмотра и возможности вывода информации на печать была использована программа RaveReports с помощью которой можно создавать отчеты. На рис. 3.12 показан внешний вид получаемого отчета.


Рисунок 3.12 Вид отчета.

Заключение

В результате работы была создана реляционная база данных в Microsoft SQL Server, содержащая 7 таблиц, 5 из которых справочники. Клиентское приложение написанное с помощью CodeGear Delphi позволяющее просматривать, изменять и искать нужную информацию. Были рассмотрены различные способы внесения и получения данных из базы данных. Построен отчет для вывода на печать с помощью программы RaveReports. Изучены свойства и методы компонентов CodeGear Delphi для работы с базами данных.