Разработка автоматизированной подсистемы кадрового учета с использованием CASE средств (BPWin и ERWin) для МОУ Лицей №17
Разработка функциональной и инфологической модели системы "Кадровый учет" с использованием индустриального проектирования CASE средств (BPWin и ERWin). Программная система позволяет упростить процесс проведения регистрации и учета сотрудников лицея.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 28.06.2011 |
Размер файла | 1,3 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
tуход = 25 + ( 3,6 - 2 ) 2 = 29
Qизбыт = Qизб.1 + Qизб.2 + Qизб.3 ,
где
Qизб. - избыток тепла от электрооборудования и освещения.
Qизб.1 = Е р ,
где
Е - коэффициент потерь электроэнергии на теплоотвод (Е=0.55 для освещения);
р - мощность, р = 40 Вт 5 = 200 Вт.
Qизб.1 = 0.55 * 200=110 Вт
Qизб.2 - теплопоступление от солнечной радиации,
Qизб.2 =m S k Qc ,
где
m - число окон, m = 1;
S - площадь окна, S = 5,4 м2;
k - коэффициент, учитывающий остекление. Для двойного остекления
k = 0.6;
Qc = 127 Вт/м - теплопоступление от окон.
Qизб.2 = 1 * 5.4 * 0.6 * 127 = 411,48 Вт
Qизб.3 - тепловыделения людей
Qизб.3 = n q ,
где
q = 80 Вт/чел. , n - число людей, например, n = 5
Qизб.3 = 5 * 80 = 400 Вт
Qизбыт = 110 +411,48 + 400 = 921,48 Вт
Из уравнения теплового баланса следует:
Lвент = 3600 * 921.48 =251.31 м3/ч
1000*(29-18)*1.2
Оптимальным вариантом является кондиционирование воздуха, т.е. автоматическое поддержание его состояния в помещении в соответствии с определенными требованиями (заданная температура, влажность, подвижность воздуха) независимо от изменения состояния наружного воздуха и условий в самом помещении.
В производственных помещениях, температура, относительная влажность и скорость движения воздуха на рабочих местах соответствует действующим санитарным нормам микроклимата.
6.4 Выводы
Произведен анализ вредных факторов, оказывающих негативное влияние на органы зрения пользователя ПЭВМ. Указаны требования к рабочему месту, которые согласно ГОСТам обеспечивают максимальное удобство при работе с компьютером. Указаны правила обеспечения безопасности на рабочем месте. Выполнен расчет вентиляции для помещения (подсчитан объем вентилируемого помещения Lвент=251,31 м3/ч при общем объеме помещения Lпомещ=108 м3 и 5 работников).
- ЗАКЛЮЧЕНИЕ
- В ходе работы над проектом была создана автоматизированная подсистема кадрового учета, которая позволила автоматизировать и упростить процесс проведения регистрации и учета сотрудников организации. Дана методика обработки результатов работы отдела кадров с использованием системы, рассмотрены методы защиты информации от несанкционированного доступа и от потери данных.
- Проведен анализ системы управления МОУ Лицей № 17. В результате анализа, основанного на структурном подходе, была создана модель организации, основе которой лежит методология функционального моделирования. Также исследована сфера деятельности учреждения. Для данной организации это исправление лиц вставших на путь конфликта с законом. В результате анализа были сформулированы цели, стоящие перед учреждением.
- В процессе проведения исследования автоматизированной системы управления организации была описана функциональная модель структуры АСУ. Анализ показал, что в организации, из-за отсутствия высококвалифицированных сотрудников система специализированных автоматизированных подсистем и общее программное обеспечение находятся на начальном этапе разработки.
- На основании данных, полученных в результате анализа организации было установлено, что первоочередным является создание автоматизированной подсистемы кадрового учета. На основе исследования предметной области была построена инфологическая модель, спроектирована база данных. Разработан обобщенный алгоритм функционирования автоматизированной подсистемы специалиста отдела кадров.
- Разрабатываемая подсистема предназначена для получения сведений о сотрудниках предприятия: табельный номер, фамилия, имя, отчество, пол, год рождения, стаж, образование, специальность, должность, когда и какое учебное заведение окончил, место предыдущей работы, отношение к военной службе (состав и военно-учетная специальность), адрес, семейное положение и наличие детей.
- Рассчитан экономический эффект от внедрения этой системы, который составит порядка 211420 руб., поэтому если учесть что система реально может функционировать в течение 5 лет без дополнительных расходов не превышающих допустимые, то за полезный срок эксплуатации в течение этих лет прибыль составит 422840 рублей, что подтверждает экономическую обоснованность внедрения данной системы.
- Со временем созданная система будет развиваться, и совершенствоваться, будут добавлены новые критерии оценки результатов работы отдела кадров и усовершенствованна логика и алгоритмы ее работы.
- Таким образом, внедрение и использование данного проекта позволит с наименьшими затратами и большей эффективностью специалисту отдела кадров выполнять свои должностные обязанности.
- Список используемой литературы
- 1. Дж. Ульман. Основы систем баз данных. - М.: Финансы и статистика,2003.
- 2. К. Дейт. Введение в системы баз данных. - М.: Hаука, 1998.
- 3. В.П. Корячко, В.М. Курейчик, И.П. Hоренков. Теоретические основы САПР. - М.: Энергоатомиздат, 1997.
- 4. М.Р. Когаловский. Технология баз данных на персональных ЭВМ. - М.: Финансы и статистика, 1999.
- 5. А.H. Hаумов, А.М. Вендров и др. Системы управления базами данных и знаний. - М.: Финансы и статистика, 2003.
- 6. М.А. Аппак. Автоматизированные рабочие места на основе персональных ЭВМ. - М. :Радио и связь, 1999.
- 7. С.М. Диго. Проектирование и использования баз данных. - М.: Финансы и статистика, 2005.
- 8. Д. Веттинг. Nowell NetWare для пользователя. - М.: Радио и связь, 1997.
- 9. С.И. Казаков. Основы сетевых технологий. - М.: Радио и связь, 1999.
- 10. Nowell NetWare 4.02 for Lan Managers Nowell Corp. Документация к продукту.
- 11. В.В. Кириллов. Структуризованный язык запросов (SQL). - СПб.:ИТМО, 2004.
- 12. Б.Г. Голованов. Введение в программирование в сетях Nowell NetWare. - СПб.: Питер, 2006.
- 13. В. Фаронов. Программирование баз данных в Delphi 6. - СПб.: Питер, 2002.
- 14. П. Дарахвелидзе, Е. Марков. Программирование в Delphi 7. - СПб.: БХВ - Петербург, 2008.
- 15. В. Сергеев. SQL SERVER. Руководство для профессионалов. - СПб.: БХВ - Петербург, 2008.
- 16. ГОСТ 12.0.003-74. ССБТ Опасные и вредные факторы. Классификация.
- 17. В.К. Шумилин, И.Г. Гетия. Охрана труда при работе на ПЭВМ и ЭВМ. Учебное пособие (часть 1).- М.: МИП, 2004.
- 18. И.Г. Гетия, И.Н. Леонтьева, Е.Н. Кулемина. Учебное пособие. Проектирование вентиляции и кондиционирование воздуха, искусственного и естественного освещения в помещении ВЦ (спец.01.02; 21.01; 21.03;21.06; 22.01; 22.03; 23.03) - М: МГАПИ, 2005.
- 19. И.Г. Гетия, В.К. Шумилин, И.Н. Леонтьева и др. Экология компьютерной техники. - М.: МГАПИ,1996.
- 20. СНиП23-05-95. Естественное и искусственное освещение. Нормы проектирования.
- 21. СанПин 2.2.2/2.4.1340-03. Гигиенические требования к персональным электронно-вычислительным машинам и организации работы.
Размещено на http://www.allbest.ru/
Приложение а
Инфологическая модель
Приложение б
Даталогическая модель
Приложение В
Блок-схема алгоритма
ПРИЛОЖЕНИЕ Г
Листинг основного файла проекта
program emp;
uses
Forms,
Windows,
SysUtils,
Dialogs,
MainForm_FormUnit in 'MainForm_FormUnit.pas' {MainForm},
AppBuilder_FormUnit in 'units\AppBuilder_FormUnit.pas' {AppBuilder},
MiscProcs_Unit in 'units\MiscProcs_Unit.pas',
TypesVars in 'units\TypesVars.pas',
Data_DataModule in 'data\Data_DataModule.pas' {Data: TDataModule},
Startup_FormUnit in 'Startup_FormUnit.pas' {Startup},
About_FormUnit in 'About_FormUnit.pas' {About},
Logon_FormUnit in 'Logon_FormUnit.pas' {Logon},
DateRange_FormUnit in 'dialogs\DateRange_FormUnit.pas' {DateRange},
SingleDate_FormUnit in 'dialogs\SingleDate_FormUnit.pas' {SingleDate},
Departament_FormUnit in 'dicts\Departament_FormUnit.pas' {Departament},
Employes_FormUnit in 'dicts\Employes_FormUnit.pas' {Employes},
Job_FormUnit in 'dicts\Job_FormUnit.pas' {Job},
FindEmploye_FormUnit in 'reports\FindEmploye_FormUnit.pas' {FindEmploye},
EmpDocList_FormUnit in 'list\EmpDocList_FormUnit.pas' {EmpDocList},
EmpDoc_FormUnit in 'list\EmpDoc_FormUnit.pas' {EmpDoc},
UserForm_FormUnit in 'UserForm_FormUnit.pas' {User},
OptionsForm_FormUnit in 'OptionsForm_FormUnit.pas' {Options},
Event_FormUnit in 'Event_FormUnit.pas' {Event};
{$R *.RES}
begin
Application.Initialize;
Application.Title := ' АРМ Отдел кадров 1.0';
SystemDate := Now;
SystemParametersInfo(SPI_SETBEEP, 0, nil, 0);
RegistryKey := ParamStr(1);
ProgramName := 'АРМ Отдел кадров 1.0';
Application.CreateForm(TMainForm, MainForm);
Application.CreateForm(TAppBuilder, AppBuilder);
Application.CreateForm(TStartup, Startup);
Startup.Show;
Startup.Update;
Application.CreateForm(TData, Data);
Application.CreateForm(TLogon, Logon);
Startup.RxStatus.Caption := 'Инициализация...';
Startup.Update;
Data.InitConnection;
if not AutoLogon then Logon.ShowModal else begin
Logon.UName.Text := Data.Connect.Username;
Logon.LogonProc;
end;
if not Application.Terminated then begin
Startup.RxStatus.Caption := 'Создание диалогов...';
Startup.Update;
Application.CreateForm(TDateRange, DateRange);
Application.CreateForm(TSingleDate, SingleDate);
Startup.RxStatus.Caption := 'Создание справочников...';
Startup.Update;
Application.CreateForm(TDepartament, Departament);
Departament.qryDepartament.Open;
Application.CreateForm(TJob, Job);
Job.qryJob.Open;
Application.CreateForm(TEmployes, Employes);
Employes.qryEmployes.Open;
Application.CreateForm(TOptions, Options);
Options.Init;
end;
Startup.Close;
if Data.Connect.Connected then Application.Run;
SystemParametersInfo(SPI_SETBEEP, 1, nil, 0);
end.
Процедура заполнения справочника на основании документов
CREATE PROCEDURE SET_DICTIONARY_BY_DOCUMENTS (
I_START_DATE DATE,
I_STOP_DATE DATE)
AS
DECLARE VARIABLE V_ID INTEGER;
DECLARE VARIABLE V_DOC_TYPE INTEGER;
DECLARE VARIABLE V_CREATE_DATE DATE;
DECLARE VARIABLE V_DOC_NO INTEGER;
DECLARE VARIABLE V_ADV_NO INTEGER;
DECLARE VARIABLE V_EMP_ID INTEGER;
DECLARE VARIABLE V_EMP_SALARY NUMERIC(15,4);
DECLARE VARIABLE V_EMP_JOB_ID INTEGER;
DECLARE VARIABLE V_EMP_DEP_ID INTEGER;
DECLARE VARIABLE V_STATUS INTEGER;
DECLARE VARIABLE V_TEMP_START_DATE DATE;
DECLARE VARIABLE V_TEMP_STOP_DATE DATE;
begin
for select ID, doc_type, CREATE_DATE, DOC_NO, ADV_NO, EMP_ID, EMP_SALARY, EMP_JOB_ID,
EMP_DEP_ID, STATUS
from emp_doc
where create_date between :i_start_date and :i_stop_date
order by create_date
into :V_ID, :V_doc_type, :V_CREATE_DATE, :V_DOC_NO, :V_ADV_NO, :V_EMP_ID, :V_EMP_SALARY, :V_EMP_JOB_ID, :V_EMP_DEP_ID, :V_STATUS
do begin
select work_start_date, work_stop_date from employes where id = :V_EMP_ID into :v_temp_start_date,
:v_temp_stop_date;
if (v_doc_type = -1) then begin
update employes set salary = 0,
status = 0,
dep_id = 0,
stat_id = 0
where id = :v_emp_id;
update employes set work_stop_date = :v_create_date, work_stop_id = :v_id
where id = :v_emp_id;
end
if (v_doc_type = 1) then begin
update employes set salary = :v_emp_salary,
status = :v_doc_type,
dep_id = :V_EMP_DEP_ID,
stat_id = :v_emp_job_id
where id = :v_emp_id;
if (v_temp_start_date is null) then update employes set work_start_date = :v_create_date, work_start_id =
:v_id where id = :v_emp_id;
if (v_create_date < v_temp_start_date) then update employes set work_start_date = :v_create_date,
work_start_id = :v_id where id = :v_emp_id;
end
end
end
Процедура отбора сотрудников номинированных на «13 зарплату», проработавших более года
CREATE PROCEDURE SELECT_MORE_YEAR (
I_DATE DATE)
RETURNS (
R_ID INTEGER,
R_START_DATE DATE,
R_DAYS INTEGER)
AS
DECLARE VARIABLE V_ID INTEGER;
DECLARE VARIABLE V_FIRE_DATE DATE;
DECLARE VARIABLE V_START_DATE DATE;
begin
for select employes.id from employes order by t_name into :v_id
do begin
v_fire_date = NULL;
v_start_date = NULL;
select max(create_date) from emp_doc where emp_id = :v_id and create_date < :i_date and doc_type = -1 into
:v_fire_date;
if (v_fire_date is null) then begin
select min(create_date) from emp_doc where emp_id = :v_id and create_date < :i_date and doc_type = 1
into :v_start_date;
end else begin
select min(create_date) from emp_doc where emp_id = :v_id and create_date < :i_date and create_date <
:v_fire_date and doc_type = 1 into :v_start_date;
end
r_id = v_id;
r_start_date = v_start_date;
r_days = i_date - v_start_date;
if (v_start_date < i_date-365) then suspend;
end
end
Процедура установки разрешений по правам пользователей
procedure TMainForm.SetSecurity;
var
qry : TIBOQuery;
begin
qry := TIBOQuery.Create(Self);
qry.SQL.Text := 'select * from users where id = '+IntToStr(SystemUser.UserId);
qry.Open;
if qry.FieldByName('can_manage').AsInteger = 1 then mnuUserMan.Enabled := True else mnuUserMan.Enabled
:= False;
CanDelete := qry.FieldByName('can_delete').AsInteger;
CanDeleteDict := qry.FieldByName('can_delete_dict').AsInteger;
if UpperCase(qry.FieldByName('name').AsString) = 'SYSDBA' then mnuArc.Enabled := True else
mnuArc.Enabled := False;
if UpperCase(qry.FieldByName('name').AsString) = 'SYSDBA' then ToolButton5.Enabled := True else
ToolButton5.Enabled := False;
qry.Free;
end;
Процедура вывода отчета «Уволенные сотрудники»
procedure TEmployes.PrintFired;
begin
qryEmployes.Filtered := False;
frEmpDataSet.DataSource := dsEmployes;
filter_type := 0;
qryEmployes.Close;
qryEmployes.SQL.Text := 'select * from employes where status = 0 order by t_name';
qryEmployes.Open;
frEmpReport.LoadFromFile(SystemPath+'\Reports\emp_registry_fired.frf');
frEmpReport.ShowReport;
qryEmployes.Filtered := True;
btnRefreshClick(Self);
end;
Процедура разделения документов по типу в журнале документов
procedure TEmpDocList.tabControlChange(Sender: TObject);
begin
qryEmpDocList.Close;
case tabControl.TabIndex of
0 : qryEmpDocList.SQL.Text := 'select * from emp_doc order by create_date, doc_no, adv_no';
1 : qryEmpDocList.SQL.Text := 'select * from emp_doc where doc_type = 1 order by create_date, doc_no,
adv_no';
2 : qryEmpDocList.SQL.Text := 'select * from emp_doc where doc_type = -1 order by create_date, doc_no,
adv_no';
end;
qryEmpDocList.Open;
end;
Скрипт для создания базы данных
SET SQL DIALECT 3;
SET NAMES WIN1251;
CREATE DATABASE 'LOCALHOST:C:\Projects\Employes\emp.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE 16384
DEFAULT CHARACTER SET WIN1251;
CREATE DOMAIN V_DATE AS
DATE;
CREATE DOMAIN V_DOUBLE AS
NUMERIC(15,4);
CREATE DOMAIN V_DOUBLE_6 AS
NUMERIC(15,6);
CREATE DOMAIN V_INTEGER AS
INTEGER;
CREATE DOMAIN V_TEXT AS
CHAR(80);
CREATE DOMAIN V_TEXT10 AS
CHAR(10);
CREATE DOMAIN V_TEXT128 AS
CHAR(128);
CREATE DOMAIN V_TEXT200 AS
CHAR(200);
CREATE DOMAIN V_TEXT2048 AS
CHAR(2048);
CREATE DOMAIN V_TEXT25 AS
CHAR(25);
CREATE DOMAIN V_TEXT40 AS
CHAR(40);
CREATE DOMAIN V_TIMESTAMP AS
TIMESTAMP;
/******************************************************************************/
/**** Generators ****/
/******************************************************************************/
CREATE GENERATOR GEN_DEPARTAMENT_ID;
CREATE GENERATOR GEN_EMPLOYES_ID;
CREATE GENERATOR GEN_EMP_DOC_ID;
CREATE GENERATOR GEN_EVENTS_ID;
CREATE GENERATOR GEN_JOBS_ID;
CREATE GENERATOR GEN_OPTIONS_ID;
CREATE GENERATOR GEN_USERS_ID;
SET TERM ^ ;
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
CREATE PROCEDURE SELECT_MORE_YEAR (
I_DATE DATE)
RETURNS (
R_ID INTEGER,
R_START_DATE DATE,
R_DAYS INTEGER)
AS
BEGIN
EXIT;
END^
CREATE PROCEDURE SET_DICTIONARY_BY_DOCUMENTS (
I_START_DATE DATE,
I_STOP_DATE DATE)
AS
BEGIN
EXIT;
END^
SET TERM ; ^
/******************************************************************************/
/**** Tables ****/
/******************************************************************************/
CREATE TABLE DEPARTAMENT (
ID V_INTEGER NOT NULL,
NAME V_TEXT40 NOT NULL,
INIT_TIME V_TIMESTAMP DEFAULT 'now' NOT NULL
);
CREATE TABLE EMP_DOC (
ID V_INTEGER NOT NULL,
USER_ID V_INTEGER NOT NULL,
INIT_TIME V_TIMESTAMP DEFAULT 'NOW' NOT NULL,
CREATE_DATE V_DATE,
DOC_TYPE V_INTEGER,
DOC_NO V_INTEGER,
ADV_NO V_INTEGER,
EMP_ID V_INTEGER,
EMP_SALARY V_DOUBLE,
EMP_JOB_ID V_INTEGER,
EMP_DEP_ID V_INTEGER,
STATUS V_INTEGER
);
CREATE TABLE EMPLOYES (
ID V_INTEGER NOT NULL,
F_NAME V_TEXT,
S_NAME V_TEXT,
T_NAME V_TEXT NOT NULL,
BORN_DATE V_DATE,
PASS_SERIES V_TEXT10,
PASS_NO V_TEXT10,
PASS_ORIGIN V_TEXT,
PASS_DATE V_DATE,
PASS_ADDR V_TEXT128,
ADDR V_TEXT128,
WORK_BOOK_NO V_TEXT25,
INN V_TEXT25,
PENS_BOOK_NO V_TEXT25,
MED_BOOK V_TEXT25,
MED_ACCESS V_INTEGER,
EDUCATION V_TEXT,
SPECALISATION V_TEXT,
DEP_ID V_INTEGER DEFAULT 0,
STAT_ID V_INTEGER DEFAULT 0,
STATUS V_INTEGER DEFAULT 0,
GENDER V_INTEGER DEFAULT 0,
SALARY V_DOUBLE DEFAULT 0,
CHILDREN_COUNT V_INTEGER DEFAULT 0,
WORK_START_DATE V_DATE,
WORK_STOP_DATE V_DATE,
WORK_START_ID V_INTEGER DEFAULT 0,
WORK_STOP_ID V_INTEGER DEFAULT 0,
FAMILY_STATUS V_INTEGER DEFAULT
0,
ADD_INFO V_TEXT2048
);
CREATE TABLE EVENTS (
ID V_INTEGER NOT NULL,
USER_NAME V_TEXT40,
WORKSTATION V_TEXT40,
EVENT_ID V_INTEGER,
EVENT_DESC V_TEXT200,
CREATE_DATE V_DATE DEFAULT 'NOW' NOT NULL
);
CREATE TABLE JOBS (
ID V_INTEGER NOT NULL,
NAME V_TEXT40,
SAMPLE_SALARY V_DOUBLE
);
CREATE TABLE OPTIONS (
ID V_INTEGER NOT NULL,
PARAM_NAME V_TEXT25 NOT NULL,
PARAM_VAL V_TEXT40
);
CREATE TABLE USERS (
ID V_INTEGER NOT NULL,
NAME V_TEXT25,
CAN_DELETE V_INTEGER,
CAN_MANAGE V_INTEGER,
CAN_DELETE_DICT V_INTEGER,
CAN_LOGIN V_INTEGER,
USER_NAME V_TEXT
);
/******************************************************************************/
/**** Indices ****/
/******************************************************************************/
CREATE UNIQUE INDEX DEPARTAMENT_ID_IDX ON DEPARTAMENT (ID);
CREATE UNIQUE INDEX DEPARTAMENT_NAME_IDX ON DEPARTAMENT (NAME);
CREATE UNIQUE INDEX EMPLOYES_ID ON EMPLOYES (ID);
CREATE UNIQUE INDEX EMPLOYES_INN ON EMPLOYES (INN);
CREATE UNIQUE INDEX EMPLOYES_PASS ON EMPLOYES (PASS_NO, PASS_SERIES);
CREATE UNIQUE INDEX EMP_DOC_ID ON EMP_DOC (ID);
CREATE INDEX EVENTS_ID ON EVENTS (ID);
CREATE UNIQUE INDEX JOBS_ID ON JOBS (ID);
CREATE UNIQUE INDEX JOBS_NAME ON JOBS (NAME);
CREATE UNIQUE INDEX USERS_ID ON USERS (ID);
CREATE UNIQUE INDEX USERS_NAME ON USERS (NAME);
/******************************************************************************/
/**** Triggers ****/
/******************************************************************************/
SET TERM ^ ;
/* Trigger: DEPARTAMENT_BI */
CREATE TRIGGER DEPARTAMENT_BI FOR DEPARTAMENT
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_DEPARTAMENT_ID,1);
END
^
/* Trigger: EMPLOYES_BI */
CREATE TRIGGER EMPLOYES_BI FOR EMPLOYES
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_EMPLOYES_ID,1);
END
^
/* Trigger: EMP_DOC_BI */
CREATE TRIGGER EMP_DOC_BI FOR EMP_DOC
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_EMP_DOC_ID,1);
END
^
/* Trigger: EVENTS_BI */
CREATE TRIGGER EVENTS_BI FOR EVENTS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_EVENTS_ID,1);
END
^
/* Trigger: JOBS_BI */
CREATE TRIGGER JOBS_BI FOR JOBS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_JOBS_ID,1);
END
^
/* Trigger: OPTIONS_BI */
CREATE TRIGGER OPTIONS_BI FOR OPTIONS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_OPTIONS_ID,1);
END
^
/* Trigger: USERS_BI */
CREATE TRIGGER USERS_BI FOR USERS
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
IF (NEW.ID IS NULL) THEN
NEW.ID = GEN_ID(GEN_USERS_ID,1);
END
^
SET TERM ; ^
/******************************************************************************/
/**** Stored Procedures ****/
/******************************************************************************/
SET TERM ^ ;
ALTER PROCEDURE SELECT_MORE_YEAR (
I_DATE DATE)
RETURNS (
R_ID INTEGER,
R_START_DATE DATE,
R_DAYS INTEGER)
AS
DECLARE VARIABLE V_ID INTEGER;
DECLARE VARIABLE V_FIRE_DATE DATE;
DECLARE VARIABLE V_START_DATE DATE;
begin
for select employes.id from employes order by t_name into :v_id
do begin
v_fire_date = NULL;
v_start_date = NULL;
select max(create_date) from emp_doc where emp_id = :v_id and create_date < :i_date and doc_type =
-1 into :v_fire_date;
if (v_fire_date is null) then begin
select min(create_date) from emp_doc where emp_id = :v_id and create_date < :i_date and doc_type
= 1 into :v_start_date;
end else begin
select min(create_date) from emp_doc where emp_id = :v_id and create_date < :i_date and create_date < :v_fire_date and doc_type = 1 into :v_start_date;
end
r_id = v_id;
r_start_date = v_start_date;
r_days = i_date - v_start_date;
if (v_start_date < i_date-365) then suspend;
end
end
^
ALTER PROCEDURE SET_DICTIONARY_BY_DOCUMENTS (
I_START_DATE DATE,
I_STOP_DATE DATE)
AS
DECLARE VARIABLE V_ID INTEGER;
DECLARE VARIABLE V_DOC_TYPE INTEGER;
DECLARE VARIABLE V_CREATE_DATE DATE;
DECLARE VARIABLE V_DOC_NO INTEGER;
DECLARE VARIABLE V_ADV_NO INTEGER;
DECLARE VARIABLE V_EMP_ID INTEGER;
DECLARE VARIABLE V_EMP_SALARY NUMERIC(15,4);
DECLARE VARIABLE V_EMP_JOB_ID INTEGER;
DECLARE VARIABLE V_EMP_DEP_ID INTEGER;
DECLARE VARIABLE V_STATUS INTEGER;
DECLARE VARIABLE V_TEMP_START_DATE DATE;
DECLARE VARIABLE V_TEMP_STOP_DATE DATE;
begin
for select ID, doc_type, CREATE_DATE, DOC_NO, ADV_NO, EMP_ID, EMP_SALARY, EMP_JOB_ID, EMP_DEP_ID, STATUS
from emp_doc
where create_date between :i_start_date and :i_stop_date
order by create_date
into :V_ID, :V_doc_type, :V_CREATE_DATE, :V_DOC_NO, :V_ADV_NO, :V_EMP_ID, :V_EMP_SALARY, :V_EMP_JOB_ID, :V_EMP_DEP_ID, :V_STATUS
do begin
select work_start_date, work_stop_date from employes where id = :V_EMP_ID into :v_temp_start_date,
:v_temp_stop_date;
if (v_doc_type = -1) then begin
update employes set salary = 0,
status = 0,
dep_id = 0,
stat_id = 0
where id = :v_emp_id;
update employes set work_stop_date = :v_create_date, work_stop_id = :v_id
where id = :v_emp_id;
end
if (v_doc_type = 1) then begin
update employes set salary = :v_emp_salary,
status = :v_doc_type,
dep_id = :V_EMP_DEP_ID,
stat_id = :v_emp_job_id
where id = :v_emp_id;
if (v_temp_start_date is null) then update employes set work_start_date = :v_create_date,
work_start_id = :v_id where id = :v_emp_id;
if (v_create_date < v_temp_start_date) then update employes set work_start_date =
:v_create_date, work_start_id = :v_id where id = :v_emp_id;
end
end
end
^
SET TERM ; ^
Размещено на http://www.allbest.ru/
Подобные документы
Роль инструментальных средств проектирования в создании информационной системы. Преимущества CASE-средств разработки Bpwin и Erwin, системы поиска, исправления ошибок модели данных Model Validator. Разработка модели процессов документооборота предприятия.
контрольная работа [2,2 M], добавлен 24.06.2012Системы автоматического проектирования. Сравнительный анализ средств для проектирования автоматизированных информационных систем. Экспорт SQL-кода в физическую среду и наполнение базы данных содержимым. Этапы развития и характеристика Case-средств.
курсовая работа [1,1 M], добавлен 14.11.2017Классификация автоматизированных информационных систем (АИС). Проектирование АИС складского учета с использованием CASE-средства Rational Rose. Подходы к проектированию, анализ CASE-средств. Программная реализация профессионально ориентированной АИС.
курсовая работа [1,4 M], добавлен 06.03.2012Разработка автоматизированной системы с использованием программных продуктов: 1С: Предприятие 8.2 (для создания автоматизированной системы) и CASE средство BPwin (для проектирования структуры системы). Обучение пользователей работе с конфигурацией.
курсовая работа [3,6 M], добавлен 04.11.2014Построение функциональной и информационной моделей с использованием программ BPWin и ERWin. Описания интерфейса и элементов панели инструментов. Создание реляционной базы данных с помощью Microsoft Access. Разработка проекта федеральной целевой программы.
курсовая работа [703,3 K], добавлен 26.02.2014Анализ предметной области "строительная фирма". Обоснование прикладного программного обеспечения (CA ERwin Data Modeler) для моделирования процессов. Структурно-функциональная модель "Как есть" и "Как надо". Реализация модели помощью средств BPWin.
курсовая работа [539,5 K], добавлен 10.06.2014Основные понятия и элементы ER-модели в нотации CASE-средства ERwin. Жизненный цикл программного изделия и его этапы. Понятие структурного анализа. Физический уровень представления БД. Уникальные идентификаторы типов сущности. Построение моделей в ERwin.
методичка [269,7 K], добавлен 08.02.2012Анализ функциональной структуры автоматизированной системы управления. Обоснование необходимости создания подсистемы учета материальных средств, проектирование информационной базы данных. Расчет себестоимости разработки внедряемого программного продукта.
дипломная работа [5,4 M], добавлен 26.06.2011Описание предметной области разрабатываемой базы данных для теннисного клуба. Обоснование выбора CASE-средства Erwin 8 и MS Access для проектирования базы данных. Построение инфологической модели и логической структуры базы данных, разработка интерфейса.
курсовая работа [3,8 M], добавлен 02.02.2014Использование CASE-средств для моделирования деловых процессов; совершенствование проектирования информационных систем с помощью программного пакета CA ERwin Modeling Suite: характеристики, возможности визуализации структуры данных и среды развертывания.
реферат [970,5 K], добавлен 20.03.2012