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

3.3 Выводы

В третий части дипломного проекта был спланирован и поставлен эксперимент по внедрению информационной системы.

Для оценки функциональной и экономической эффективности процесса регистрации занятий на полномасштабном тренажере в учебно-тренировочном подразделении Смоленской АЭС на основе разработанной информационной системы был использован количественный анализ.

Проведенный анализ показал, что после внедрения информационной системы затраты время регистрацию занятий сокращается на 30-40 %.Следовательно время для работы с обучаемыми увеличивается и их профессионализм соответственно возрастает. Годовой экономический эффект от внедрения информационной системы определялся как разница между показателем снижения стоимостных затрат и произведением коэффициента эффективности капитальных вложений и затрат на проектирование, разработку и внедрение информационной системы. В результате проведенных расчетов величина годового экономического эффекта составила сто тридцать три тысячи рублей.

Срок окупаемости, вычисляемый как отношение капитальных затрат на проектирование, разработку и внедрение системы к показателю снижения стоимостных затрат составил примерно 6 месяцев.

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

Проведенный анализ экономической эффективности разработанной информационной системы с использованием затратного метода показал, что годовой экономический эффект составит 133020,72. При этом внедряемая информационная система окупится через 6 месяцев.

ЗАКЛЮЧЕНИЕ

В результате выпускной квалификационной работы была разработана информационная система регистрации занятий на полномасштабном тренажере учебно-тренировочного подразделения.

В первой части работы был произведен анализ САЭС и деятельности учебно-тренировочного подразделения.

Были рассмотрены основные виды деятельности предприятия и его учебно-тренировочного подразделения, описана организационная структура, а также кратко рассмотрены основные программные продукты, которые используются в различных его отделах. Далее были описаны основные задачи и функции, реализуемые в процессе работы ОПОП УТП САЭС. Отдельно выделены проблемы, возникающие при обучении на полномасштабном тренажере. Основной проблемой работы тренажера является отсутствие регистрации занятий. Автоматизация этих сведений поможет избежать неправильных действий оперативного персонала атомной станции, что может повлечь за собой последствия различного масштаба, вследствие этого миллионные затраты на восстановление. Отсутствие решений этой проблемы ставит под угрозу работу всей атомной станции.

В результате проведенного анализа сущности и реализации рассматриваемо процесса, существующих подходов к его автоматизации была определена необходимость и поставлена задача на разработку информационной системы учета занятий, способной обеспечить высококлассное обучение оперативного персонала эффективное решение рассматриваемых задач на основе применения методов и средств информационных технологий.

Во второй части работы была модернизирована и протестирована информационная система учета протоколов несоответствия учебно-тренировочного подразделения, путем создания информационной системы регистрации занятий.

Структура и основные свойства разработанной информационной системы были определены, исходя из построенной структурно-функциональной модели по стандарту IDEF0 и методологии SADT.

Для описания логической и физической структур базы данных был применен стандарт IDEF1X с использованием CASE-средства ERwin Data Modeler r7.3. В результате, полное и детального описание процесса регистрации занятий было реализовано посредством трех таблиц, связанных между собой по ключевым характеристикам объектов учета. Разработаны программные модули и подробно описаны их функции. Построено дерево программных модулей и блок-схемы некоторых из них. Реализована связь программных модулей системы и таблиц базы данных.

Модернизированная система подверглась тестированию. Тестирование было произведено в трех режимах:

  • тестирование системы в нормальных условиях;

  • тестирование системы в экстремальных условиях;

  • тестирование системы в исключительных ситуациях.

Все ошибки, выявленные в процессе тестирования, были полностью устранены.

В третий части выпускной квалификационной работы был спланирован и поставлен эксперимент по внедрению информационной системы.

Для оценки функциональной и экономической эффективности процесса регистрации занятий на основе разработанной информационной системы был использован количественный анализ.

Проведенный анализ показал, что после внедрения информационной системы временные затраты на регистрацию занятий сокращается на 30-40 %. Следовательно, время для работы с обучаемым оперативным персоналом увеличивается, их профессионализм соответственно возрастает. Годовой экономический эффект от внедрения информационной системы определялся как разница между показателем снижения стоимостных затрат и произведением коэффициента эффективности капитальных вложений и затрат на проектирование, разработку и внедрение информационной системы. В результате проведенных расчетов величина годового экономического эффекта составила сто тридцать три тысячи рублей.

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

Таким образом, можно сделать вывод, что поставленная цель достигнута частично, поставленные задачи выпускной квалификационной работы достигнуты и решены полностью. В результате выполнения выпускной квалификационной работы модернизирована, информационная система учета протоколов несоответствия учебно-тренировочного подразделения путем внедрения в неё информационной системы, автоматизированного учета занятий и регистрации оперативного персонала, проходящих обучение в учебно-тренировочном подразделении Смоленской атомной станции, благодаря которой позволит сократить временные затраты на регистрацию занятий и повысить уровень безопасности эксплуатации АЭС.

СПИСОК ИСПОЛЬЗУЕМЫХ ИСТОЧНИКОВ

  1. Устав Смоленской АЭС Изд. САЭС, 2000. – 134 с.

  2. Внутренний веб – узел САЭС.

  3. Положение об учебно-тренировочном подразделении. Изд. САЭС, 2005. – 21 с.

  4. Техническая документация к системе «Кадры-2. Подготовка персонала» Изд. САЭС, 2005. – 257 с.

  5. Справка учебной программы «Монтажник-проектировщик» Изд. САЭС, 2005. – 123 с.

  6. В.И.Лойко Информационные системы и технологии в экономике, 2 – е издание, Москва «Финансы и статистика» 2005. – 310 с.

  7. Вопросы атомной науки и техники. Серия: Обеспечение безопасности АЭСВыпуск 12. Москва ФГУП НИКИЭТ 2007 151 с.

  8. Маклаков А.Г. Личностный адаптационный потенциал: его мобилизация и прогнозирование в экстремальных условиях. Психологический журнал, 2001, №1, с 16-24.

  9. Август-Вильгельм Шеер Моделирование бизнес-процессов. Весть-Мета Технология, 2000. – 206 с.

  10. М. Ф. Меняев Организационно-экономическая часть дипломных проектов, направленных на разработку программного обеспечения (Учебное пособие) МГТУ им. Н. Э. Баумана, 2002

  11. А.А. Козырев Информационные технологии в экономике и управлении. Издательство Михайлова Санкт-Петербург 2000 г.

  12. Вендров, А.М. Проектирование программного обеспечения эконо­мических информационных систем: Учебник./А. М. Вендров.- М.: Финансы и статистика, 2004. – 352 с.

  13. Майерс Г. Искусство тестирования программ / Пер. с англ.; Под ред. Б.А. Позина. – М.: Финансы и статистика,2004. – 176 с..

  14. Тестирование программного обеспечения / Сэм Канер, Джек Фолк, Енг Кек Нгуен и др. / Пер. с англ. - Киев: Изд-во «ДиаСофт», 2004. – 271 с.

  15. Автоматизация управления предприятием / Баронов В.В. и др. – М.: ИНФРА-М, 2000.

  16. Автоматизированные информационные технологии в экономике / Под общ. ред. И.Т. Трубилина. – М.: Финансы и статистика, 2007.

  17. Когаловский М.Р. Перспективные технологии информационных систем. – М.: ДМК Пресс, 2003.

  18. Дейт К. Введение в системы баз данных. – Киев: Диалектика, 2008.

  19. Емельянов А.А., Власова Е.А., Дума Р.В. Имитационное моделирование экономических процессов. – М: Финансы и статистика, 2002.

  20. Прикладная информатика в экономике: Учебное пособие/ Бугорский В.Н., Емельянов А.А., Порховник Ю.М. и др.; Под ред. Михайлушкина А.И. – СПб: СПбГИЭУ, 2005.- 407 с.

  21. Гришин В.Н., Панфилова Е.Е. Информационные технологии в профессиональной деятельности: Учебник.: ИНФРА-М, 2005. – 416 с.

  22. Прокушева А. П. Экономика информатики (практикум). – М.: Н.Д. Дашков и К, 2001. – 429 с.

  23. Борзов Ю.В. Методы тестирования и отладки программ ЭВМ / М. А. Рогов. – М.: ПРИОР, 2005. – 117 – 119 с.

  24. Титоренко Г.А. Информационные технологии в маркетинге.– М.: Юнити, 2004. – 250 с.

  25. М. Ф. Меняев Организационно-экономическая часть дипломных проектов, направленных на разработку программного обеспечения (Учебное пособие) МГТУ им. Н. Э. Баумана, 2002

  26. Описание программного продукта PHP http://www.php.net/docs.php

  27. Дмитрий Ченгаев «PHP! Как сделать современный веб-сайт». 2007. – 45 с. http://www.bravoo.net

  28. Руководство PHP Версии 3.0 - язык написания сценариев. http://wm-help.net/down_book.php?id=8

Приложение А

Структурная схема УТП

Рисунок П.А.1 – Структурная УТП

Приложение Б

Список сокращений

САЭС

Смоленская атомная электростанция

УМО

учебно-методический отдел

УТП

учебно-тренировочное подразделение

УТСО

участок обслуживания технических средств обучения

ТЦ

турбинный цех

ЭЦ

электроцех

БЩУ

блок щитового управления

ВИУБ

ведущий инженер по управлению блоком

ВИУР

ведущий инженер по управлению реактором

ВИУТ

ведущий инженер по управлению турбинами

ИС

информационная система

ИТ

информационные технологии

ЛВС

локальная вычислительная сеть

НСБ

начальник смены блока

НСС

начальник смены станции

ОК

отдел кадров

ООМ

отдел обеспечения и маркетинга

ООО

отдел организации обучения

ООП

отдел общей подготовки

ОПОП

отдел подготовки оперативного персонала

ОППТОиР

отдел подготовки персонала по техническому обслуживанию и ремонту

ОС

операционная система

ОТУ

отдел технического управления

ПМТ

полномасштабный тренажер

ПМТ-БЩУ

полномасштабный тренажер блочного щита управления

ПО

программное обеспечение

ПЭВМ

персональная электронно-вычислительная машина

РБМК

реактор большой мощности канального типа

РЗМ

разгрузочно-загрузочная машина

РЦ

реакторный цех

СЕМТО

Североевропейский межрегиональный территориальный округ

ТО

техническое обслуживание

ТЦ

турбинный цех

УМО

учебно-методический отдел

УТП

учебно-тренировочное подразделение

УТСО

участок обслуживания технических средств обучения

ЭЦ

электроцех

Приложение В

Пользовательский интерфейс

Рисунок В.1 – Окно «Вход в систему»

Рисунок В.2 – Добавление нового документа

Рисунок В.3 – Добавление новой темы

Рисунок В.4 – Добавление нового обучаемого

Рисунок В.5 – Добавление нового инструктора

Рисунок В.6 – Добавление новой должности

Рисунок В.7 – Добавление новой причины проведения занятия

Рисунок В.8 – Поиск занятия за период

Рисунок В.9 – Формирование отчета о регистрации

Приложение Г

Программный код информационной системы

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<html>

<head>

<META content="text/html; charset=windows-1251" http-equiv="Content-Type">

<title>Поддержание конфигурации ПМТ</title>

<?php

$db=ibase_connect('localhost:d:\inet1\pmt\pmt.gdb', "sysdba", "gbdj","WIN1251");

$query="select fio, sh_fio, id_role from users where id_user=$id_user";

$rs = ibase_query($db, $query);

while ($row = ibase_fetch_object($rs))

{

$fio=$row->FIO;

$role=$row->ID_ROLE;

$sh_fio=$row->SH_FIO;

}

ibase_close($db);

if (($role!=1) and ($role!=3) and ($role!=11) and ($role!=12)) exit(); //????????????????

if($role==1) // если мы зашли как Техник по занятиям на ПМТ

{

$db=ibase_connect('localhost:d:\inet1\pmt\pmt.gdb', "sysdba", "gbdj","WIN1251");

echo"

<script>

var MenTab=new Array();\n

var MenPost=new Array();\n

var MenBlock=new Array();\n

var Nmen=0;\n

var Pattern='';

function Obnul()

{

Pattern='';

}

function Poisk()

{

Pattern=Pattern+String.fromCharCode(event.keyCode);

var sel=document.getElementById('s1');

for (i=0;i<sel.length;i++)

{

if (sel.options[i].text.toLowerCase().indexOf(Pattern.toLowerCase())==0)

{

sel.selectedIndex=i;

SetPost(sel.options[i].value);

return true;

}

}

}

<!--******************************************************************************************************************************************-->

function SetMen()

{"; // заполняет массив по людям из таблици MEN

//записываем в переменную NMen колличество людей

$query="select tabno, id_post, id_jobplace from men order by fio";

$rs = ibase_query($db, $query);

$i=0;

while($row = ibase_fetch_object($rs))

{

$i++;

echo"MenTab[$i]=$row->TABNO;\n

MenPost[$i]=$row->ID_POST;\n

MenBlock[$i]=";

if ( ($row->ID_JOBPLACE>=1)&&($row->ID_JOBPLACE<=6) ) {echo"$row->ID_JOBPLACE";}

else {echo"0";}

echo";\n";

}

echo"NMen=$i;\n

var obj1=document.getElementById('but1');

if (obj1)

{

obj1.focus();

obj1=document.getElementById('t1');

obj1.focus();

}

}

<!--******************************************************************************************************************************************-->

function SetPost(tabn)

{

for(var i=0; i<=NMen; i++)

{

if (MenTab[i]==tabn)

{

var obj1=document.getElementById('sel1');

var obj2=document.getElementById('sel2');

var obj3=document.getElementById('inp1');

var obj4=document.getElementById('inp2');

var obj5=document.getElementById('inp3');

for (var j=0; j<obj1.length; j++)

{

if (obj1.options[j].value==MenPost[i])

{

obj1.selectedIndex=j;

obj2.selectedIndex=j;

obj3.value=MenBlock[i];

if (obj4.value!='') {obj5.value=obj4.value;}

}

}

}

}

}

</script>";

ibase_close($db);

}

echo"</head><body style=\"font-family:Arial;\"";

if($role==1) { echo " onload=SetMen()";} //при загрузке станички выполняем функцию SetMen, описанную выше

echo">

<form action=\"index_tr.php\" METHOD=\"POST\">

<CENTER>

<div style=\"background:black;color:#FFF;padding:0px 0px 0px 0px\"><H3>РЕГИСТРАЦИЯ ЗАНЯТИЙ НА ПМТ</H3></div>

</CENTER>";

$db=ibase_connect('localhost:d:\inet1\pmt\pmt.gdb', "sysdba", "gbdj","WIN1251");

echo "<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">

<table border=0 cellspacing=5><tr>";

//формируем кнопки

if ($role==1) echo"<td><input type=\"submit\" name=\"new_tr\" value=\"НОВОЕ ЗАНЯТИЕ\"></td>"; //если Техник по занятиям на ПМТ, то кнопка НОВОЕ ЗАНЯТИЕ

echo "<td><input type=\"submit\" name=\"all\" value=\"ВСЕ ЗАНЯТИЯ\"></td></form>"; //и кнопка ВСЕ ЗАНЯТИЯ для всех пользователей кто имеет доступ к кнопке Занятия

//если Техник по занятиям, то делаем кнопку СПРАВОЧНИКИ и переходим на guides_tr.php

if ($role==1) echo "<td>

<form action=\"guides_tr.php\" METHOD=\"POST\">

<input name=\"guides\" id=\"b1\" type=\"submit\" value=\"СПРАВОЧНИКИ\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\"></td></form>";

//для всех кнопка ОТЧЕТЫ и перходим на index_rep_tr.php

echo "<td><form action=\"index_rep_tr.php\" METHOD=\"POST\">

<input name=\"reports\" id=\"b2\" type=\"submit\" value=\"ОТЧЕТЫ\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">

</td></form></tr></table>

<!--Формируем окно поиска и при надатии на кнопку НАЙТИ перезапускаем страничку с параметром $search-->

<form action=\"index_tr.php\" METHOD=\"POST\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">";

//формируем окно поиска

if ($first_time!="")//этот параметр передается из regdone.php при нажатии на кнопку ЗАНЯТИЯ. срабатывает при первой загрузки index_tr.php

{

echo"<fieldset><legend><b>Поиск</b></legend>

<table>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_date\" value=\"1\"";

if ($fsearch_date==1) {echo " checked";}

echo "></td>

<td>за период:</td>";

if ($d_begin!="") {$d_b=$d_begin;} else {$d_b=date("d.m.y", mktime (0,0,0, date("m")-1, date("d"), date("y")));} //формируем дату начала поиска

//формируем поле начальной даты и записываем туда переменную с датой

//делаем обработку на ввод только цифр

echo "<td>с <input name=\"d_begin\" size=10 id=\"t4\" type=\"text\" value=\"$d_b\">

<script for=\"t4\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=46)

&& (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script>";

//форрмируем конечную дату

//делаем обработку на клавиши

if ($d_end!="") { $d_e=$d_end;}

else { $d_e=date("d.m.y");}

echo " по <input name=\"d_end\" size=10 id=\"t5\" type=\"text\" value=\"$d_e\">

<script for=\"t5\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=46)

&& (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_sm\" value=\"1\"";

if ($fsearch_sm==1) {echo " checked";}

echo "></td>

<td>по смене:</td>

<td><input name=\"search_sm\" size=3 type=\"text\" value=\"$search_sm\"></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_bl\" value=\"1\"";

if ($fsearch_bl==1) {echo " checked";}

echo "></td>

<td>по блоку:</td>

<td><input name=\"search_bl\" size=3 type=\"text\" value=\"$search_bl\"></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_kind\" value=\"1\"";

if ($fsearch_kind==1) {echo " checked";}

echo "></td>

<td>по виду занятия:</td>

<td><select name=\"search_kind\">

<option value='1'";

if ($search_kind=="1") {echo " selected";}

echo ">Сменное оценочное

<option value='2'";

if ($search_kind=="2") {echo " selected";}

echo ">Сменное учебное

<option value='3'";

if ($search_kind=="3") {echo " selected";}

echo ">Индивидуальное оценочное

<option value='4'";

if ($search_kind=="4") {echo " selected";}

echo ">Индивидуальное учебное

</select></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_instr\" value=\"1\"";

if ($fsearch_instr==1) {echo " checked";}

echo "></td>

<td>по инструктору:</td>

<td> <select name=\"search_instr\">";

$query="select tab_no, sh_name from instructors order by sh_name";

$rs = ibase_query($db, $query);

while($row = ibase_fetch_object($rs))

{

echo"<option value='$row->TAB_NO'";

if ($search_instr==$row->TAB_NO) {echo " selected";}

echo ">$row->SH_NAME";

}

echo "</select></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_theme\" value=\"1\"";

if ($fsearch_theme==1) {echo " checked";}

echo "></td>

<td>по теме:</td>

<td><select name=\"search_theme\">";

$rs = ibase_query($db, "select * from themes_pmt where in_work>0 order by name");

while($row = ibase_fetch_object($rs))

{

$s=$row->NAME;

if (strlen($s)>70) {$s=substr($s,0,67)."...";}

echo"<option value='$row->ID_THEME'";

if ($search_theme==$row->ID_THEME) {echo " selected";}

echo ">$s";

}

echo "</select></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_reason\" value=\"1\"";

if ($fsearch_reason==1) {echo " checked";}

echo "></td>

<td>по причине:</td>

<td><select name=\"search_reason\">

<option value=0> ";

$rs = ibase_query($db, "select * from reasons_pmt order by name");

while($row = ibase_fetch_object($rs))

{

$s=$row->NAME;

if (strlen($s)>70) {$s=substr($s,0,67)."...";}

echo"<option value='$row->ID_REASON'";

if ($search_reason==$row->ID_REASON) {echo " selected";}

echo ">$s";

}

echo "</select></td>

</tr>

<tr>

<td><input type=\"checkbox\" name=\"fsearch_razd\" value=\"1\"";

if ($fsearch_razd==1) {echo " checked";}

echo "></td>

<td>по разделу:</td>

<td><input name=\"search_razd\" size=5 type=\"text\" value=\"$search_razd\"></td>

</tr>

</table>

<hr>

<input type=\"submit\" name=\"search\" value=\"Найти...\">

</fieldset>";

}

echo"</form><br>";

//если была нажата кнопа ВСЕ ЗАНЯТИЯ

if ($all!="")

{

$y=date("Y");//сегодняшний год

$months=array("январь","февраль","март","апрель","май","июнь","июль","август","сентябрь","октябрь","ноябрь","декабрь"); //делае массив из месяцев

//формируем таблицу год-месяца

echo "<form action=\"index_tr.php\" METHOD=\"POST\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">

<table border=0 cellspacing=8>

<tr><th align=\"center\">Год<hr></th>

<th colspan=12 align=\"center\">Месяц<hr></th></tr>";

for($i=2010;$i<=$y;$i++)

{

echo "<tr><td><b>$i</b></td>";

foreach($months as $key => $value)

{

$k=$key+1;

$n="y".$i."m".$k;

echo "<td><input type=\"submit\" name=\"$n\" value=\"$value\"

title=\"Занятия за $value $i г.\"></td>";

}

echo "</tr>";

}

echo "</table></form>";

ibase_close($db);

exit();

}

$y=date("Y");

for($i=2010;$i<=$y;$i++)

{

for($j=1;$j<=12;$j++)

{

if (${"y".$i."m".$j}!="")

{

$myyear=$i;

$mymonth=$j;

}

}

}

$query="select max(id_training) from trainings_pmt";

$rs = ibase_query($db, $query);

while ($row = ibase_fetch_object($rs))

{

$maxid=$row->MAX;

}

for($i=0;$i<=$maxid;$i++) if (${"red".$i}!="") $red=$i; //???????????????????????????????

if (($collect!="") or ($search!="") or ($mymonth!="")) //если были нажаты кнопки: ОСТАВИТЬ ОТМЕЧЕННЫЕ(при табл найденных занятиях) или НАЙТИ (окно поиска) или кнопка месяца

{

$query="SELECT t.id_training, t.dt_training, t.smena, t.block, th.name as theme, i.sh_name, m.fio";

$query=$query." from trainings_pmt t, themes_pmt th, instructors i, men m, obuch_pmt o";

$query=$query." where t.id_theme=th.id_theme and t.id_instr=i.tab_no";

$query=$query." and t.id_training=o.id_training and o.id_man=m.id_man";

if ($collect!="")//если была нажата кнопка ОСТАВИТЬ ОТМЕЧЕННЫЕ

{

$listb="(0"; //формируем массив отмеченных строк

for($i=0;$i<$n_trs;$i++) if ((${"id_del".$i}>0) and (strlen($listb)<165)) $listb=$listb.", ${"id_del".$i}"; //n_trs-колличество найденных записей; "id_del".$i - chekbox в таблице

$listb=$listb.")";

$query=$query." and t.id_training in $listb";

$par="listb=".$listb; //?????????

}

//если была нажата кновка НАЙТИ

if ($search!="")

{

$par="";//???????????????????????????

if ($fsearch_date==1) //по дате

{

$par="d_begin=".$d_begin."&d_end=".$d_end;

$d_end=$d_end." 23:00";

$query=$query." and t.dt_training>=cast('$d_begin' as date) and t.dt_training<=cast('$d_end' as timestamp)";

}

if ($fsearch_sm==1) //по смене

{

$query=$query." and t.smena='$search_sm'";

if ($par!="") { $par=$par."&";}

$par=$par."search_sm=".$search_sm;

}

if ($fsearch_razd==1)//по разделу

{

$query=$query." and t.razdel containing '$search_razd'";

if ($par!="") { $par=$par."&";}

$par=$par."search_razd=".$search_razd;

}

if ($fsearch_bl==1) //по блоку

{

$query=$query." and t.block='$search_bl'";

if ($par!="") { $par=$par."&";}

$par=$par."search_bl=".$search_bl;

}

if ($fsearch_kind==1) //по типу

{

$query=$query." and t.id_kind='$search_kind'";

if ($par!="") { $par=$par."&";}

$par=$par."search_kind=".$search_kind;

}

if ($fsearch_instr==1) //по инструктору

{

$query=$query." and t.id_instr=$search_instr";

if ($par!="") { $par=$par."&";}

$par=$par."search_instr=".$search_instr;

}

if ($fsearch_theme==1) //по теме

{

$query=$query." and t.id_theme=$search_theme";

if ($par!="") { $par=$par."&";}

$par=$par."search_theme=".$search_theme;

}

if ($fsearch_reason==1) //по причине

{

$query=$query." and t.id_reason=$search_reason";

if ($par!="") { $par=$par."&";}

$par=$par."search_reason=".$search_reason;

}

}

//если была нажата кнопка месяца

if ($mymonth!="")

{

$nach=date("d.m.y",mktime(0, 0, 0, $mymonth, 1, $myyear));

$kon=date("d.m.y H:i",mktime(23, 0, 0, $mymonth+1, 0, $myyear));

$query=$query." and t.dt_training>=cast('$nach' as date) and t.dt_training<=cast('$kon' as timestamp)";

$par="mymonth=".$mymonth."&myyear=".$myyear;

}

if ($par!="") { $par="?".$par;}

$query=$query." order by 2, 5";

// echo "$query";

//выполняем сформированный запрос

$rs = ibase_query($db, $query);

echo "<form action=\"index_tr.php\" METHOD=\"POST\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">

<table border=\"1\" cellpadding=\"2\" cellspacing=\"0\">

<tr>

<th>Дата</th>

<th>Время</th>

<th>См.</th>

<th>Бл.</th>

<th>Тема</th>

<th>Инструктор</th>

<th>Просм.</th>

<th>Отм.</th>

</tr>";

$i=0;

$list="(0"; //формируем массив из id-ов найденных занятий

$old_id=0;

while ($row = ibase_fetch_object($rs))

{

if ($old_id!=$row->ID_TRAINING)

{

if ($old_id!=0)

{

echo"$sbeg$end";

}

$list=$list.", ".$row->ID_TRAINING;

$end="</td><td>".$row->SH_NAME."</td><td><input type=\"submit\" name=\"red";

$end=$end.$row->ID_TRAINING."\" value=\"Просм.\"title=\"Просмотреть\редактировать занятие\">";

$end=$end."<td><input type=\"checkbox\" name=\"id_del".$i."\" value=\"".$row->ID_TRAINING."\"></td></tr>";

$sbeg="<tr>";

$d=substr($row->DT_TRAINING,8,2).".".substr($row->DT_TRAINING,5,2).".".substr($row->DT_TRAINING,2,2);

$sbeg=$sbeg."<td>$d</td>";

$t=substr($row->DT_TRAINING,11,5);

$sbeg=$sbeg."<td>$t</td><td>$row->SMENA </td><td>$row->BLOCK </td>";

$sbeg=$sbeg."<td>".stripslashes($row->THEME)."<br>";

$old_id=$row->ID_TRAINING;

$i++;

}

$tok = strtok($row->FIO," ");

$k=0;

while ($tok)

{

if ($k==0) {$s=$tok." ";} else {$s=$s.$tok[0].".";}

$tok = strtok(" ");

$k++;

}

$sbeg=$sbeg." ".$s;

}

echo"$sbeg$end";

$list=$list.")";

echo "</table>

<table width=600 border=0><COLGROUP span=\"3\" valign=\"top\">

<tr><td><STRONG>Всего $i зан. </STRONG>

<input name=\"n_trs\" type=\"hidden\" value=\"$i\">

<td><input name=\"collect\" type=\"submit\" value=\"Оставить отмеченные\">

</form>

<td><input type=\"button\" id=\"c1\" value=\"Показать в виде отчета\"></table>

<script for=\"c1\" event=\"onclick\">

<!--

window.open(\"rep_tr_all.php$par\", false, 'width=670, left=30, top=30, menubar=1, height=550, resizable=no, scrollbars=yes');

//-->

</script>";

$red="";

}

//обработка на пустые поля при добавлении занятия

if (($id_instr=="net") or ($smena=="net") or ($block=="net") or ($kind_training=="net") or ($id_theme=="net"))

{

$add_tr="";

Echo"<p style=\"color:red\">Одно или несколько из обязательных для заполнения полей пусты. Заполните их пожалуйста.<br> Обязательные поля помечены *</p>";

$new_tr="Новое занятие";

}

if($new_tr!='')//если была нажата кнопка НОВОЕ ЗАНЯТИЕ

{

echo "<form action=\"index_tr.php\" METHOD=\"POST\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">

<center>

<div style=\"background:grey;color:#FFF;\"><b>НОВОЕ ЗАНЯТИЕ</b></div></br>

</center>

<table border=0 cellspacing=10>

<tr>

<td>Инструктор:<font color=red>*</font><br><select name=\"id_instr\"><option value=\"net\">&nbsp"; //делаем список инструкторов

$query="select tab_no, sh_name from instructors order by sh_name"; //формируем запрос на выборку инструктаров

$rs = ibase_query($db, $query);

while($row = ibase_fetch_object($rs)) //заполняем список

{

echo"<option value='$row->TAB_NO'"; if ($id_instr==$row->TAB_NO) {echo"selected";} //если одно из обязательных полей было пустым (т. е. выдалось сообщение), то выбираем то значение которое было

echo">$row->SH_NAME";

}

echo "</select></td>

<td>Смена:<font color=red>*</font><br><select name=\"smena\" id=\"inp2\">

<option value='net'>";

for($sm=1;$sm<=3;$sm++) //sm- переменная номера смены

{

echo"<option value='$sm'";if ($smena==$sm) {echo"selected";} echo">Смена №$sm"; //если одно из обязательных полей было пустым (т. е. выдалось сообщение), то выбираем то значение которое было

}

echo"</select></td>

<td>Блок:<font color=red>*</font><br><select name=\"block\">

<option value='net'>";

for($bl=1;$bl<=3;$bl++) //bl-переменная номера блока

{

echo"<option value='$bl'";if ($block==$bl) {echo"selected";} echo">Блок №$bl"; //если одно из обязательных полей было пустым (т. е. выдалось сообщение), то выбираем то значение которое было

}

echo"</select></td>

<td>№ ПМТ:<br><input type=\"text\" name=\"num_pmt\" size=6 value=\"2\" readonly style=\"text-align:right\"></td>

<td>Дата:</br><input type=\"text\" id=\"t1\" name=\"dt_training\" size=6 title=\"Дата проведения занятия\" value=\"";//поле для даты

$s=date("d.m.y"); //ставим сегодняшнюю дату

echo"$s\">

<script for=\"t1\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=46)

&& (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

<td>Время:<br><input type=\"text\" id=\"t3\" name=\"tm_training\" size=6 title=\"Время проведения занятия\" value=\""; //поле для времени

$s="00:00";

echo"$s\">

<script for=\"t3\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=58)

&& (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

</tr>

</table>

<hr>

<table border=\"0\">

<tr>

<td>Вид занятия:<font color=red>*</font></td>

<td><select id=\"s2\" name=\"kind_training\">

<option value='net'>&nbsp";//добавляем пустое поле

$rs=ibase_query($db, "select * from training_kinds");//формируем запрос на вид занятия

while($row=ibase_fetch_object($rs))

{

echo"<option value='$row->ID_KIND'"; if ($kind_training==$row->ID_KIND){echo"selected";}//если одно из обязательных полей было пустым (т. е. выдалось сообщение), то выбираем то значение которое было

echo">$row->NAME";

}

echo"</select></td>

</tr>

<tr>

<td>Тема:<font color=red>*</font></td>

<td><select name=\"id_theme\"><option value='net'>&nbsp";

$rs = ibase_query($db, "select * from themes_pmt where in_work>0 order by name"); //выбираем все темы где ????????????in_work>0????????????

while($row = ibase_fetch_object($rs))

{

$s=$row->NAME;

if (strlen($s)>100) {$s=substr($s,0,97)."...";}//сокращаем тему если ее длина больше 100, добавляем к концу три точки

echo"<option value='$row->ID_THEME'"; if ($id_theme==$row->ID_THEME){echo"selected";} echo">$s";//заносим тему в список

}

echo "</select></td>

</tr>

<tr>

<td>Раздел:</td>

<td><input type=\"text\" name=\"razdel\" size=10 value=\"\"></td>

<tr>

<td>Протокол:</td>

<td><input type=\"text\" name=\"n_prot\" size=10 value=\"\"></td>

</tr>

<tr>

<td>Длительность занятия:</td>

<td><input type=\"text\" id=\"t2\" name=\"duration\" size=3 value=\"0\">

<script for=\"t2\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

</tr>

<tr>

<td>Причина проверки:</td>

<td><select name=\"id_reason\">

<option value=0 selected> ";

$rs = ibase_query($db, "select * from reasons_pmt order by name");

while($row = ibase_fetch_object($rs))

{

$s=$row->NAME;

if (strlen($s)>100) {$s=substr($s,0,97)."...";}

echo"<option value='$row->ID_REASON'>$s";

}

echo "</select></td></tr>

</table>

<hr>

<input type=\"submit\" name=\"add_tr\" value = \"Добавить\">

</form>";

$red="";

}

//Если была нажата кнопка ДОБАВИТЬ

if($add_tr!="")

{

$dt_training=$dt_training." ".$tm_training; //запмсываем дату и время тренировки в одну перемнную

//формируем запрос на добавление новой записи о занятии

$query="INSERT INTO TRAININGS_PMT (DT_TRAINING, SMENA, ID_KIND, ID_THEME, DURATION,";

if ($id_reason>0) $query=$query." ID_REASON,";//если причина есть

$query=$query." ID_INSTR, BLOCK, NUM_PMT, RAZDEL, N_PROT) VALUES";

$query=$query." (cast('$dt_training' as timestamp), '$smena', '$kind_training', $id_theme, $duration,";

if ($id_reason>0) $query=$query." $id_reason,";

$query=$query." $id_instr, '$block', '$num_pmt', '$razdel', '$n_prot')";

// echo "$query";

$rs = ibase_query($db,$query);

$rs2 = ibase_query($db,"select max(ID_TRAINING) from TRAININGS_PMT");

$row2 = ibase_fetch_object($rs2);

$red = $row2->MAX;//присваиваем параметру red номер последней добавленной строчки (он же мах), чтобы при перезапуске странички сработало условие на редактирование последней добавленной записи.

// echo "max=$row2->MAX";

}

if($red!='') //с параметром редактирования

{

if($change == "Изменить") //если нажата кнопка ИЗМЕНИТЬ

{ //формируем запрос на изменение

$dt_training=$dt_training." ".$tm_training;

$query="UPDATE TRAININGS_PMT SET DT_TRAINING=cast('$dt_training' as timestamp), SMENA='$smena',";

$query=$query." ID_KIND='$kind_training', ID_THEME=$id_theme, DURATION=$duration,";

if ($id_reason>0) $query=$query." ID_REASON=$id_reason,";

$query=$query." ID_INSTR=$id_instr, BLOCK='$block', NUM_PMT='$num_pmt', RAZDEL='$razdel',";

$query=$query." N_PROT='$n_prot' where ID_TRAINING=$red";

$rs1 = @ibase_query($db, $query) or $er=$php_errormsg;

if ($er!="")

{

$pos = strpos($er,"conversion error");

if ($pos===false)

{ echo "Ошибка: '$php_errormsg'";}

else

{ echo "<font color=\"red\"><marquee behavior=\"slide\" scrollamount=\"20\">

Ошибка при вводе даты/времени. Повторите редактирование.</marquee></font>";}

}

}

//если была нажата кнопка УДАЛИТЬ ЗАНЯТИЕ

if($del_tr!='')

{

$query="delete from trainings_pmt where ID_TRAINING=$red";

$rs = ibase_query($db,$query);

echo "</form>";

ibase_close($db);

exit();

}

// если была нажата кнопка Добавить обучаемого

if($add_obuch!="")

{

if ($id_obuch>0)//если поле ФИО заполненно

{ //формируем запрос на добавление сведений для данного занятия по обучаемым в тбл OBUCH_PMT

$query="select id_man from men where tabno=$id_obuch";

$rs = ibase_query($db,$query);

$row = ibase_fetch_object($rs);

$id_man=$row->ID_MAN;

$query="INSERT INTO OBUCH_PMT (ID_TRAINING, ID_MAN, ID_POSTR, ID_POSTT, MARK, BLOCK, SMENA)";

$query=$query." VALUES ($red, $id_man, $id_postr, $id_postt, '$mark', '$blockp', '$smenap')";

// echo "$query";

$rs = ibase_query($db,$query);

}

else

{ echo "<font color=\"red\"> Вы не выбрали обучаемого. Повторите добавление.</font>";}

}

//если была нажата кнопка Удалить обучающихся

if ($del_obuch!="")

{ //?????????????????????????????????????????????????????

$listb="(0";

for($i=1;$i<=$n_obuchs;$i++)

if (${"id_delobuch".$i}>0) $listb=$listb.", ${"id_delobuch".$i}";

$listb=$listb.")";

$query="delete from obuch_pmt where id_training=$red and id_man in $listb";

$rs = ibase_query($db,$query);

}

$query="SELECT * FROM TRAININGS_PMT where id_training=$red";//этим запросом обновляем форму для редактирования занятия

$rs = ibase_query($db,$query);

$row = ibase_fetch_object($rs);

echo "<center><div style=\"background:grey;color:#FFF;\"><b>ИНФОРМАЦИЯ О ЗАНЯТИИ</b></div></center>

<form action=\"index_tr.php\" METHOD=\"POST\">

<input type=\"hidden\" name=\"id_user\" value=\"$id_user\">

<table collspacing=10>

<tr>

<td>Инструктор:<br><select name=\"id_instr\">";

$query="select tab_no, sh_name from instructors order by sh_name";

$rs1 = ibase_query($db, $query);

while($row1 = ibase_fetch_object($rs1))//Выбираем нужного инструктора по занятию

{

echo"<option value='$row1->TAB_NO'";

if ($row->ID_INSTR==$row1->TAB_NO) {echo " selected";}

echo ">$row1->SH_NAME";

}

echo "</select></td>

<td>Смена:<br><select name=\"smena\" id=\"inp2\">

<option value=\"1\"";

if ($row->SMENA==1) {echo"selected";}

echo">Смена №1

<option value=\"2\"";

if ($row->SMENA==2) {echo"selected";}

echo">Смена №2

<option value=\"3\"";

if ($row->SMENA==3) {echo"selected";}

echo">Смена №3

</select>

</td>

<td>Блок:<br><select name=\"block\">

<option value='1'";

if ($row->BLOCK==1) {echo"selected";}

echo">Блок №1

<option value='2'";

if ($row->BLOCK==2) {echo"selected";}

echo">Блок №2

<option value='3'";

if ($row->BLOCK==3) {echo"selected";}

echo">Блок №3

</select></td>

<td>№ ПМТ:<br><input type=\"text\" name=\"num_pmt\" size=10 value=\"$row->NUM_PMT\"></td>

<td>Дата:<br><input type=\"text\" name=\"dt_training\" id=\"t2\" size=6 value=\"";

$s=substr($row->DT_TRAINING,8,2).".".substr($row->DT_TRAINING,5,2).".".substr($row->DT_TRAINING,2,2);

echo"$s\">

<script for=\"t2\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=46)

&& (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

<td>Время:<br><input type=\"text\" id=\"t6\" name=\"tm_training\" size=6 value=\"";

$s=substr($row->DT_TRAINING,11,5);

echo"$s\">

<script for=\"t6\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=58)

&& (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

</tr>

</table>

<hr>

<table width=100%>

<tr>

<td width=\"10%\">Вид занятия:</td>

<td><select id=\"s2\" name=\"kind_training\">

<option value='1'";

if ($row->ID_KIND=="1") {echo " selected";}

echo ">Сменное оценочное

<option value='2'";

if ($row->ID_KIND=="2") {echo " selected";}

echo ">Сменное учебное

<option value='3'";

if ($row->ID_KIND=="3") {echo " selected";}

echo ">Индивидуальное оценочное

<option value='4'";

if ($row->ID_KIND=="4") {echo " selected";}

echo ">Индивидуальное учебное

</select></td>

</tr>

<tr>

<td>Тема:</td>

<td colspan=9><select name=\"id_theme\">";

$rs1 = ibase_query($db, "select * from themes_pmt where in_work>0 order by name");

while($row1 = ibase_fetch_object($rs1))

{

$s=$row1->NAME;

if (strlen($s)>80) {$s=substr($s,0,77)."...";}

echo"<option value='$row1->ID_THEME'";

if ($row->ID_THEME==$row1->ID_THEME) {echo " selected";}

echo ">$s";

}

echo "</select></td>

</tr>

<tr>

<td>Раздел:</td>

<td><input type=\"text\" name=\"razdel\" size=10 value=\"$row->RAZDEL\"></td>

</tr>

<tr>

<td>Протокол:</td>

<td><input type=\"text\" name=\"n_prot\" size=10 value=\"$row->N_PROT\"></td>

</tr>

<tr>

<td>Длительность занятия:</td>

<td><input type=\"text\" name=\"duration\" id=\"t3\" size=3 value=\"$row->DURATION\">

<script for=\"t3\" event=\"onkeypress\">

<!--

if ( (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

</tr>

<tr>

<td>Причина проверки:</td>

<td><select name=\"id_reason\">

<option value=-1> ";

$rs1 = ibase_query($db, "select * from reasons_pmt order by name");

while($row1 = ibase_fetch_object($rs1))

{

$s=$row1->NAME;

if (strlen($s)>80) {$s=substr($s,0,77)."...";}

echo"<option value='$row1->ID_REASON'";

if ($row->ID_REASON==$row1->ID_REASON) {echo " selected";}

echo ">$s";

}

echo "</select></td></tr>

<tr>

<td valign=top>Список обучаемых:</td>

<td>

<table border=\"0\" cellpadding=\"2\" cellspacing=\"0\" width=100%>

<tr style=\"background:grey;padding-left:20px;\" align=left>

<th width=1%></th>

<th>№ п/п</th>

<th>Таб №</th>

<th>Ф.И.О.</th>

<th>Должность</th>

<th>Раб. место</th>

<th>Блок</th>

<th>Смена</th>

<th>Оценка</th>

</tr>";

$query="select o.id_man, m.fio, m.tabno, p1.name as postr, p2.name as postt, o.mark,";

$query=$query." p2.sort_pmt, o.block, o.smena";

$query=$query." from obuch_pmt o, men m, posts p1, posts p2 where";

$query=$query." o.id_training=$red and o.id_man=m.id_man";

$query=$query." and o.id_postr=p1.id_post and o.id_postt=p2.id_post order by 7, 2";

$rs1 = ibase_query($db, $query);

$i=0;

while($row1 = ibase_fetch_object($rs1))

{

$i++;

echo "<tr>

<td><input type=\"checkbox\" name=\"id_delobuch$i\" value=\"$row1->ID_MAN\"></td>

<td>$i</td>

<td>$row1->TABNO</td>

<td>$row1->FIO</td>

<td>$row1->POSTR</td>

<td>$row1->POSTT</td>

<td>$row1->BLOCK</td>

<td>$row1->SMENA</td>

<td>$row1->MARK</td>

</tr>";

}

echo "</table><br><input type=\"submit\" name=\"del_obuch\" value = \"Удалить отмеченных\"></td></tr></table><hr>";

if ($role==1)//если Техник по документации, то формируем рамку на добавление

{

echo "<fieldset><legend><b>Добавить обучаемых</b></legend>

<h5>Для добавления обучаемого нужно выбрать его в списке \"Ф.И.О.\" или набрать

его таб. № в поле \"Поиск по таб. №\" и нажать клавишу \"Enter\". Если такой

человек есть в списке обучаемых, то его имя появится в поле \"Ф.И.О.\"</h5>

<table>

<tr>

<td>Поиск по таб.№:</td> ";

echo"<td><input type=\"text\" id=\"t1\" name=\"tabno\" size=10 value=\"\">

<script for=\"t1\" event=\"onkeypress\">

<!--

if (event.keyCode==13)

{

for (var i=0; i<s1.length; i++)

{

if (s1.options[i].value==t1.value)

{

s1.selectedIndex=i;

SetPost(t1.value);

var obj1=document.getElementById('but1');

obj1.focus();

}

}

event.returnValue=false;

}

if ( (event.keyCode!=8)

&& (event.keyCode<48 || event.keyCode>57))

{

event.returnValue=false;

}

//-->

</script></td>

</tr>

<tr>

<td>Ф.И.О.:</td>

<td><select name=\"id_obuch\" id=\"s1\" onChange=SetPost(this.value) onMouseOver=Obnul() onKeyPress=Poisk()>";

$query="select m.tabno, m.fio, m.id_post, p.name from men m, posts p";

$query=$query." where m.id_post=p.id_post order by fio";

$rs1 = ibase_query($db, $query);

echo"<option value='-1'>";

while($row1 = ibase_fetch_object($rs1))

{

echo"<option value='$row1->TABNO'>$row1->FIO";

}

echo "</select>

</tr>

<tr>

<td>Должность:</td>

<td><select id=\"sel1\" name=\"id_postr\">";

$query="select id_post, name from posts order by name";

$rs1 = ibase_query($db, $query);

echo"<option value='-1'>";

while($row1 = ibase_fetch_object($rs1))

{

echo"<option value='$row1->ID_POST'>$row1->NAME";

}

echo "</select></td>

</tr>

<tr>

<td>Рабочее место:</td>

<td><select id=\"sel2\" name=\"id_postt\">";

$query="select id_post, name from posts order by name";

$rs1 = ibase_query($db, $query);

echo"<option value='-1'>";

while($row1 = ibase_fetch_object($rs1))

{

echo"<option value='$row1->ID_POST'>$row1->NAME";

}

echo "</select></td>

</tr>

<tr>

<td>Смена:</td>

<td><input type=\"text\" name=\"smenap\" size=10 value=\"\" id=\"inp3\"></td>

<tr>

<td>Блок:</td>

<td><input type=\"text\" name=\"blockp\" size=10 value=\"\" id=\"inp1\"></td>

</tr>

<tr>

<td>Оценка:</td>

<td><select name=\"mark\">

<option>зачет

<option>не зачет

</select></td>

</tr>

<tr><br><input type=\"hidden\" name=\"n_obuchs\" value = \"$i\">

<td><input type=\"submit\" name=\"add_obuch\" value = \"Добавить обучаемого\" id=\"but1\"></td></tr>

</table>

</fieldset>";

}

echo"<input type=\"hidden\" name=\"red\" value = \"$red\">";

if ($role==1)

{ //формируем кнопки ИЗМЕНИТЬ и УДАЛИТЬ для Техника по документации

echo "<br><input type=\"submit\" name=\"change\" value = \"Изменить\"></form>

<form action=\"conf_del_tr.php\" METHOD=\"POST\">

<input name=\"del_tr\" type=\"submit\" value=\"Удалить занятие\">

<input type=\"hidden\" name=\"red\" value = \"$red\">

<input type=\"hidden\" name=\"id_user\" value = \"$id_user\">";

}

//кнопка ПОКАЗАТЬ В ВИДЕ ОТЧЕТА доступна всем. при нажатии запускает rep_tr_all.php?red=$red в новом окне

echo "<input type=\"button\" id=\"b5\" value=\"Показать в виде отчета\">

<script for=\"b5\" event=\"onclick\">

<!--

window.open(\"rep_tr_all.php?red=$red\", false, 'width=670, left=30, top=30, menubar=1, height=550, resizable=no, scrollbars=yes');

//-->

</script>";

}

ibase_close($db);

?>

</body>

</html>