Смекни!
smekni.com

Создание базы данных Кадры предприятия (стр. 2 из 2)

FROM Brigada

[ФИО и адрес начальников]

SELECT FIO_nach_ceha, Adres

FROM Ceh

[ФИО работников, выходящих в этом году на пенсию]

SELECT FIO_rabotnika, Primechanie

FROM Rabotnik WHERE Primechanie='на пенсию'

[ФИО работников, уходящих в текущем месяце в отпуск]

SELECT FIO_rabotnika, Primechanie

FROM Rabotnik WHERE Primechanie='в отпуске'

[Список работающих пенсионеров]

SELECT FIO_rabotnika, Primechanie

FROM Rabotnik WHERE Primechanie='пенсионер'

[Список работников, находящихся в декретном отпуске]

SELECT FIO_rabotnika, Primechanie

FROM Rabotnik WHERE Primechanie='декрет'


5. Интерфейс программы

Интерфейс программы состоит из одного окна, содержащего две основные вкладки При запуске программы открывается окно с активной вкладкой «Таблицы» (рисунок 3).

Здесь переключатели с названиями всех таблиц БД «Кадры предприятия»

Рисунок 3 - Окно программы

При нажатии на переключатель «Цех», «Бригада» или «Работник» появляется таблица, содержащая данные о цехе, бригаде или работниках (рисунок 4).

В каждой из таблиц можно удалять, добавлять записи, корректировать их, также можно свободно перемещаться по записям (переход в начало-конец, следующая-предыдущая запись).

Рисунок 4 –Окно программы


Аналогично, нажав на вкладку «Запросы», выводится список всех запросов (рисунок 5).

Рисунок 5 – Окно программы.

Рисунок 6 – Результат запроса: «Список работников, поступивших на предприятие в течение последнего месяца»

Рисунок 7 - Результат запроса: «Состав бригады по стажу работы»


Рисунок 8 - Результат запроса: «ФИО и адрес бригадиров»

Рисунок 9. Результат запроса: «ФИО и адрес начальников цеха»

Рисунок 10. Результат запроса: «ФИО рабо тников по примечанию»


Рисунок 11 – Отчет по запросу: «ФИО и адрес бригадиров»

Заключение

В заключении необходимо отметить, что несмотря на кажущуюся простоту задачи, в ходе выполнения проекта встречались затруднения, которые нужно было обходить стороной, немного изменяя таким образом алгоритм ее решения. Тем не менее в нем были реализованы такие задачи как:

- построение удобного пользовательского интерфейса;

-справки;

-ввод, корректировка,обработка данных;

-формирование отчетов и запросов с возможностью вывода нужной информации.


Список использованных источников

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.