Курсовая работа: Создание базы данных для организации
При редактировании таблицы Фильмы пользователю
нужно учитывать, что невозможно удалить данные о фильме, если его количество на
складе больше 0.
При выборе пункта меню «Счёт» или соответствующей
вкладки главной формы пользователь может работать со счетами клиентов. При
появлении окна «Новое..» -> «Счёт» пользователь должен ввести штрих код
фильма и выбрать фамилию клиента, остальные поля заполняются автоматически
(поля - стоимость и дата и возврат). Дата выставляется текущая, а поле
стоимость изначально берется из таблицы MOVIE а потом высчитывается с учетом
скидок клиенту, возврату автоматически присваивается “N”.
Когда клиент возвращает фильм, то следует
поставить в этом поле “Y” в ручную или через сканер. При этом количество фильмов
в базе увеличивается на 1.
На вкладке Счета также есть кнопки «Режим master
detail» и «Cведенная таблица». При нажатии на кнопку «Сведенная таблица».
Появляется окно с этой таблицей, которая является аналогом таблицы «Счета».
Такая таблица может только отображать данные, редактировать их невозможно.
Удобство её заключено в том, что листаться она будет заметно быстрее. Листание
полного экрана таблицы состоящей из тысячи записей происходит в доли секунды, в
то время как таблица «Счета» листается с заметными задержками.
Кнопкой «Режим master detail» можно вызвать окно,
где пользователь может одновременно просматривать и редактировать данные о
клиенте и его счетах.
Выбрав меню «Поиск» можно задействовать поиск по
таблицам. Поиск по строковому полю позволяет искать по части слова и показывает
все формы этого слова.
Последняя вкладка «SQL» (Рис. 5) позволяет
продвинутым пользователям выполнять различные действия с базой данных, такие
как поиск, выборка данный и т.д. Менеджеру будет удобнее просматривать отчёты
используя привычный Excel. Для удобства менеджера в Excel есть отчёты по
заказам за период, отчёт по персоналу, поиск лучшего клиента месяца и т.д. При
этом не требуется устанавливать на машину клиентское приложение.
Список литературы
1. Фаронов В.В. Delphi 5.
Руководство программиста. Нолидж. 2001.
2. Фаронов ВВ. Delphi 2005
Разработка приложений для баз данных и интернета. — СПб: Питер, 2006.
3. Хансен Г., Хансен Д. Базы
данных. Разработка и управление. — М., Бином. 2000.
Приложение
Листинг программы
Unit2:
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB,
IBCustomDataSet, Grids, DBGrids, StdCtrls, ExtCtrls, DBCtrls,
ComCtrls,
IBTable, XPMan, Menus, IBQuery;
type
TForm2 =
class(TForm)
DBGrid1:
TDBGrid;
DataSource1:
TDataSource;
Button1:
TButton;
PageControl1:
TPageControl;
TabSheet1:
TTabSheet;
TabSheet2:
TTabSheet;
TabSheet3:
TTabSheet;
DBNavigator1:
TDBNavigator;
DBGrid2:
TDBGrid;
DataSource2:
TDataSource;
Button2:
TButton;
DBNavigator2:
TDBNavigator;
DBGrid3:
TDBGrid;
Panel1:
TPanel;
DataSource3:
TDataSource;
Button3:
TButton;
TabSheet4:
TTabSheet;
XPManifest1:
TXPManifest;
Button4:
TButton;
MainMenu1:
TMainMenu;
N1:
TMenuItem;
N2:
TMenuItem;
N4:
TMenuItem;
N5:
TMenuItem;
N6:
TMenuItem;
N3:
TMenuItem;
N7:
TMenuItem;
N8:
TMenuItem;
N9:
TMenuItem;
About1:
TMenuItem;
N10:
TMenuItem;
N11:
TMenuItem;
N12:
TMenuItem;
N13:
TMenuItem;
N14:
TMenuItem;
DBGrid4:
TDBGrid;
Edit1: TEdit;
IBQuery1:
TIBQuery;
DataSource4:
TDataSource;
procedure
Button4Click(Sender: TObject);
procedure
N12Click(Sender: TObject);
procedure
N6Click(Sender: TObject);
procedure
N4Click(Sender: TObject);
procedure
N3Click(Sender: TObject);
procedure
Button3Click(Sender: TObject);
procedure Button2Click(Sender:
TObject);
procedure
Button1Click(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form2:
TForm2;
implementation
uses Unit3,
Unit1, Unit4, Unit5, Unit6;
{$R *.dfm}
procedure
TForm2.Button1Click(Sender: TObject);
begin
Form1.Show;
end;
procedure
TForm2.Button2Click(Sender: TObject);
begin
try
DataSource1.DataSet.Delete;
except
ShowMessage('Нельзя
удалить данные о клиенте если в таблице База есть связанные записи!');
end;
end;
procedure
TForm2.Button3Click(Sender: TObject);
begin
Form4.Show;
end;
procedure
TForm2.N3Click(Sender: TObject);
begin
Form2.Close;
end;
procedure
TForm2.N4Click(Sender: TObject);
begin
Form5.Show;
Form5.Button1.Enabled:=true;
Form5.Panel2.Visible:=false;
Form5.Button3.Enabled:=false;
Form5.Button4.Enabled:=false;
end;
procedure
TForm2.N6Click(Sender: TObject);
begin
Form6.Show;
end;
procedure
TForm2.N12Click(Sender: TObject);
begin
Form5.Show;
Form5.Button1.Enabled:=false;
DataSource1.DataSet.Cancel;
DataSource1.DataSet.First;
Form5.Panel2.Visible:=true;
Form5.Button3.Enabled:=true;
Form5.Button4.Enabled:=true;
end;
procedure
TForm2.Button4Click(Sender: TObject);
begin
if Edit1.Text
<>'' then
begin
IbQuery1.SQL.Text:=Edit1.Text;
Form2.DataSource4.DataSet.Active:=true;
end
else
ShowMessage('Пустой запрос!');
end;
end.
Unit4:
unit Unit4;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
StdCtrls, DB, Grids, DBGrids, IBCustomDataSet;
type
TForm4 =
class(TForm)
IBDataSet1:
TIBDataSet;
DBGrid1:
TDBGrid;
DBGrid2:
TDBGrid;
DataSource1:
TDataSource;
DataSource2:
TDataSource;
CheckBox1:
TCheckBox;
procedure
CheckBox1Click(Sender: TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form4:
TForm4;
implementation
uses Unit2,
Unit3;
{$R *.dfm}
procedure
TForm4.CheckBox1Click(Sender: TObject);
begin
if
CheckBox1.State = cbchecked then
begin
DataModule3.IBDataSet1.Active:=False;
Form4.IBDataSet1.SelectSQL.SetText('SELECT
* FROM DEAL WHERE CL_ID =:ID_C');
Form4.IBDataSet1.Open;
DataModule3.IBDataSet1.Open;
end else
begin
Form4.IBDataSet1.Close;
DataModule3.IBDataSet1.Close;
Form4.IBDataSet1.SelectSQL.SetText('SELECT
* FROM DEAL');
Form4.IBDataSet1.Active:=True;
DataModule3.IBDataSet1.Active:=True;
end;
end;
end.
Unit5:
unit Unit5;
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,
ExtCtrls, StdCtrls, DBCtrls, Mask, DB, IBCustomDataSet;
type
TForm5 =
class(TForm)
DBEdit1:
TDBEdit;
Label1:
TLabel;
Label2:
TLabel;
Button1:
TButton;
Button2:
TButton;
Panel1:
TPanel;
DBMemo1:
TDBMemo;
DataSource1:
TDataSource;
Panel2:
TPanel;
Button3:
TButton;
Button4:
TButton;
Button5:
TButton;
Button6:
TButton;
procedure
Button6Click(Sender: TObject);
procedure
Button5Click(Sender: TObject);
procedure
Button4Click(Sender: TObject);
procedure
FormClose(Sender: TObject; var Action: TCloseAction);
procedure
FormShow(Sender: TObject);
procedure
Button3Click(Sender: TObject);
procedure
Button2Click(Sender: TObject);
procedure Button1Click(Sender:
TObject);
private
{ Private
declarations }
public
{ Public
declarations }
end;
var
Form5:
TForm5;
implementation
uses Unit2,
Unit4, Unit1, Unit3;
{$R *.dfm}
procedure
TForm5.Button1Click(Sender: TObject);
var
name,p:string;
begin
name:=DbEdit1.Text;
p:=
DbMemo1.Text;
try
DataSource1.DataSet.FieldByName('FIO').AsString:=name;
DataSource1.DataSet.FieldByName('PASPORT').AsString:=p;
DataSource1.DataSet.Post;
DataSource1.DataSet.Append;
except
ShowMessage('Поле
ФИО обязательно для заполнения');
end;
end;
procedure
TForm5.Button2Click(Sender: TObject);
begin
DbEdit1.Clear;
DbMemo1.Clear;
end;
procedure
TForm5.Button3Click(Sender: TObject);
begin
try
Form2.DataSource1.DataSet.Delete;
except
ShowMessage('Нельзя
удалить данные о клиенте если в таблице База есть связанные записи!');
end;
end;
procedure
TForm5.FormShow(Sender: TObject);
begin
DataSource1.DataSet.Append;
end;
procedure
TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DataSource1.DataSet.Cancel;
end;
procedure
TForm5.Button4Click(Sender: TObject);
begin
Form2.DataSource1.DataSet.Post;
end;
procedure
TForm5.Button5Click(Sender: TObject);
begin
Form2.DataSource1.DataSet.Prior;
end;
procedure
TForm5.Button6Click(Sender: TObject);
begin
Form2.DataSource1.DataSet.Next;
end;
end.
Unit6:
interface
uses
Windows,
Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Страницы: 1, 2, 3, 4, 5, 6, 7, 8 |