Автор: Пользователь скрыл имя, 14 Февраля 2013 в 18:48, курсовая работа
Курстық жобаны әзірлеуде пайдаланылатын ДҚБЖ Microsoft SQL Server 2008 R2 ең көп таралған және ДҚБЖ мұмкіншіліктері зор, клиент-сервер технологиясымен жұмыс істей реляциялық деректер қоры болып табылады.
Осы курстық жобаның мақсаты болып тапсырманың жеке варианты бойынша (вариант №4 – ішкі жүйе «Жұмысшылар») деректер қорын және клиенттік қосымшаны құру болып табылады.
Кіріспе
4
1 Тапсырма
5
2 Деректер қоры құрылымын өңдеу
6
2.1 Пәндік аумақтың сипаттамасы
6
2.2 Ақпараттық ағындарды талдау
7
2.3 Инфологиялық модельді құру
8
2.3.1 Мәндерді нормализациялау процедурасы
14
2.4 Даталогиялық модельдің құрылуы
14
2.5 Мәліметтер базасын іске асыру үшін техникалық-бағдарламалық құралдарды және клиент қосымшасын таңдау
27
3 «Жұмысшылар» мәліметтер базасын құру
28
3.1 Мәліметтер базасының құрылымының сипаттамасы
28
3.2 Мәліметтер базасының кесте қасиеттерінің сипаттамасы
28
3.3Мәліметтер базасының кестелерінің арасындағы қатынастың және мәліметтің бүтінді шарттарының сипаттамасы
34
3.4 Сақталатын процедура сипаттамасы
37
4 Ақпараттық жүйенiң қолданбалы интерфейсiнiң жасалуы
40
4.1 Қолданушы мәзірі
40
4.2 Мәліметтер базасына мәліметтерді өзгерту, қосу, өшіру, көру үшін формалар
41
4.3 Мәліметтер базасының сұраныстарының дайындалуы
44
4.4 Есептеу негіздерінің құрылуы
46
4.5 Сақталатын процедурамен жұмыс
48
4.6 Анықтамалық жүйе
49
Қорытынды
50
Қолданылған әдебиеттердің тізімі
51
Қосымша А
52
Қосымша Б
74
Edit1.Clear;
Exit;
end;
Form2.SQL ('SELECT kod_podrazdeleniya,
Form2.InsertQuery('INSERT INTO Podrazdeleniya(kod_
+ ' VALUES ('''+Edit1.Text+''','''+Edit2.
MessageBox(Form19.Handle,'
Form19.Close;
Edit1.Clear;
Edit2.Clear;
end;
end.
Бұйрықтар кестесіне мәлімет қосу:
unit add10;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, StdCtrls, Buttons;
type
TForm20 = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Edit2: TEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
ComboBox1: TComboBox;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
ComboBox2: TComboBox;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form20: TForm20;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm20.BitBtn1Click(Sender: TObject);
begin
if Edit1.Text='' then
begin
MessageBox(Form20.Handle,'Вы не ввели № приказа!','Кадры',mb_Ok+mb_
Edit1.SetFocus;
exit;
end;
if Edit2.Text='' then
begin
MessageBox(Form20.Handle,'Вы
не ввели дату!','Кадры',mb_Ok+
Edit2.SetFocus;
exit;
end;
if Edit1.Text='0' then
begin
MessageBox(Form20.Handle,'№
приказа должен быть больше
целым положитительным числом!'
Edit1.SetFocus;
exit;
end;
ADODataSet1.Active:=False;
ADODataSet1.CommandText:='
ADODataSet1.Active:=True;
if ADODataSet1.RecordCount<>0 then
begin
MessageDlg('Такой № приказа уже есть в таблице!', mtError, [mbOk], 0);
Edit1.Clear;
Exit;
end;
Form2.SQL ('SELECT nomer_prikaza,data,tab_nomer_
Form2.InsertQuery('INSERT INTO Prikazy(nomer_prikaza,data,
+ ' VALUES ('''+Edit1.Text+''','''+Edit2.
MessageBox(Form20.Handle,'
Form20.Close;
Edit1.Clear;
Edit2.Clear;
end;
end.
Есептеулермен жұмыс жасау:
unit Otchet;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Menus, DB, Grids, DBGrids, ADODB, StdCtrls,comobj;
type
TForm5 = class(TForm)
ADODataSet1: TADODataSet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
MainMenu1: TMainMenu;
N1: TMenuItem;
i1: TMenuItem;
Ij1: TMenuItem;
N111: TMenuItem;
ADODataSet2: TADODataSet;
ADODataSet3: TADODataSet;
Button1: TButton;
procedure SQL(query:string);
procedure ExportExcel;
procedure N111Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure i1Click(Sender: TObject);
procedure Ij1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form5: TForm5;
m:integer;
implementation
uses Unit2, Otchet1, Otchet2;
{$R *.dfm}
procedure TForm5.ExportExcel;
var
i,j,index: Integer;
MyExcel,sheet: Variant;
begin
try
MyExcel:=CreateOleObject('
except
MessageBox(handle,pchar('У
exit;
end;
MyExcel := CreateOleObject('Excel.Applica
MyExcel.Visible := true;
MyExcel.WorkBooks.Add(-4167);
MyExcel.WorkBooks[1].
sheet:=MyExcel.WorkBooks[1].
index:=4;
with DataSource1.DataSet do
begin
case m of
1: begin
sheet.rows[1].Font.Bold:=True;
sheet.rows[1].Font.Color:= clblue;
sheet.rows[1].Font.Size:= 14;
sheet.rows[3].Font.Bold:=True;
sheet.columns[1].ColumnWidth:= 40;
sheet.columns[2].ColumnWidth:= 20;
sheet.columns[3].ColumnWidth:= 20;
sheet.columns[4].ColumnWidth:= 20;
sheet.cells[1,1]:= 'Список уволенных в текущем году сотрудников предприятия пенсионного возраста';
sheet.cells[3,1]:= 'ФИО работника';
sheet.cells[3,2]:= 'Дата рождения';
sheet.cells[3,3]:= 'Пол';
sheet.cells[3,4]:= 'Дата увольнения';
end;
2: begin
sheet.rows[1].Font.Bold:=True;
sheet.rows[1].Font.Color:= clblue;
sheet.rows[1].Font.Size:= 14;
sheet.rows[3].Font.Bold:=True;
sheet.columns[1].ColumnWidth:= 40;
sheet.columns[2].ColumnWidth:= 30;
sheet.columns[3].ColumnWidth:= 30;
sheet.columns[4].ColumnWidth:= 20;
sheet.columns[5].ColumnWidth:= 30;
sheet.rows[1].Font.Bold:=True;
sheet.rows[1].Font.Color:= clred;
sheet.rows[1].Font.Size:= 14;
sheet.rows[3].Font.Bold:=True;
sheet.cells[1,1]:= 'Пособия ' ;
sheet.cells[3,1]:= 'ФИО работника';
sheet.cells[3,2]:= 'кол-во иждивенцов';
sheet.cells[3,3]:= 'начисление пособий ';
end;
3: begin
sheet.rows[1].Font.Bold:=True;
sheet.rows[1].Font.Color:= clblue;
sheet.rows[1].Font.Size:= 14;
sheet.rows[3].Font.Bold:=True;
sheet.columns[1].ColumnWidth:= 10;
sheet.columns[2].ColumnWidth:= 50;
sheet.columns[3].ColumnWidth:= 20;
sheet.columns[4].ColumnWidth:= 15;
sheet.columns[5].ColumnWidth:= 20;
sheet.cells[1,1]:= 'Приказ';
sheet.cells[3,1]:= 'ФИО работника';
sheet.cells[3,2]:= 'Номер приказа';
sheet.cells[3,3]:= ' дата приказа';
sheet.cells[3,4]:= ' текст приказа';
end;
end;
for i:=1 to RecordCount do
begin
for j:=1 to FieldCount do
sheet.cells[index,j]:= fields[j-1].asstring;
inc(index);
Next;
end;
Next;
end;
end;
procedure TForm5.SQL(query:string);
begin
ADODataSet1.Active:=False;
ADODataSet1.CommandText:=
ADODataSet1.Active:=True;
end;
procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Application.Terminate;
end;
procedure TForm5.i1Click(Sender: TObject);
begin
m:=1;
SQL ('select Rabotnik.FIO_rabotnika,
convert(varchar,Rabotnik.data_
+ ' From Rabotnik where DATEDIFF(year,data_rozhdeniya,
+ ' or DATEDIFF(year,data_rozhdeniya,
+ ' and DATEPART(YEAR,Rabotnik.data_
end;
procedure TForm5.Ij1Click(Sender: TObject);
var
i : integer;
begin
m:=2;
Form5.ADODataSet3.Active:=
Form5.ADODataSet3.CommandText:
Form5.ADODataSet3.Active:=
Form5.ADODataSet3.First;
for i:=1 to Form5.ADODataSet3.RecordCount do
begin
form7.ComboBox1.Items.Add(
Form5.ADODataSet3.Next;
end;
Form7.ComboBox1.ItemIndex:=0;
Form7.Show;
end;
procedure TForm5.N111Click(Sender: TObject);
var
i : integer;
begin
m:=3;
Form5.ADODataSet2.Active:=
Form5.ADODataSet2.CommandText:
Form5.ADODataSet2.Active:=
Form5.ADODataSet2.First;
for i:=1 to Form5.ADODataSet2.RecordCount do
begin
form6.ComboBox1.Items.Add(
Form5.ADODataSet2.Next;
end;
form6.ComboBox1.ItemIndex:=0;
Form6.Show;
end;
procedure TForm5.Button1Click(Sender: TObject);
begin
ExportExcel;
application.ProcessMessages;
MessageBox(handle,pchar('
end;
end.
unit Otchet1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm6 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
Label1: TLabel;
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form6: TForm6;
implementation
uses Otchet;
{$R *.dfm}
procedure TForm6.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//Application.Terminate;
end;
procedure TForm6.Button1Click(Sender: TObject);
var
s:string;
begin
s:=(ComboBox1.Text);
Form5.SQL ('select FIO_rabotnika, nomer_prikaza, data, tekst_prikaza from Rabotnik, Prikazy '
+ ' where Prikazy.nomer_prikaza='''+s+''
Form6.Hide;
end;
end.
unit Otchet2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm7 = class(TForm)
ComboBox1: TComboBox;
Button1: TButton;
Label1: TLabel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
uses Otchet;
{$R *.dfm}
procedure TForm7.Button1Click(Sender: TObject);
var
s:string;
begin
s:=(ComboBox1.Text);
Form5.SQL( 'SELECT Rabotnik.FIO_rabotnika,
+ ' From Rabotnik,Podrazdeleniya where Podrazdeleniya.naimenovanie_
+ ' and Rabotnik.kod_podrazdeleniya=
Form7.Hide;
end;
end.
Процедуралармен жұмыс:
unit procedures;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, Menus, StdCtrls;
type
TForm8 = class(TForm)
DBGrid1: TDBGrid;
ADODataSet1: TADODataSet;
DataSource1: TDataSource;
MainMenu1: TMainMenu;
N1: TMenuItem;
N221: TMenuItem;
Ij1: TMenuItem;
N2: TMenuItem;
I1: TMenuItem;
ADODataSet2: TADODataSet;
ADODataSet3: TADODataSet;
Button1: TButton;
ADOQuery1: TADOQuery;
procedure SQL(query:string);
procedure N221Click(Sender: TObject);
procedure Ij1Click(Sender: TObject);
//procedure I1Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure I1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form8: TForm8;
implementation
uses Unit2, procedure2, procedure4;
{$R *.dfm}
procedure TForm8.SQL(query:string);
begin
ADODataSet1.Active:=False;
ADODataSet1.CommandText:=
ADODataSet1.Active:=True;
end;
procedure TForm8.N221Click(Sender: TObject);
begin
SQL ('SELECT Shtatnoe_raspisanie.kol_
+ ' FROM Shtatnoe_raspisanie where Shtatnoe_raspisanie.obwee_kol_
end;
procedure TForm8.Ij1Click(Sender: TObject);
var
i : integer;
begin
Form8.ADODataSet2.Active:=
Form8.ADODataSet2.CommandText:
Form8.ADODataSet2.Active:=
Form8.ADODataSet2.First;
for i:=1 to Form8.ADODataSet2.RecordCount do
begin
Form9.ComboBox1.Items.Add(
Form8.ADODataSet2.Next;
end;
Form9.ComboBox1.ItemIndex:=0;
Form8.ADODataSet2.Active:=
Form8.ADODataSet2.CommandText:
Form8.ADODataSet2.Active:=
Form8.ADODataSet2.First;
for i:=1 to Form8.ADODataSet2.RecordCount do
begin
Form9.ComboBox2.Items.Add(
Form8.ADODataSet2.Next;
end;
Form9.ComboBox2.ItemIndex:=0;
Form9.Show;
end;
procedure TForm8.Button1Click(Sender: TObject);
begin
Form8.Close;
end;
procedure TForm8.N2Click(Sender: TObject);
var
n: string;
begin
SQL('SELECT MAX(kod_kategorii_dolzhnosti) FROm Kategoriya_dolzhnostei');
n:=DBGrid1.Fields[0].AsString;
ADOQuery1.Active:=false;
ADOQuery1.SQL.Clear;
try
ADOQuery1.SQL.Add('exec procKategoriya_dolzhnostei '+n);
ADOQuery1.ExecSQL;
except
ADOQuery1.Active := False;
end;
SQL('SELECT kod_kategorii_dolzhnosti
''Код категории должности'', naimenovanie_kategorii_
end;
procedure TForm8.I1Click(Sender: TObject);
var
i : integer;
begin
Form8.ADODataSet3.Active:=
Form8.ADODataSet3.CommandText:
Form8.ADODataSet3.Active:=
Form8.ADODataSet3.First;
for i:=1 to Form8.ADODataSet3.RecordCount do
begin
Form10.ComboBox1.Items.Add(
Form8.ADODataSet3.Next;
end;
Form10.ComboBox1.ItemIndex:=0;
Form8.ADODataSet3.Active:=
Form8.ADODataSet3.CommandText:
Form8.ADODataSet3.Active:=
Form8.ADODataSet3.First;
for i:=1 to Form8.ADODataSet3.RecordCount do
begin
Form10.ComboBox2.Items.Add(
Form8.ADODataSet3.Next;
end;
Form10.ComboBox2.ItemIndex:=0;
Form10.Show;
end;
end.
unit procedure2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm9 = class(TForm)
ComboBox1: TComboBox;
ComboBox2: TComboBox;
Label1: TLabel;
Label2: TLabel;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form9: TForm9;
implementation
uses procedures;
{$R *.dfm}
procedure TForm9.Button1Click(Sender: TObject);
var
s,t:string ;
begin
s:=(ComboBox1.Text);
t:=(ComboBox2.Text);
Form8.SQL( ' select Rabotnik.FIO_rabotnika,
+ ' from Rabotnik, Obrazovanie,Podrazdeleniya
where Podrazdeleniya.naimenovanie_
+ ' and Obrazovanie.naimenovanie='''+
+ ' and Podrazdeleniya.kod_
Form9.Hide;
end;
end.
unit procedure4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls;
type
TForm10 = class(TForm)
ComboBox1: TComboBox;
Label1: TLabel;
Label2: TLabel;
ComboBox2: TComboBox;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form10: TForm10;
implementation
uses procedures;
{$R *.dfm}
procedure TForm10.Button1Click(Sender: TObject);
var
s,t:string ;
begin
s:=(ComboBox1.Text);
t:=(ComboBox2.Text);
Form8.SQL( ' select obwee_kol_edenic, kol_vakansii,
obwee_kol_edenic-kol_vakansii[
+ ' from Shtatnoe_raspisanie, Podrazdeleniya,
Dolzhnosti where Podrazdeleniya.naimenovanie_
+ ' and Dolzhnosti.naimenovanie_
Form10.Hide;
end;
end.
Сұраныстармен жұмыс жасау:
unit Zapros;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, Grids, DBGrids, DB, ADODB;
type
TForm3 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
i1: TMenuItem;
N218601: TMenuItem;
N2: TMenuItem;
N35000550001: TMenuItem;
i2: TMenuItem;
ADODataSet1: TADODataSet;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure SQL(query:string);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure i1Click(Sender: TObject);