CASE средство Designer/2000

Автор работы: Пользователь скрыл имя, 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
Список использованных источников………

Файлы: 1 файл

рпз_прис.docx

— 3.80 Мб (Скачать файл)

          dm.com.Execute;

          end

        else

          begin

          dm.com.CommandText:='update rCen set cena_rc="'+e2.Text+'",ocena_rc="'+tmpc+'" where id_rc='+dm.temp.Fields[0].AsString+'';

          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;tm:=1;

//******************************

if fmain.Update('rr','remr')=false then

  begin

  showmessage('Данная запись используется  другим пользователем');

  exit;

  end;

//******************************

 

 

e1.Text:=dm.rr.fieldbyname('nazv_rr').AsString;

e2.Text:=dm.rr.fieldbyname('st_rr').AsString;

e3.Text:=dm.rr.fieldbyname('edi_rr').AsString;

tmpc:=dm.rr.fieldbyname('st_rr').AsString;

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;tm:=1;

if fmain.Delete('rr','remr',tmp)=false then

  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_iconquestion)=idyes then

  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,ob_nr,st_nr from naznR,Remr where (id_rr=id_rr_nr) and (id_za_nr='+tmp+')';

dm.nr.Active:=true;

fnaznr.ShowModal;

end;

 

end.

procedure TFZayavka.BitBtn2Click(Sender: TObject);

begin

dtp1.date:=date;dtp2.Date:=date;cb1.Clear;

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:=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[0].AsString);

  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].asstring;

  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;tm:=1;

//******************************

if fmain.Update('za','zayavka')=false then

  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[0].AsString);

  dm.temp.Next;

  end;

 

dtp1.Date:=dm.za.fieldbyname('dataz_za').AsDateTime;

cb1.Text:=dm.za.fieldbyname('adr').AsString;

e1.Text:=dm.za.fieldbyname('soder_za').AsString;

dtp2.Date:=dm.za.fieldbyname('datapv_za').AsDateTime;

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;tm:=1;

if fmain.Delete('za','zayavka',tmp)=false then

  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.date)+'#)';

    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,soder_za) values ('+id_zl+',"'+datetostr(dtp1.Date)+'","'+datetostr(dtp2.Date)+'","'+e1.Text+'")';

      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.date)+'#)';

    dm.temp.Active:=true;

    if (dm.temp.RecordCount>0) and (tmp<>dm.temp.Fields[0].asstring) then showmessage('Подобная запись уже существует')

    else

      begin

      dm.com.CommandText:='Update zayavka SET id_zl_za="'+id_zl+'",dataz_za="'+datetostr(dtp1.Date)+'",datapv_za="'+datetostr(dtp2.date)+'",soder_za="'+e1.Text+'" WHERE (id_za='+tmp+')';

      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(Sender: TObject; var CanClose: Boolean);

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_za from zayavka,zil,zilci where (id_z=id_z_zl) and (id_zl=id_zl_za) and (datav_za is null)  and (dataot_za is null)';

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_za from zayavka,zil,zilci where (id_z=id_z_zl) and (id_zl=id_zl_za) and (([adr_z]&", кв. "&[kv_zl]) like "%'+tmp+'%")  and (datav_za is null)  and (dataot_za is null)';

    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_za from zayavka,zil,zilci where (id_z=id_z_zl) and (id_zl=id_zl_za) and (datav_za is null)  and (dataot_za is null) ORDER BY dataz_za';

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_za from zayavka,zil,zilci where (id_z=id_z_zl) and (id_zl=id_zl_za) and (datav_za is null)  and (dataot_za is null) ORDER BY datapv_za';

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:=fnaznr.PopupMenu1;

dm.nr.Active:=false;

dm.nr.CommandText:='Select id_nr,nazv_rr,edi_rr,st_rr_nr,st_rr,ob_nr,st_nr from naznR,Remr where (id_rr=id_rr_nr) and (id_za_nr='+tmp+')';

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_iconquestion)=idyes then

  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="'+tmp2+'" where (id_za='+tmp+')';

      dm.com.Execute;

      showmessage('Заявка отклонена');

      dm.za.Requery();

      end;

    end;

  end;

end;

 

end.

rocedure TFZil.BitBtn2Click(Sender: TObject);

begin

e1.Clear;e2.Clear;cb1.Text:='';cb2.Text:='';cb3.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)),-2) );

  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_z) values ("'+e1.Text+'","'+cb1.Text+'","'+cb2.Text+'","'+e2.Text+'","'+cb3.Text+'")';

      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].asstring) then showmessage('Подобная запись уже существует')

    else

      begin

      dm.com.CommandText:='Update zil SET adr_z="'+e1.Text+'",tdom_z="'+cb1.Text+'",tkr_z="'+cb2.Text+'",pl_z="'+e2.Text+'",lift_z="'+cb3.Text+'" WHERE (id_z='+tmp+')';

      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;tm:=1;

//******************************

if fmain.Update('z','zil')=false then

  begin

  showmessage('Данная запись используется  другим пользователем');

  exit;

  end;

//******************************

e1.Text:=dm.z.fieldbyname('adr_z').AsString;

cb1.Text:=dm.z.fieldbyname('tdom_z').AsString;

cb2.Text:=dm.z.fieldbyname('tkr_z').AsString;

cb3.Text:=dm.z.fieldbyname('lift_z').AsString;

e2.Text:=dm.z.fieldbyname('pl_z').AsString;

 

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;tm:=1;

if fmain.Delete('z','zil',tmp)=false then

  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+'%")';

Информация о работе CASE средство Designer/2000