Автор работы: Пользователь скрыл имя, 07 Апреля 2014 в 22:21, курсовая работа
Данная курсовая работа посвящена теоретическому изучению CASE-средства Designer/2000 фирмы ORACLE и разработке информационной системы для автоматизации учета ремонта жилищного фонда в муниципальном жилищно-ремонтном эксплуатационном предприятии.
Задачи, поставленные в курсовой работе:
- изучение назначения и основных характеристик case средства Designer/2000;
- анализ предметной области для разработки ИС;
- определение целей и задач системы;
- построение моделей данных;
- разработка БД и клиентского приложения;
- закрепление и развитие теоретических знаний по проектированию ИС;
- приобретение практических навыков разработки ИС.
Введение……………………………………………………………......................3
1 Теоретическая часть. CASE средство Designer/2000………………………....5
2 Проектная часть…………………………………………………………………8
2.1 Постановка задач……………………………………………………………...8
2.2 Анализ предметной области………………………………………………….9
2.3 Функциональная модель по стандарту IDEF0 и методологии SADT…....11
2.4 Модель данных по стандарту IDEF1X диаграммы “сущность-связь”…...13
2.5 Описание таблиц базы данных………………………………………….......14
2.5 Описание таблиц базы данных……………………………………………...16
2.7 Схема взаимосвязей модулей и массивов данных ………………………..17
2.8Алгоритм работы модуля dati………………………………………………..18 2.9 Инструкция пользователя…………………………………………………...19
2.10 Способы и результаты тестирования программного продукта………….20
Заключение……………………………………………………………………….23
Список использованных источников………
dm.com.Execute;
end
else
begin
dm.com.CommandText:='update
rCen set cena_rc="'+e2.Text+'",ocena_
dm.com.Execute;
end;
end;
showmessage('Запись успешно изменена');
dm.rr.Requery();
BitBtn2Click(Sender);
end;
end;
end;
end;
procedure TFremR.N1Click(Sender: TObject);
begin
panel1.Visible:=true;
tm:=0;
end;
procedure TFremR.N2Click(Sender: TObject);
begin
if dm.rr.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.rr.Fields[0].AsString;
//****************************
if fmain.Update('rr','remr')=
begin
showmessage('Данная запись
exit;
end;
//****************************
e1.Text:=dm.rr.fieldbyname('
e2.Text:=dm.rr.fieldbyname('
e3.Text:=dm.rr.fieldbyname('
tmpc:=dm.rr.fieldbyname('st_
panel1.Visible:=true;
end;
procedure TFremR.N4Click(Sender: TObject);
begin
if dm.rr.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.rr.Fields[0].AsString;
if fmain.Delete('rr','remr',tmp)=
begin
showmessage('Данная запись
exit;
end
else dm.rr.Requery();
end;
procedure TFremR.N7Click(Sender: TObject);
begin
dm.rr.Active:=false;
dm.rr.CommandText:='Select id_rr,nazv_rr,st_rr,edi_rr from RemR';
dm.rr.Active:=true;
end;
procedure TFremR.N6Click(Sender: TObject);
begin
tmp:='';
while trim(tmp)='' do
begin
tmp:=inputbox(n6.Caption,'
if trim(tmp)='' then showmessage('Задайте фильтр')
else
begin
dm.rr.Active:=false;
dm.rr.CommandText:='Select id_rr,nazv_rr,st_rr,edi_rr from RemR where (nazv_rr like "%'+tmp+'%")';
dm.rr.Active:=true;
end;
end;
end;
procedure TFremR.N9Click(Sender: TObject);
begin
dm.rr.Active:=false;
dm.rr.CommandText:='Select id_rr,nazv_rr,st_rr,edi_rr from RemR order by st_rr';
dm.rr.Active:=true;
end;
end.
procedure TFVipZ.N6Click(Sender: TObject);
begin
tmp:='';
while trim(tmp)='' do
begin
tmp:=inputbox(n6.Caption,'
if trim(tmp)='' then showmessage('Задайте фильтр')
else
begin
dm.vz.Active:=false;
dm.vz.CommandText:='Select id_za, ([adr_z]&", кв. "&[kv_zl]) as adr,soder_za,datav_za, sum(st_nr) as summa from zayavka,zil,zilci,naznR '+
'where (id_z=id_z_zl) and (id_zl=id_zl_za) and (id_za=id_za_nr) and (datav_za is not NULL) and (([adr_z]&", кв. "&[kv_zl]) like "%'+tmp+'%") GROUP BY id_za, ([adr_z]&", кв. "&[kv_zl]) ,soder_za,datav_za';
dm.vz.Active:=true;
end;
end;
end;
procedure TFVipZ.N7Click(Sender: TObject);
begin
dm.vz.Active:=false;
dm.vz.CommandText:='Select id_za, ([adr_z]&", кв. "&[kv_zl]) as adr,soder_za,datav_za, sum(st_nr) as summa from zayavka,zil,zilci,naznR '+
'where (id_z=id_z_zl) and (id_zl=id_zl_za) and (id_za=id_za_nr) and (datav_za is not NULL) GROUP BY id_za, ([adr_z]&", кв. "&[kv_zl]) ,soder_za,datav_za';
dm.vz.Active:=true;
end;
procedure TFVipZ.N9Click(Sender: TObject);
begin
dm.vz.Active:=false;
dm.vz.CommandText:='Select id_za, ([adr_z]&", кв. "&[kv_zl]) as adr,soder_za,datav_za, sum(st_nr) as summa from zayavka,zil,zilci,naznR '+
'where (id_z=id_z_zl) and (id_zl=id_zl_za) and (id_za=id_za_nr) and (datav_za is not NULL) GROUP BY id_za, ([adr_z]&", кв. "&[kv_zl]) ,soder_za,datav_za ORDER BY datav_za';
dm.vz.Active:=true;
end;
procedure TFVipZ.N13Click(Sender: TObject);
begin
if dm.vz.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.vz.Fields[0].AsString;
if application.MessageBox('Вы хотите отменить выполнение
заявки?','Заявка',mb_yesno+mb_
begin
dm.com.CommandText:='UPDATE zayavka SET datav_za= NULL where (id_za='+tmp+')';
dm.com.Execute;
showmessage('Выполнение заявки отменено');
dm.vz.Requery();
end;
end;
procedure TFVipZ.N2Click(Sender: TObject);
begin
if dm.vz.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.vz.Fields[0].AsString;
fnaznr.Caption:=n2.Caption;
fnaznr.DBGrid1.PopupMenu:=nil;
dm.nr.Active:=false;
dm.nr.CommandText:='Select id_nr,nazv_rr,st_rr_nr,st_rr,
dm.nr.Active:=true;
fnaznr.ShowModal;
end;
end.
procedure TFZayavka.BitBtn2Click(Sender: TObject);
begin
dtp1.date:=date;dtp2.Date:=
if tm=1 then
begin
dm.com.CommandText:='Update zayavka set log_za=FALSE WHERE (id_za='+tmp+')';
dm.com.Execute;
end;
if id_zl<>'' then
begin
dm.com.CommandText:='Update zilci set log_zl=false WHERE id_zl='+id_zl+'';
dm.com.Execute;
id_zl:='';
end;
panel1.Visible:=false;
end;
procedure TFZayavka.N1Click(Sender: TObject);
begin
panel1.Visible:=true;
tm:=0;
cb1.Clear; dtp1.date:=date;dtp2.Date:=
dm.temp.Active:=false;
dm.temp.CommandText:='Select ([adr_z]&", кв. "&[kv_zl]) from zil,zilci WHERE (id_z=id_z_zl) order by adr_z,kv_zl';
dm.temp.Active:=true;
While not dm.temp.Eof do
begin
cb1.Items.Add(dm.temp.Fields[
dm.temp.Next;
end;
end;
procedure TFZayavka.cb1Change(Sender: TObject);
begin
if id_zl<>'' then
begin
dm.com.CommandText:='Update zilci set log_zl=false WHERE id_zl='+id_zl+'';
dm.com.Execute;
id_zl:='';
end;
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_zl from zil,zilci WHERE (id_z=id_z_zl)AND (([adr_z]&", кв. "&[kv_zl])="'+cb1.Text+'") and (log_zl=false)';
dm.temp.Active:=true;
if dm.temp.RecordCount=0 then
begin
showmessage('Текущая запись
cb1.Text:='';
end
else
begin
id_zl:=dm.temp.fields[0].
dm.com.CommandText:='Update zilci set log_zl=true WHERE id_zl='+id_zl+'';
dm.com.Execute;
end;
end;
procedure TFZayavka.N2Click(Sender: TObject);
begin
if dm.za.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.za.Fields[0].AsString;
//****************************
if fmain.Update('za','zayavka')=
begin
showmessage('Данная запись
exit;
end;
//****************************
cb1.Clear;
dm.temp.Active:=false;
dm.temp.CommandText:='Select ([adr_z]&", кв. "&[kv_zl]) from zil,zilci WHERE (id_z=id_z_zl) order by adr_z,kv_zl';
dm.temp.Active:=true;
While not dm.temp.Eof do
begin
cb1.Items.Add(dm.temp.Fields[
dm.temp.Next;
end;
dtp1.Date:=dm.za.fieldbyname('
cb1.Text:=dm.za.fieldbyname('
e1.Text:=dm.za.fieldbyname('
dtp2.Date:=dm.za.fieldbyname('
cb1Change(Sender);
panel1.Visible:=true;
end;
procedure TFZayavka.N4Click(Sender: TObject);
begin
if dm.za.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.za.Fields[0].AsString;
if fmain.Delete('za','zayavka',
begin
showmessage('Данная запись
exit;
end
else dm.za.Requery();
end;
procedure TFZayavka.BitBtn1Click(Sender: TObject);
begin
if (cb1.Text='') then showmessage('Вы не заполнили одно или несколько полей')
else
begin
if dtp1.Date>dtp2.Date then
begin
showmessage('Неправильная
exit;
end;
if tm=0 then
begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_za from zayavka
where (id_zl_za='+id_zl+') and (dataz_za=#'+fmain.data(dtp1.
dm.temp.Active:=true;
if dm.temp.RecordCount>0 then showmessage('Подобная запись уже существует')
else
begin
dm.com.CommandText:='Insert into zayavka
(id_zl_za,dataz_za,datapv_za,
dm.com.Execute;
showmessage('Запись успешно добавлена');
dm.za.Requery();
BitBtn2Click(Sender);
end;
end
else
begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_za from zayavka
where (id_zl_za='+id_zl+') and (dataz_za=#'+fmain.data(dtp1.
dm.temp.Active:=true;
if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].
else
begin
dm.com.CommandText:='Update zayavka
SET id_zl_za="'+id_zl+'",dataz_za=
dm.com.Execute;
showmessage('Запись успешно изменена');
dm.za.Requery();
BitBtn2Click(Sender);
end;
end;
end;
end;
procedure TFZayavka.cb1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;
procedure TFZayavka.FormCloseQuery(
begin
if panel1.Visible=true then
begin
BitBtn2Click(Sender);
end;
end;
procedure TFZayavka.N7Click(Sender: TObject);
begin
dm.za.Active:=false;
dm.za.CommandText:='Select id_za, ([adr_z]&", кв. "&[kv_zl])
as adr,soder_za,dataz_za,datapv_
dm.za.Active:=true;
end;
procedure TFZayavka.N6Click(Sender: TObject);
begin
tmp:='';
while trim(tmp)='' do
begin
tmp:=inputbox(n6.Caption,'
if trim(tmp)='' then showmessage('Задайте фильтр')
else
begin
dm.za.Active:=false;
dm.za.CommandText:='Select id_za, ([adr_z]&",
кв. "&[kv_zl]) as adr,soder_za,dataz_za,datapv_
dm.za.Active:=true;
end;
end;
end;
procedure TFZayavka.N9Click(Sender: TObject);
begin
dm.za.Active:=false;
dm.za.CommandText:='Select id_za, ([adr_z]&", кв. "&[kv_zl])
as adr,soder_za,dataz_za,datapv_
dm.za.Active:=true;
end;
procedure TFZayavka.N10Click(Sender: TObject);
begin
dm.za.Active:=false;
dm.za.CommandText:='Select id_za, ([adr_z]&", кв. "&[kv_zl])
as adr,soder_za,dataz_za,datapv_
dm.za.Active:=true;
end;
procedure TFZayavka.N11Click(Sender: TObject);
begin
if dm.za.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.za.Fields[0].AsString;
fnaznr.Caption:=n11.Caption;
fnaznr.DBGrid1.PopupMenu:=
dm.nr.Active:=false;
dm.nr.CommandText:='Select id_nr,nazv_rr,edi_rr,st_rr_nr,
dm.nr.Active:=true;
fnaznr.ShowModal;
end;
procedure TFZayavka.N15Click(Sender: TObject);
begin
if dm.za.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.za.Fields[0].AsString;
dm.temp.Active:=false;
dm.temp.CommandText:='Select * from naznR where (id_za_nr='+tmp+')';
dm.temp.Active:=true;
if dm.temp.RecordCount=0 then showmessage('Невозможно выполнить заявку'+#13+'Вы не назначили ни одной работы!')
else
begin
dm.com.CommandText:='UPDATE zayavka SET datav_za=date() where (id_za='+tmp+')';
dm.com.Execute;
showmessage('Заявка выполнена');
dm.za.Requery();
end;
end;
procedure TFZayavka.N13Click(Sender: TObject);
begin
if dm.za.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.za.Fields[0].AsString;
if application.MessageBox('Вы хотите отклонить заявку?','Заявка',mb_yesno+mb_
begin
tmp2:='';
while trim(tmp2)='' do
begin
tmp2:=inputbox(n13.Caption,'
if trim(tmp2)='' then showmessage('Задайте причину отказа')
else
begin
dm.com.CommandText:='UPDATE zayavka
SET dataot_za=date(),prich_za="'+
dm.com.Execute;
showmessage('Заявка отклонена');
dm.za.Requery();
end;
end;
end;
end;
end.
rocedure TFZil.BitBtn2Click(Sender: TObject);
begin
e1.Clear;e2.Clear;cb1.Text:=''
if tm=1 then
begin
dm.com.CommandText:='Update zil set log_z=FALSE WHERE (id_z='+tmp+')';
dm.com.Execute;
end;
panel1.Visible:=false;
end;
procedure TFZil.BitBtn1Click(Sender: TObject);
begin
if (e1.Text='') or (e2.Text='') or (cb1.Text='') or (cb2.Text='') or (cb3.text='') then showmessage('Вы не заполнили одно или несколько полей')
else
begin
try
e2.Text:=floattostr( roundto(strtofloat((e2.Text)),
except
showmessage('Некорректный
exit;
end;
if tm=0 then
begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_z from zil where (adr_z="'+e1.Text+'")';
dm.temp.Active:=true;
if dm.temp.RecordCount>0 then showmessage('Подобная запись уже существует')
else
begin
dm.com.CommandText:='Insert into Zil
(adr_z,tdom_z,tkr_z,pl_z,lift_
dm.com.Execute;
showmessage('Запись успешно добавлена');
dm.z.Requery();
BitBtn2Click(Sender);
end;
end
else
begin
dm.temp.Active:=false;
dm.temp.CommandText:='Select id_z from zil where (adr_z="'+e1.Text+'")';
dm.temp.Active:=true;
if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].
else
begin
dm.com.CommandText:='Update zil SET
adr_z="'+e1.Text+'",tdom_z="'+
dm.com.Execute;
showmessage('Запись успешно изменена');
dm.z.Requery();
BitBtn2Click(Sender);
end;
end;
end;
end;
procedure TFZil.cb1KeyPress(Sender: TObject; var Key: Char);
begin
key:=#0;
end;
procedure TFZil.N1Click(Sender: TObject);
begin
panel1.Visible:=true;
tm:=0;
end;
procedure TFZil.N2Click(Sender: TObject);
begin
if dm.z.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.z.Fields[0].AsString;
//****************************
if fmain.Update('z','zil')=false then
begin
showmessage('Данная запись
exit;
end;
//****************************
e1.Text:=dm.z.fieldbyname('
cb1.Text:=dm.z.fieldbyname('
cb2.Text:=dm.z.fieldbyname('
cb3.Text:=dm.z.fieldbyname('
e2.Text:=dm.z.fieldbyname('pl_
panel1.Visible:=true;
end;
procedure TFZil.N4Click(Sender: TObject);
begin
if dm.z.Fields[0].AsString='' then
begin
showmessage('Запись для
exit;
end;
tmp:=dm.z.Fields[0].AsString;
if fmain.Delete('z','zil',tmp)=
begin
showmessage('Данная запись
exit;
end
else dm.z.Requery();
end;
procedure TFZil.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if panel1.Visible=true then
begin
BitBtn2Click(Sender);
end;
end;
procedure TFZil.N6Click(Sender: TObject);
begin
tmp:='';
while trim(tmp)='' do
begin
tmp:=inputbox(n6.Caption,'
if trim(tmp)='' then showmessage('Задайте фильтр')
else
begin
dm.z.Active:=false;
dm.z.CommandText:='select id_z, adr_z, tdom_z, tkr_z, pl_z, lift_z from Zil WHERE (adr_z like "%'+tmp+'%")';