Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Отчет по практике (пример).docx
Скачиваний:
11
Добавлен:
22.09.2019
Размер:
262.99 Кб
Скачать

4. Инструкция пользователя

Программа предназначена для учета устройств и материальных ценностей.

Вид главного окна (см. рисунок 9):

Рисунок 9 Главное окно программы

Как выполнить добавление/редактирование устройства или материальной ценности.

Добавление и редактирование информации об устройствах происходит по одному и тому же принципу, который заключается в вызове формы и ввода информации в определенные поля. Данная форма (см. рисунок 10) вызывается через контекстное меню таблицы с данными..

Рисунок 10 Форма добавления устройства.

Как выполнить удаление записи об устройстве или материальной ценности.

Чтобы выполнить удаление записи об устройстве или материальной ценности, нужно выбрать эту запись, щелкнуть по ней правой кнопкой мыши и в контекстном меню выбрать команду «Удалить» (см. рисунок 11).

Рисунок 11 Удаление записей

Как выполнить добавление, изменение и удаление информации в справочниках.

Чтобы удалить запись из справочника достаточно щелкнуть левой кнопкой мыши на кнопке с изображением «минуса»

Чтобы изменить запись, просто нужно изменить текст этой записи и нажать на кнопку с «галочкой»

Чтобы добавить информацию в справочник нужно нажать кнопку с «плюсом» , ввести информацию и нажать на кнопку с галочкой для сохранения или на кнопку с таким изображением для отмены.

Рисунок 12 Вид окна справочника

Поиск информации

Поиск для устройств и материальных ценностей осуществляется по их названию, для этого нужно ввести его в соответствующее поле. Из таблицы с основными данными будут удалены записи, несоответствующие условиям поиска (см. рисунок 13).

Рисунок 13 Поиск информации

Составление отчетов

Программа может составить отчет по типам устройств и по материальным ценностям. Для этого нужно выбрать соответствующий пункт в главном меню. Файл с отчетом в html-формате будет сохранен в папке с программой, и автоматически открыт браузером системы.

«О программе» и выход из программы

В пункте главного меню «о программе» можно нажать на кнопку «Закрыть». Для выхода из программы можно выбрать пункт меню «Выход» во вкладке «Файл».

5. Исходный код процедур и функций

Процедуры модуля umain:

procedure Tfmain.eobjnameChange(Sender: TObject);

begin

dm.filterobj.Execute;

fmain.sbobj.Panels[0].text:='Количество устройств - '+inttostr(dm.tobj.recordcount);

end;

procedure Tfmain.emcnameChange(Sender: TObject);

begin

dm.filtermc.execute;

fmain.sbmc.panels[0].Text:='Количество материальных ценностей - '+inttostr(dm.tmc.recordcount);

end;

procedure Tfmain.FormActivate(Sender: TObject);

begin

dm.fmainactivate.Execute;

end;

Процедуры модуля udm:

procedure Tdm.exitExecute(Sender: TObject);

begin

fmain.close;

end;

procedure Tdm.fmainactivateExecute(Sender: TObject);

begin

fmain.pcmain.activepageindex:=0;

fmain.sbobj.Panels[0].Text:=

'Количество устройств - '+inttostr(dm.tobj.RecordCount);

fmain.sbmc.panels[0].text:=

'Количество материальных ценностей - '+inttostr(dm.tmc.RecordCount);

end;

procedure Tdm.aboutopenExecute(Sender: TObject);

begin

fabout.labout.Caption:= 'Программа учета устройств и' +#13+

'материальных ценностей.';

fabout.ShowModal;

end;

procedure Tdm.aboutcloseExecute(Sender: TObject);

begin

fabout.Close;

end;

procedure Tdm.filterobjExecute(Sender: TObject);

var str:string;

begin

if (fmain.eobjname.Text='')

then str:='';

if (fmain.eobjname.Text<>'')

then str:='objname like '+quotedstr('%'+fmain.eobjname.Text+'%');

if str<>'' then

begin

dm.tobj.Filter:=str;

dm.tobj.Filtered:=true;

end

else

dm.tobj.Filtered:=false;

end;

procedure Tdm.filtermcExecute(Sender: TObject);

var str:string;

begin

if (fmain.emcname.Text='')

then str:='';

if (fmain.emcname.Text<>'')

then str:='mcname like '+quotedstr('%'+fmain.emcname.Text+'%');

if str<>'' then

begin

dm.tmc.Filter:=str;

dm.tmc.Filtered:=true;

end

else

dm.tmc.Filtered:=false;

end;

procedure Tdm.depopenExecute(Sender: TObject);

begin

fspr.Caption:='Подразделения';

fspr.dbgspr.DataSource:=dm.dsvdep;

fspr.dbnspr.datasource:=dm.dsvdep;

fspr.dbgspr.Columns.Clear;

fspr.dbgspr.Columns.Add;

fspr.dbgspr.Columns[0].Field:=dm.tvdepdepname;

dm.rcount.Execute;

fspr.ShowModal;

end;

procedure Tdm.tvdepAfterPost(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.tvdepAfterDelete(DataSet: TDataSet);

begin

dm.rcount.execute;

end;

procedure Tdm.placeopenExecute(Sender: TObject);

begin

fspr.Caption:='Кабинеты';

fspr.dbgspr.DataSource:=dm.dsvplace;

fspr.dbnspr.DataSource:=dm.dsvplace;

fspr.dbgspr.Columns.Clear;

fspr.dbgspr.columns.Add;

fspr.dbgspr.columns[0].Field:=dm.tvplaceplacename;

dm.rcount.Execute;

fspr.ShowModal;

end;

procedure Tdm.tvplaceAfterPost(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.tvplaceAfterDelete(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.tipopenExecute(Sender: TObject);

begin

fspr.caption:='Типы устройств';

fspr.dbgspr.datasource:=dm.dsvtip;

fspr.dbnspr.DataSource:=dm.dsvtip;

fspr.dbgspr.Columns.Clear;

fspr.dbgspr.Columns.add;

fspr.dbgspr.columns[0].Field:=dm.tvtiptipname;

dm.rcount.Execute;

fspr.ShowModal;

end;

procedure Tdm.tvtipAfterPost(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.tvtipAfterDelete(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.menopenExecute(Sender: TObject);

begin

fspr.caption:='Пользователи';

fspr.dbgspr.datasource:=dm.dsvmen;

fspr.dbnspr.DataSource:=dm.dsvmen;

fspr.dbgspr.columns.clear;

fspr.dbgspr.columns.add;

fspr.dbgspr.columns[0].field:=dm.tvmenfiomen;

dm.rcount.Execute;

fspr.ShowModal;

end;

procedure Tdm.tvmenAfterPost(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.tvmenAfterDelete(DataSet: TDataSet);

begin

dm.rcount.execute;

end;

procedure Tdm.ipopenExecute(Sender: TObject);

begin

fspr.caption:='IP-адреса';

fspr.dbgspr.datasource:=dm.dsviponly;

fspr.dbnspr.datasource:=dm.dsviponly;

fspr.dbgspr.Columns.clear;

fspr.dbgspr.Columns.add;

fspr.dbgspr.Columns[0].field:=dm.tviponlyipname;

dm.rcount.Execute;

fspr.showmodal;

end;

procedure Tdm.tviponlyAfterPost(DataSet: TDataSet);

begin

dm.rcount.Execute;

end;

procedure Tdm.tviponlyAfterDelete(DataSet: TDataSet);

begin

dm.rcount.execute;

end;

procedure Tdm.fsprcloseExecute(Sender: TObject);

begin

if (fspr.dbgspr.DataSource.DataSet.State=dsEdit) or

(fspr.dbgspr.DataSource.DataSet.State=dsInsert)

then fspr.dbgspr.DataSource.DataSet.Cancel;

end;

procedure Tdm.rcountExecute(Sender: TObject);

begin

fspr.sbspr.Panels[0].text:=

'Количество записей - '+inttostr(fspr.dbgspr.DataSource.DataSet.RecordCount);

end;

procedure Tdm.fobjinsertExecute(Sender: TObject);

begin

fobj.Caption:='Добавить устройство';

dm.tobj.Insert;

fobj.ShowModal;

end;

procedure Tdm.fobjeditExecute(Sender: TObject);

begin

fobj.caption:='Изменить информацию';

dm.tobj.Edit;

fobj.showmodal;

end;

procedure Tdm.objdeleteExecute(Sender: TObject);

begin

if Application.MessageBox(pchar('Удалить данные?'), 'Устройства' , MB_YESNO)=IDYES

then begin

dm.tobj.Delete;

Application.MessageBox(pchar('Данные удалены.'), 'Устройства', MB_OK);

end;

end;

procedure Tdm.fobjsaveExecute(Sender: TObject);

begin

if not dm.tobjidtip.IsNull then

if not dm.tobjobjname.IsNull then

if not dm.tobjnobj.IsNull then

begin

dm.tobj.Post;

fobj.Close;

end

else Application.MessageBox(pchar('Не указан серийный номер.'), 'Устройства', MB_OK)

else Application.MessageBox(pchar('Не указано имя устройства.'), 'Устройства', MB_OK)

else Application.MessageBox(pchar('Не выбран тип устройства.'), 'Устройства', MB_OK);

end;

procedure Tdm.fobjcancelExecute(Sender: TObject);

begin

fobj.Close;

end;

procedure Tdm.fobjcloseExecute(Sender: TObject);

begin

if (dm.tobj.State=dsInsert)or(dm.tobj.State=dsEdit)

then dm.tobj.Cancel;

end;

procedure Tdm.objrefreshExecute(Sender: TObject);

begin

dm.tobj.Close;

dm.tobj.open;

dm.tobjplace.Close;

dm.tobjplace.open;

dm.tipcomp.Close;

dm.tipcomp.Open;

dm.tobjuse.close;

dm.tobjuse.open;

fmain.sbobj.Panels[0].text:=

'Количество устройств - '+inttostr(dm.tobj.recordcount);

end;

procedure Tdm.tobjAfterDelete(DataSet: TDataSet);

begin

dm.objrefresh.Execute;

end;

procedure Tdm.tobjAfterPost(DataSet: TDataSet);

begin

dm.objrefresh.Execute;

end;

procedure Tdm.fmcinsertExecute(Sender: TObject);

begin

fmc.caption:='Добавление в инвентарь';

dm.tmc.Insert;

fmc.ShowModal;

end;

procedure Tdm.fmceditExecute(Sender: TObject);

begin

fmc.caption:='Изменение информации';

dm.tmc.Edit;

fmc.ShowModal;

end;

procedure Tdm.mcdeleteExecute(Sender: TObject);

begin

if Application.MessageBox(pchar('Удалить данные?'), 'Инвентарь' , MB_YESNO)=IDYES

then begin

dm.tmc.Delete;

Application.MessageBox(pchar('Данные удалены.'), 'Инвентарь', MB_OK);

end;

end;

procedure Tdm.fmcsaveExecute(Sender: TObject);

begin

if not dm.tmcmcname.IsNull then

begin

dm.tmc.Post;

fmc.Close;

end

else Application.MessageBox(pchar('Не указано название'), 'Инвентарь', MB_OK);

end;

procedure Tdm.fmccancelExecute(Sender: TObject);

begin

fmc.close;

end;

procedure Tdm.fmccloseExecute(Sender: TObject);

begin

if (dm.tmc.State=dsInsert)or(dm.tmc.State=dsEdit)

then dm.tmc.Cancel;

end;

procedure Tdm.mcrefreshExecute(Sender: TObject);

begin

dm.tmc.Close;

dm.tmc.open;

fmain.sbmc.panels[0].text:=

'Количество материальных ценностей - '+inttostr(dm.tmc.recordcount);

end;

procedure Tdm.tmcAfterDelete(DataSet: TDataSet);

begin

dm.mcrefresh.Execute;

end;

procedure Tdm.tmcAfterPost(DataSet: TDataSet);

begin

dm.mcrefresh.execute;

end;

// отчетность

procedure Tdm.createtipreportExecute(Sender: TObject);

var

tfile:TextFile;

i:integer;

filename:string;

begin

filename:='tipreport.html';

AssignFile(tfile,filename);

rewrite(tfile);

writeln(tfile,'<HTML>');

writeln(tfile,'<HEAD><TITLE>');

writeln(tfile,'Список устройств по типу');

writeln(tfile,'</TITLE></HEAD>');

writeln(tfile,'<BODY>');

writeln(tfile,'<H1>Список устройств по типу</H1>');

dm.ttip.Sort:='tipname';

dm.tobj.Sort:='objname';

dm.ttip.First;

while not dm.ttip.Eof do

begin

dm.tobj.Filter:='idtip='+inttostr(dm.ttipidtip.Value);

dm.tobj.Filtered:=true;

if not dm.tobj.IsEmpty then

begin

writeln(tfile,'<H2>'+dm.ttiptipname.value+'</H2>');

writeln(tfile,'<TABLE BORDER=1>');

writeln(tfile,'<TR>');

writeln(tfile,'<TH>№');

writeln(tfile,'<TH>Устройство');

writeln(tfile,'<TH>Серийный номер');

writeln(tfile,'<TH>Кабинет');

writeln(tfile,'<TH>Пользователь');

i:=1;

dm.tobj.First;

while not dm.tobj.Eof do

begin

writeln(tfile,'<TR>');

writeln(tfile,'<TD>'+inttostr(i));

writeln(tfile,'<TD>'+dm.tobjobjname.Value);

writeln(tfile,'<TD>'+dm.tobjnobj.value);

writeln(tfile,'<TD>'+dm.tplaceplacename.Value);

writeln(tfile,'<TD>'+dm.tmenfiomen.value);

i:=i+1;

dm.tobj.Next;

end;

writeln(tfile,'</TABLE>');

writeln(tfile,'<P>Количество устройств - '+inttostr(dm.tobj.RecordCount)+'</P>');

end;

dm.ttip.Next;

end;

tobj.Filtered:=false;

writeln(tfile,'<P>Всего устройств - '+inttostr(dm.tobj.RecordCount)+'</P>');

writeln(tfile,'</BODY></HTML>');

CloseFile(tfile);

ShellExecute(Application.Handle,'open',pchar(filename),nil,nil,SW_SHOW);

end;

procedure Tdm.createmcreportExecute(Sender: TObject);

var

tfile:TextFile;

i:integer;

filename:string;

begin

filename:='mcreport.html';

AssignFile(tfile,filename);

rewrite(tfile);

writeln(tfile,'<HTML>');

writeln(tfile,'<HEAD><TITLE>');

writeln(tfile,'Материальные ценности');

writeln(tfile,'</TITLE></HEAD>');

writeln(tfile,'<BODY>');

writeln(tfile,'<H1>Материальные ценности</H1>');

writeln(tfile,'<TABLE BORDER=1>');

writeln(tfile,'<TR>');

writeln(tfile,'<TH>№');

writeln(tfile,'<TH>Устройство');

writeln(tfile,'<TH>Матценность');

writeln(tfile,'<TH>Инвентарный номер');

writeln(tfile,'<TH>Цена');

writeln(tfile,'<TH>Количество');

writeln(tfile,'<TH>Год');

dm.tvreport.First;

i:=1;

while not dm.tvreport.Eof do

begin

writeln(tfile,'<TR>');

writeln(tfile,'<TD>'+inttostr(i));

writeln(tfile,'<TD>'+dm.tvreportobjname.Value);

writeln(tfile,'<TD>'+dm.tvreportmcname.Value);

writeln(tfile,'<TD>'+dm.tvreportmcinvn.Value);

writeln(tfile,'<TD>'+floattostr(dm.tvreportmccenaitog.Value));

writeln(tfile,'<TD>'+inttostr(dm.tvreportmckolitog.Value));

writeln(tfile,'<TD>'+inttostr(dm.tvreportmcyear.Value));

dm.tvreport.Next;

i:=i+1;

end;

writeln(tfile,'</TABLE>');

writeln(tfile,'<P>Всего устройств - '+inttostr(i)+'</P>');

writeln(tfile,'</BODY></HTML>');

CloseFile(tfile);

ShellExecute(Application.Handle,'open',pchar(filename),nil,nil,SW_SHOW);

end;

Процедуры модуля uobj:

procedure Tfobj.FormClose(Sender: TObject; var Action: TCloseAction);

begin

dm.fobjclose.execute;

end;

Процедуры модуля uspr:

procedure Tfspr.FormClose(Sender: TObject; var Action: TCloseAction);

begin

if (dbgspr.DataSource = dm.dsvdep) then

begin

dm.tdep.Close;

dm.tdep.open;

end

else if (dbgspr.DataSource = dm.dsvplace) then

begin

dm.tplace.close;

dm.tplace.open;

end

else if (dbgspr.datasource = dm.dsvtip) then

begin

dm.ttip.Close;

dm.ttip.open;

end

else if (dbgspr.datasource = dm.dsvmen) then

begin

dm.tmen.Close;

dm.tmen.Open;

end

else if (dbgspr.datasource = dm.dsviponly) then

begin

dm.tip.close;

dm.tip.Open;

end;

dm.fsprclose.Execute;

end;