Отдел кадров


Казахский Экономический Университет имени
Т. Рыскулова
Проверил:
Выполнил: Жумаханов Т.
110группа, ИЭФ-05, «ВТ и ПО»
Алматы 2006
Содержание
Введение3
Задача3
Алгоритм решения задачи3
Инструкция пользователя5
Исходный код программы5
Блок-схемы14
Список литературы15
Введение
Тема курсовой работы называется «Отдел кадров». С помощью интегрированной среды разработки Delphi версии 6. 0 я решил проблему автоматизации учета сотрудников учреждения. Программа является полностью готовой, рабочей и может без проблем быть внедрена в указанные инстанции.
Задача
Автоматизировать процесс учета и регистрации сотрудников учреждения, при этом сохранить простоту и удобство управления процессом. В целом, программа должна хранить информацию, предоставить возможность просмотра и редактирования данных. Помимо этого нужно реализовать поиск по определенным критериям и в определенных полях. Что собственно и было реализовано в моей курсовой работе, а также были добавлены некоторые дополнительные функции, которые будут описаны далее в разделе «Алгоритм решения задачи».
Алгоритм решения задачи
Программа написана на языке программирования Delphi версии 6. 0. При написании программы использовались лишь стандартные компоненты интегрированной среды разработки. Технологии и типы, которые получили реализации в проекте:
- Borland Database Engine (BDE) - орган управления базами данных (в нашем случае мы используем БД Paradox версии 7. 0) .
- Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, ComCtrls, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls, Buttons, Menus, DB, DBTables, ImgList - юниты, с помощью которых я получил доступ к процедурам и фукнциям работы с операционной системой, меню, базами данных, визуальными компонентами Delphi.
- String, Integer, Boolean - типы данных, на которых основана данная программа. Соответственно строковый, целочисленный, логический типы.
При написании курсовой работы я обращался к использованию визуальных и не визуальных компонентов. Давайте, перечислим всех их:
- TButton - обычная кнопка, нам нужно лишь ее событие onClick(для обработки) .
- TEdit - поле ввода информации, нужно как часть для: реализации поиска, процесса считывания новых данных о пациенте.
- TCombobox - представляет собой TEdit с выпадающим вниз меню, элементы которого можно программировать.
- TMainMenu - компонент для создания главного меню («Файл», «Правка», «Вид» и т. д. ) .
- TDBGrid - компоненты отображения таблиц базы данных в удобочитаемой форме, в виде сетки ячеек и столбцов.
- TDBNavigator - набор соединенных вместе кнопок навигации по таблице БД. Действия: Назад, Вперед, Вставить, Удалить, Сохранить, Отменить и т. д. над ячейками и строками таблиц.
- TTreeView - компоненты древовидного представления данных.
- TPanel - представляет собой визуальный модуль, на который могут помещаться другие визуальные компоненты.
- TDatasource - компонент управления потоком данных между базой данных и программой.
- TTable - является виртуальной таблицей, копией физической таблицы, все операции над ней затем сохраняются в физической таблице.
- DBMemo - компоненты отображения текстовой информации.
- DBImage -компоненты отображения графической информации.
Так как в проекте используются только базы данных Paradox, то каждая таблица будет соответствовать только одной физической базу данных. Всего в программе существует 3 БД: «Персонал», «Данные о переводах», «Архив» - они хранятся в папке с самой программой.
Все БД создавались с помощью SQL Explorer. Имя псевдонима - “Talga”. Тип драйвера «STANDART».
После создания локальных БД, я приступил к написанию исходного кода будущей программы. Для начала была созданы следующие формы: главная форма, несколько форм для фильтрации БД (для каждой базы - своя) . Заострять особого внимания на данной стадии разработки мы не будем, а сразу перейдем к рассмотрению принципа работы продукта.
После запуска на экране возникает главная форма с размещенными на ней визуальными компонентами работы с базами данных (DBGrid1, DBNavigator1) . Имена компонентов остались стандартными, т. е. не менялись с целью наглядного просмотра кода. Навигация между определенными таблицами осуществляется с помощью компоненты TTreeView, размещенного слева на нашей форме. При раскрытии списка в TreeView, открывается доступ к еще 2 подпунктам в каждом пункте, также при двукратном нажатии на элементы «древа» программой обрабатывается событие onChange, в котором инициализируется выбранный пункт и в DBGrid1 отображается определенная таблица базы данных, а в компоненте Table1 свойство TableName меняется в зависимости от выбранного подпункта «древа навигации». Активной таблица делается с помощью установки свойства Active в значение true. При смене таблиц текущая деактивизируется, выбирается нужная и снова активизируется.
Поиск в программе реализован при помощи метода Locate. Задавая определенные критерии в Edit1 и выбирая нужное поле для поиска, мы можем без проблем отыскать интересующую нас информацию, автоматически переместив на нее указатель в визуальном компоненты DBGrid1.
Добавление новых сотрудников в базу данных можно осуществить нажав на Navigator-е на кнопку «+» и вручную заполнить все поля. А добавление в БД «Архив» и «Данные о переводах» можно с БД «Персонал» нажав на главной форме на кнопки «Уволить» и «Перевести» соответствеено.
При увеличении или уменьшении размеров формы главного окна программы все остальные компоненты пропорционально меняют свои размеры. Это реализуется при помощи события Align у определенных компонентов.
Завершение работы программы осуществляется либо нажатием кнопки «крестик» в заголовке программы, либо нажатием на главной форме кнопки «Выход», либо выбором из главного меню пункта «Выход», который влечет за собой выполнение стандартного метода Delphi - Close.
Инструкция пользователя
В принципе программа предоставляет очень простой и понятный интерфейс, никаких загвоздок или непонятных пунктов там нет. Например:
Поиск осуществляется после того как вы введете код интересующей вас записи в окно ввода кода и щелкните по кнопке «Найти», которая расположена рядом с окном ввода кода.
Фильтрация запускается щелчком на одноименной кнопке.
А для того чтобы восстановить все записи щелкните на кнопке «Все записи».
Для перевода или увольнения сотрудников щелкните на соответствующих кнопках. После чего у вас появится диалоговое окно, в которое если вы щелкнули на кнопке «Перевести» нужно ввести наименование отдела куда вы его переводите, а если щелкнули на кнопке «Уволить», то вводите причину по которой вы его увольняете.
Исходный код
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Menus, DBCtrls, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Panel1: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel6: TPanel;
MainMenu1: TMainMenu;
Button2: TButton;
N1: TMenuItem;
DBGrid1: TDBGrid;
Button3: TButton;
Edit1: TEdit;
Label3: TLabel;
DBNavigator1: TDBNavigator;
N2: TMenuItem;
N4: TMenuItem;
Label2: TLabel;
DBImage1: TDBImage;
Button4: TButton;
Button5: TButton;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
TreeView1: TTreeView;
Label4: TLabel;
DBMemo1: TDBMemo;
Button1: TButton;
Button6: TButton;
procedure TreeView1Change(Sender: TObject; Node: TTreeNode) ;
procedure Button3Click(Sender: TObject) ;
procedure N4Click(Sender: TObject) ;
procedure Button2Click(Sender: TObject) ;
procedure Button4Click(Sender: TObject) ;
procedure Button5Click(Sender: TObject) ;
procedure N2Click(Sender: TObject) ;
procedure N6Click(Sender: TObject) ;
procedure N7Click(Sender: TObject) ;
procedure Button1Click(Sender: TObject) ;
procedure Button6Click(Sender: TObject) ;
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3;
{$R *. dfm}
procedure TForm1. TreeView1Change(Sender: TObject; Node: TTreeNode) ;
begin
if TreeView1. Selected. Text[1] ='1' then begin
DataModule2. Table1. Close;
DBGrid1. DataSource:=DataModule2. DataSource1;
DBNavigator1. DataSource:=DataModule2. DataSource1;
DBMemo1. DataSource:=DataModule2. DataSource1;
DBImage1. DataSource:=DataModule2. DataSource1;
DataModule2. Table1. Open;
end;
if TreeView1. Selected. Text[1] ='2' then begin
DataModule2. Table2. Close;
DBGrid1. DataSource:=DataModule2. DataSource2;
DBNavigator1. DataSource:=DataModule2. DataSource2;
DBMemo1. DataSource:=DataModule2. DataSource2;
DBImage1. DataSource:=DataModule2. DataSource2;
DataModule2. Table2. Open;
end;
if TreeView1. Selected. Text[1] ='3' then begin
DataModule2. Table3. Close;
DBGrid1. DataSource:=DataModule2. DataSource3;
DBNavigator1. DataSource:=DataModule2. DataSource3;
DBMemo1. DataSource:=DataModule2. DataSource3;
DBImage1. DataSource:=DataModule2. DataSource3;
DataModule2. Table3. Open;
end;
end;
procedure TForm1. Button3Click(Sender: TObject) ;
begin
Close;
end;
procedure TForm1. N4Click(Sender: TObject) ;
begin
Close;
end;
procedure TForm1. Button2Click(Sender: TObject) ;
begin
if TreeView1. Selected. Text[1] ='1' then
DataModule2. Table1. Locate('Kod', Edit1. Text, [] ) ;
if TreeView1. Selected. Text[1] ='2' then
DataModule2. Table2. Locate('Kod', Edit1. Text, [] ) ;
if TreeView1. Selected. Text[1] ='3' then
DataModule2. Table3. Locate('Kod', Edit1. Text, [] ) ;
end;
procedure TForm1. Button4Click(Sender: TObject) ;
begin
DataModule2. Table3. Active:=false;
DataModule2. Table3. TableName:='Archiv';
DataModule2. Table3. Active:=true;
DataModule2. Table3. Append;
DataModule2. Table3. FieldValues['Kod'] :=DataModule2. Table1. FieldValues['Kod'] ;
DataModule2. Table3. FieldValues['Familia'] :=DataModule2. Table1. FieldValues['Familia'] ;
DataModule2. Table3. FieldValues['Imya'] :=DataModule2. Table1. FieldValues['Imya'] ;
DataModule2. Table3. FieldValues['Otchestvo'] :=DataModule2. Table1. FieldValues['Otchestvo'] ;
DataModule2. Table3. FieldValues['Pol'] :=DataModule2. Table1. FieldValues['Pol'] ;
DataModule2. Table3. FieldValues['Prichina'] :=InputBox('Отдел Кадров', 'Причина:', '') ;
DataModule2. Table3. FieldValues['Charact'] :=DataModule2. Table1. FieldValues['Charact'] ;
DataModule2. Table3. FieldValues['Photo'] :=DataModule2. Table1. FieldValues['Photo'] ;
DataModule2. Table1. Delete;
MessageBox(0, 'Уволен', 'Отдел Кадров', mb_ok+mb_iconinformation) ;
DataModule2. Table3. Post;
end;
procedure TForm1. Button5Click(Sender: TObject) ;
begin
DataModule2. Table2. Active:=false;
DataModule2. Table2. TableName:='D_perevoda';
DataModule2. Table2. Active:=true;
DataModule2. Table2. Append;
DataModule2. Table2. FieldValues['Kod'] :=DataModule2. Table1. FieldValues['Kod'] ;
DataModule2. Table2. FieldValues['Familia'] :=DataModule2. Table1. FieldValues['Familia'] ;
DataModule2. Table2. FieldValues['Imya'] :=DataModule2. Table1. FieldValues['Imya'] ;
DataModule2. Table2. FieldValues['Otchestvo'] :=DataModule2. Table1. FieldValues['Otchestvo'] ;
DataModule2. Table2. FieldValues['Pol'] :=DataModule2. Table1. FieldValues['Pol'] ;
DataModule2. Table2. FieldValues['1Otdel'] :=DataModule2. Table1. FieldValues['Otdel'] ;
DataModule2. Table2. FieldValues['2Otdel'] :=InputBox('Отдел Кадров', 'Новая должность:', '') ;
DataModule2. Table2. FieldValues['Charact'] :=DataModule2. Table1. FieldValues['Charact'] ;
DataModule2. Table2. FieldValues['Photo'] :=DataModule2. Table1. FieldValues['Photo'] ;
DataModule2. Table1. Delete;
MessageBox(0, 'Переведен', 'Отдел Кадров', mb_ok+mb_iconinformation) ;
DataModule2. Table2. Post;
end;
procedure TForm1. N2Click(Sender: TObject) ;
begin
if TreeView1. Selected. Text[1] ='1' then DataModule2. Table1. Delete;
if TreeView1. Selected. Text[1] ='2' then DataModule2. Table2. Delete;
if TreeView1. Selected. Text[1] ='3' then DataModule2. Table3. Delete;
end;
procedure TForm1. N6Click(Sender: TObject) ;
begin
if TreeView1. Selected. Text[1] ='1' then DataModule2. Table1. First;
if TreeView1. Selected. Text[1] ='2' then DataModule2. Table2. First;
if TreeView1. Selected. Text[1] ='3' then DataModule2. Table3. First;
end;
procedure TForm1. N7Click(Sender: TObject) ;
begin
if TreeView1. Selected. Text[1] ='1' then DataModule2. Table1. Last;
if TreeView1. Selected. Text[1] ='2' then DataModule2. Table2. Last;
if TreeView1. Selected. Text[1] ='3' then DataModule2. Table3. Last;
end;
procedure TForm1. Button1Click(Sender: TObject) ;
begin
if TreeView1. Selected. Text[1] ='1' then form3. show;
if TreeView1. Selected. Text[2] ='1' then form3. show;
if TreeView1. Selected. Text[3] ='1' then form3. show;
end;
procedure TForm1. Button6Click(Sender: TObject) ;
begin
if TreeView1. Selected. Text[1] ='1' then form3. show;
if TreeView1. Selected. Text[2] ='1' then form3. show;
if TreeView1. Selected. Text[3] ='1' then form3. show;
end;
end.
unit Unit2;
interface
uses
SysUtils, Classes, DB, DBTables;
type
TDataModule2 = class(TDataModule)
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
Table1: TTable;
Table2: TTable;
Table3: TTable;
Table1Kod: TFloatField;
Table1Familia: TStringField;
Table1Imya: TStringField;
Table1Otchestvo: TStringField;
Table1Pol: TBooleanField;
Table1Otdel: TStringField;
Table1God_roj: TSmallintField;
Table1Charact: TMemoField;
Table1Photo: TGraphicField;
Table2Kod: TFloatField;
Table2Familia: TStringField;
Table2Imya: TStringField;
Table2Otchestvo: TStringField;
Table2Pol: TBooleanField;
: TStringField;
: TStringField;
Table2Prichina: TStringField;
Table2Charact: TMemoField;
Table2Photo: TGraphicField;
Table3Kod: TFloatField;
Table3Familia: TStringField;
Table3Imya: TStringField;
Table3Otchestvo: TStringField;
Table3Pol: TBooleanField;
Table3Prichina: TStringField;
Table3Charact: TMemoField;
Table3Photo: TGraphicField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DataModule2: TDataModule2;
implementation
{$R *. dfm}
end.
unit Unit3;
... продолжение- Информатика
- Банковское дело
- Оценка бизнеса
- Бухгалтерское дело
- Валеология
- География
- Геология, Геофизика, Геодезия
- Религия
- Общая история
- Журналистика
- Таможенное дело
- История Казахстана
- Финансы
- Законодательство и Право, Криминалистика
- Маркетинг
- Культурология
- Медицина
- Менеджмент
- Нефть, Газ
- Искуство, музыка
- Педагогика
- Психология
- Страхование
- Налоги
- Политология
- Сертификация, стандартизация
- Социология, Демография
- Статистика
- Туризм
- Физика
- Философия
- Химия
- Делопроизводсто
- Экология, Охрана природы, Природопользование
- Экономика
- Литература
- Биология
- Мясо, молочно, вино-водочные продукты
- Земельный кадастр, Недвижимость
- Математика, Геометрия
- Государственное управление
- Архивное дело
- Полиграфия
- Горное дело
- Языковедение, Филология
- Исторические личности
- Автоматизация, Техника
- Экономическая география
- Международные отношения
- ОБЖ (Основы безопасности жизнедеятельности), Защита труда