Отчет по курсовой (Курсовая работа - Информационная служба учета времени работы сотрудника), страница 3
Описание файла
Файл "Отчет по курсовой" внутри архива находится в папке "Курсовая работа - Информационная служба учета времени работы сотрудника". Документ из архива "Курсовая работа - Информационная служба учета времени работы сотрудника", который расположен в категории "". Всё это находится в предмете "базы данных" из 6 семестр, которые можно найти в файловом архиве РТУ МИРЭА. Не смотря на прямую связь этого архива с РТУ МИРЭА, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "базы данных (бд)" в общих файлах.
Онлайн просмотр документа "Отчет по курсовой"
Текст 3 страницы из документа "Отчет по курсовой"
DateTimePicker: TDateTimePicker;
procedure CloseFormClick(Sender: TObject);
procedure OkClick(Sender: TObject);
procedure AddRowClick(Sender: TObject);
procedure DelRowClick(Sender: TObject);
procedure TableDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
procedure TableColExit(Sender: TObject);
procedure DateTimePickerChange(Sender: TObject);
procedure DateTimePickerDropDown(Sender: TObject);
private
{ Private declarations }
public
P_NameForm : String;
F_Add : boolean;
ID_ForUpdate : Integer;
end;
type TResultArray = Array [1..5,1..3] of string;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
//Получить массив названия и назначения полей 1- едит; 2-Кобобокс; 3-Таблица; 4-АктивацияДокумента;
Function GetFieldsMas(Word:String):TResultArray;
Begin
result[1,1] := '0';
result[2,1] := '0';
result[3,1] := '0';
result[4,1] := '0';
result[5,1] := '0';
If Word = 'Departments' Then Begin
result[1, 1] := '1';
result[1, 2] := 'Name';
result[2, 1] := '1';
result[2, 2] := 'Adress';
result[3, 1] := '1';
result[3, 2] := 'Phone';
End;
If Word = 'Employees' Then Begin
result[1, 1] := '1';
result[1, 2] := 'Name';
result[2, 1] := '2';
result[2, 2] := 'ID_Department';
result[2, 3] := 'Departments';
result[3, 1] := '2';
result[3, 2] := 'ID_Boss';
result[3, 3] := 'Employees';
End;
If Word = 'TimeControl' Then Begin
result[1, 1] := '1';
result[1, 2] := 'DocumentDate';
result[2, 1] := '1';
result[2, 2] := 'DocumentNumber';
result[3, 1] := '2';
result[3, 2] := 'ID_Employee';
result[3, 3] := 'Employees';
result[4, 1] := '3';
End;
End;
procedure TForm3.AddRowClick(Sender: TObject);
begin
DM.Table_TimeControl.Append;
end;
procedure TForm3.CloseFormClick(Sender: TObject);
Var
TextQuery:String;
Begin
If P_NameForm = 'TimeControl' Then Begin
DM.ADOStoredProc.ProcedureName := 'ClearDTable_TimeControl;1';
DM.ADOStoredProc.ExecProc;
DM.Table_TimeControl.Requery();
End;
Close();
End;
procedure TForm3.DateTimePickerChange(Sender: TObject);
begin
If Table.DataSource.State In [dsEdit, dsInsert] Then
If Table.Selectedindex = 1 then
DM.Table_TimecontrolInWork.Value := StartOfTheDay(DateTimePicker.DateTime)
Else If Table.Selectedindex = 2 Then
DM.Table_TimecontrolOutWork.Value := StartOfTheDay(DateTimePicker.DateTime);
End;
procedure TForm3.DateTimePickerDropDown(Sender: TObject);
begin
Table.DataSource.Edit;
end;
procedure TForm3.DelRowClick(Sender: TObject);
begin
DM.Table_TimeControl.Delete;
end;
Procedure TForm3.OkClick(Sender: TObject);
Var
MasField : TResultArray;
TextQuery, Values, ComboBoxText, EditText, IDForTable: String;
i : Integer;
Table : TADOTable;
Begin
If P_NameForm = 'TimeControl' Then
if DM.Table_TimeControl.UpdateStatus = usModified Then
DM.Table_TimeControl.Post;
Values := '';
MasField := GetFieldsMas(P_NameForm);
For i := 1 to 5 do Begin
If MasField[i,1] = '1' Then Begin
EditText := TEdit(FindComponent('Edit'+ IntToStr(i))).Text;
Values := Values + #39 + EditText + #39 + ',';
End;
If MasField[i,1] = '2' Then Begin
ComboBoxText := TComboBox(FindComponent('ComboBox'+ IntToStr(i))).Text;
Table := DM.FindComponent(MasField[i,3]) As TADOTable;
If Table.Locate('Name', ComboBoxText, [loCaseInsensitive,loPartialKey]) = True Then
Values := Values + Table.FieldByName('ID').Asstring + ','
Else
Values := Values + 'Null,';
End;
End;
Values := Copy(Values, 1 , Length(Values) - 1);
If F_Add Then
TextQuery := 'Exec Add' + P_NameForm + ' ' + Values
Else
TextQuery := 'Exec Update' + P_NameForm + ' ' + IntToStr(ID_ForUpdate) + ', ' + Values;
DM.RunQuery.SQL.Clear();
DM.RunQuery.SQL.Append(TextQuery);
DM.RunQuery.ExecSQL();
Table := DM.FindComponent(P_NameForm) As TADOTable;
Table.Requery();
If P_NameForm = 'TimeControl' Then Begin
//Добавить СТОРПРОК
TextQuery := 'Exec DeleteInDTable_TimeControl ' + #39 + IntToStr(ID_ForUpdate) + #39;
DM.RunQuery.SQL.Clear();
DM.RunQuery.SQL.Append(TextQuery);
DM.RunQuery.ExecSQL();
TextQuery := 'Exec UpdateTableTimeControl ' + #39 + IntToStr(ID_ForUpdate) + #39;
DM.RunQuery.SQL.Clear();
DM.RunQuery.SQL.Append(TextQuery);
DM.RunQuery.ExecSQL();
End;
Close();
End;
Procedure TForm3.TableColExit(Sender: TObject);
Begin
If (Table.SelectedField.FieldName = 'InWork') Or (Table.SelectedField.FieldName = 'OutWork') Then
DateTimePicker.Visible := False
End;
Procedure TForm3.TableDrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
Begin
If (gdFocused in State) Then Begin
If (Column.Field.FieldName = 'InWork') OR (Column.Field.FieldName = 'OutWork') Then
With DateTimePicker do Begin
Left := Rect.Left + Table.Left + 1;
Top := Rect.Top + Table.Top + 21;
Width := Rect.Right - Rect.Left + 2;
Width := Rect.Right - Rect.Left + 2;
Height := Rect.Bottom - Rect.Top + 2;
Visible := True;
End;
End;
End;
end.
Unit 4. pas
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, Menus;
type
TForm4 = class(TForm)
List: TDBGrid;
Button_Add: TButton;
Button1: TButton;
Button2: TButton;
Button3: TButton;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
procedure Button_AddClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure ListTitleClick(Column: TColumn);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
private
{ Private declarations }
public
P_NameForm:String;
end;
var
Form4: TForm4;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm4.Button1Click(Sender: TObject);
begin
DM.ShowAddForm(P_NameForm, False);
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
DM.DeleteObject(P_NameForm);
end;
procedure TForm4.Button3Click(Sender: TObject);
begin
Close();
end;
procedure TForm4.Button_AddClick(Sender: TObject);
begin
DM.ShowAddForm(P_NameForm, True);
end;
procedure TForm4.ListTitleClick(Column: TColumn);
begin
DM.Sort(P_NameForm, Column.FieldName);
end;
procedure TForm4.N1Click(Sender: TObject);
begin
DM.ShowFilterForm(P_NameForm);
end;
procedure TForm4.N2Click(Sender: TObject);
Begin
DM.Employees.Filtered := False;
DM.TimeControl.Filtered := False;
DM.Departments.Filtered := False;
end;
end.
Unit 5 . pas
unit Unit5;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB;
type
TFilter = class(TForm)
Fields: TComboBox;
Value: TEdit;
Button1: TButton;
Button2: TButton;
FilterON: TCheckBox;
Label1: TLabel;
Label2: TLabel;
Result: TMemo;
procedure Button2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
Procedure SearchInTable();
public
P_NameForm : String;
end;
var
Filter: TFilter;
implementation
uses Unit2;
{$R *.dfm}
//Поиск по таблице
Procedure TFilter.SearchInTable();
Var
i,j: Integer;
TextQuery : String;
SearchField : String;
Table : TADOTable;
Begin
SearchField := '';
Table := DM.FindComponent(P_NameForm) AS TADOTable;
Table.First;
For I := 0 to Table.Fields.Count - 1 do
If Table.Fields[i].DisplayLabel = Fields.Text Then
SearchField := Table.Fields[i].FieldName;
If SearchField = '' Then Exit;
DM.RunQuery.SQL.Clear;
DM.RunQuery.SQL.Append('Select * From SearchIn' + P_NameForm + '(' + #39 +SearchField + #39 + ' , ' + #39 + '%' + Value.Text + '%' + #39 + ')');
DM.RunQuery.Active := True;
DM.RunQuery.ExecSQL();
Result.Clear;
Result.Lines.Add('Найдено ' + IntToStr(DM.RunQuery.RecordCount) + ' записей');
DM.RunQuery.First;
While Not DM.RunQuery.Eof Do Begin
SearchField := '';
For i:= 0 to DM.RunQuery.Fields.Count - 1 Do
Try
j := StrToInt(DM.RunQuery.Fields[i].Value);
Except
SearchField := SearchField + ' ' + DM.RunQuery.Fields[i].Value + '|';
End;
Result.Lines.Add(SearchField);
DM.RunQuery.Next;
End;
End;
procedure TFilter.Button1Click(Sender: TObject);
begin
If FilterON.Checked = True Then
DM.FilterTable(P_NameForm, Fields.Text, Value.Text)
Else Begin
SearchInTable();
Height := 317;
Result.Visible := True;
End;
end;
procedure TFilter.Button2Click(Sender: TObject);
begin
Close();
end;
end.
5. Скриншоты программы
Главная форма базы данных
Форма списка отделов
Форма добавления отдела
Форма списка сотрудников
Форма добавления сотрудника
Форма списка документов контроль времени
Форма добавления документа контроль времени
Общая форма поиска и фильтрации