1. Терлецкая А.М. – лекции.
2. Т.Карпова – Базы данных: модели, разработка, реализация. Уч. пособие – СПб: Питер,2001.
3. Бойко В.В., Савинков В.М. Проектирование баз данных информационных систем. – М.: Финансы и статистика, 1989. – 351 с.
Приложение А. Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, DB, ADODB, ComCtrls,
QRCtrls, QuickRpt, Menus;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
ADOTable1: TADOTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
ADOTable2: TADOTable;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
ADOTable3: TADOTable;
DataSource3: TDataSource;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
Button1: TButton;
ADOQuery1: TADOQuery;
DataSource4: TDataSource;
DBGrid4: TDBGrid;
ComboBox1: TComboBox;
Label1: TLabel;
ComboBox2: TComboBox;
Label2: TLabel;
Button2: TButton;
QuickRep1: TQuickRep;
TitleBand1: TQRBand;
QRLabel1: TQRLabel;
ColumnHeaderBand1: TQRBand;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
DetailBand1: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
procedure RadioGroup1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
// Выбор таблицы (Цех, Бригада или Работник)
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
if RadioGroup1.ItemIndex=0 then // Цех
begin
dbgrid1.Visible:=true;
dbNavigator1.Visible:=true;
dbgrid2.Visible:=false;
dbNavigator2.Visible:=false;
dbgrid3.Visible:=false;
dbNavigator3.Visible:=false;
end;
if RadioGroup1.ItemIndex=1 then // Бригада
begin
dbgrid2.Visible:=true;
dbNavigator2.Visible:=true;
dbgrid1.Visible:=false;
dbNavigator1.Visible:=false;
dbgrid3.Visible:=false;
dbNavigator3.Visible:=false;
end;
if RadioGroup1.ItemIndex=2 then // Работник
begin
dbgrid3.Visible:=true;
dbNavigator3.Visible:=true;
dbgrid2.Visible:=false;
dbNavigator2.Visible:=false;
dbgrid1.Visible:=false;
dbNavigator1.Visible:=false;
end;
end;
// Кнопка Выполнить запрос
procedure TForm1.Button1Click(Sender: TObject);
begin
DbGrid4.Visible:=true;
case RadioGroup2.ItemIndex of
0: // Запрос 'Список работников, поступивших на //предприятие в течение последнего месяца'
begin
QRLabel1.Caption:='Список работников, поступивших на предприятие в течение последнего месяца';
QRLabel2.Caption:='ФИО работника';
QRLabel3.Caption:='Должность';
ADOQuery1.SQL.Text:='SELECT FIO_rabotnika,Doljnost, Data_postupleniya FROM Rabotnik WHERE ((Data_postupleniya) >(''12'+'-'+'01'+'-'+'2007''))';
ADOQuery1.Active:=true;
QRDBText1.DataField:='FIO_rabotnika';
QRDBText2.DataField:='Doljnost';
button2.Enabled:=true;
end;
1: // Запрос 'Состав бригады по стажу работы'
begin
QRLabel1.Caption:='Состав '+Combobox2.Text+' по стажу работы';
QRLabel2.Caption:='ФИО работника';
QRLabel3.Caption:='Стаж';
ADOQuery1.SQL.Text:='SELECT FIO_rabotnika, Naimenovanie_brigadi, Staj FROM Rabotnik WHERE (Naimenovanie_brigadi='''+Combobox2.Text+''')';
ADOQuery1.Active:=true;
QRDBText1.DataField:='FIO_rabotnika';
QRDBText2.DataField:='Staj';
button2.Enabled:=true;
end;
2: // Запрос 'ФИО и адрес бригадиров'
begin
QRLabel1.Caption:='ФИО и адрес бригадиров';
QRLabel2.Caption:='ФИО бригадира';
QRLabel3.Caption:='Адрес';
ADOQuery1.SQL.Text:='SELECT FIO_brigadira, Adres FROM Brigada';
ADOQuery1.Active:=true;
QRDBText1.DataField:='FIO_brigadira';
QRDBText2.DataField:='Adres';
button2.Enabled:=true;
end;
3: // Запрос 'ФИО и адрес начальников'
begin
QRLabel1.Caption:='ФИО и адрес начальников';
QRLabel2.Caption:='ФИО начальника цеха';
QRLabel3.Caption:='Адрес';
ADOQuery1.SQL.Text:='SELECT FIO_nach_ceha, Adres FROM Ceh';
ADOQuery1.Active:=true;
QRDBText1.DataField:='FIO_nach_ceha';
QRDBText2.DataField:='Adres';
button2.Enabled:=true;
end;
4: // Запрос
begin
QRLabel1.Caption:='ФИО работников по запросу';
QRLabel2.Caption:='ФИО работника';
QRLabel3.Caption:='Примечание';
ADOQuery1.SQL.Text:='SELECT FIO_rabotnika, Primechanie FROM Rabotnik WHERE Primechanie='''+Combobox1.Text+'''';
ADOQuery1.Active:=true;
QRDBText1.DataField:='FIO_rabotnika';
QRDBText2.DataField:='Primechanie';
button2.Enabled:=true;
end;
end;
end;
procedure TForm1.RadioGroup2Click(Sender: TObject);
begin
Case Radiogroup2.ItemIndex of
0:
begin
button2.Enabled:=false;
Label1.Visible:=false;
Combobox1.Visible:=false;
Label2.Visible:=false;
Combobox2.Visible:=false;
end;
1:
begin
button2.Enabled:=false;
Label1.Visible:=false;
Combobox1.Visible:=false;
Label2.Visible:=true;
Combobox2.Visible:=true;
end;
2:
begin
button2.Enabled:=false;
Label1.Visible:=false;
Combobox1.Visible:=false;
Label2.Visible:=false;
Combobox2.Visible:=false;
end;
4:
begin
button2.Enabled:=false;
Label1.Visible:=true;
Combobox1.Visible:=true;
Label2.Visible:=false;
Combobox2.Visible:=false;
end;
3:
begin
button2.Enabled:=false;
Label1.Visible:=false;
Combobox1.Visible:=false;
Label2.Visible:=false;
Combobox2.Visible:=false;
end;
end;
end;
// Кнопка «Сформировать отчет»
procedure TForm1.Button2Click(Sender: TObject);
begin
quickrep1.Preview;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
button2.Enabled:=false;
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
button2.Enabled:=false;
end;
end.