Федеральное государственное бюджетное образовательное учреждение высшего

профессионального образования «Алтайский государственный технический университет им. » (АлтГТУ)

УТВЕРЖДАЮ

И. о. проректора по научно-инновационной работе

(подпись)

М. П.

« __» 2012г.

ПРОГРАММА ДЛЯ ЭВМ

Программная система интеграции данных

Фрагменты исходного текста программы

Листов 39

Авторы:

(подпись)

_______________ (подпись)

_______________ (подпись)

г. Барнаул, 2012


Фрагменты исходного текста программы

--Разработчик:

--(вед. Программист Центра информационных систем Бийского технологического института)

--эл. почта: *****@

--

--Программная система интеграции данных ИС

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

--Можно выделить следующие этапы работы программы, которые являются ключевыми.

--1. Подключение к серверу БД интегрируемых ИС и извлечение онтологий этих ИС в формате OWL. Одна из выбранных онтологий указывается основной (главной), в которую необходимо произвести отображение концептов второй онтологии.

--2. Устанавливаются семантические связи понятий онтологий для определения их сходства по определенным критериям.

--3. Интеграция онтологий неоднородных информационных систем.

--4. Установление взаимосвязи ИС на структурном уровне, основываясь на согласованной семантике предметной области.

НЕ нашли? Не то? Что вы ищете?

--5. Интеграция данных. Формирование шаблона запросов на добавление информации из интегрируемой информационной системы в исходную.

--Обеспечивается совместная работа неоднородных ИС в контексте предметной области задачи на семантически значимом уровне.

create or replace PACKAGE BODY "ONTOLOGY_INTEGR" AS

pkg varchar2 (46):='http://db. biysk. *****/lic/lic.';

img VARCHAR2 (55) := 'http://vinograd. biysk. *****/img/guestbook/';

PROCEDURE Main

IS

BEGIN

BTI_TABBED_PANE. generate_for_web(

23 -- номер закладок по иденаницы

,'Интеграция данных'

,'' -

,'ПРОГРАММНАЯ СИСТЕМА ИНТЕГРАЦИИ ДАННЫХ ИС <br>'

,''

,'is'

,210);

END;

---Главная процедура добавления Программного обеспечения

PROCEDURE PO (id_structs_in integer default null, id_structs_rec number default null)

IS

PO integer; ---переменная считающая количество добавленных онтологий

CURSOR cur_struct IS select id, par, name_full, level llev from org. structs_type start with id=-1 connect by prior id=par;

BEGIN

bti_html. header('is','Информационная система "Интеграция данных"');

bti_styles. htpTableBlockOPEN('ИС "Интеграция ИС" - Первый шаг - "Выбор подразделения" ');

htp. p('<form enctype="multipart/form-data" method="post" action="'||pkg||'po_b" id="po_form" name="po_form">

<table class="tableRequest">

<tr><td colspan="2"><img src="'||img||'add. gif" alt="Добавить" border="0">Первый шаг - </td></tr>');

bti_forms. choiceDialogTR('Выбор подразделения:','po_form','id_structs_in',3,id_structs_in, id_structs_rec); -- тип диалога = 3 - это БТИ

htp. p('<tr><td colspan="2"><input type="submit" value="Продолжить"></td></tr>

</table>');

bti_styles. htpTableBlockCLOSE;

bti_html. footer;

END;

PROCEDURE PO_view (id_po_in integer default null,

id_structs_in integer default null,--приходит из процедуры выше

tip number default 0,

id_building_in number default null,

id_room_in number default null,

id_pc_in number default null,

id_spr_po_in number default null,

id_type_po_in number default null,

id_license_program_in number default null,

id_type_license_in number default null,

id_type_work_in number default null,

id_person_in number default null,

num_license_in varchar2 default null,

date_begin_in varchar2 default null,

date_end_in varchar2 default null,

date_setup_in varchar2 default null,

key_use_in number default null,

key_in varchar2 default null)

IS

po_rec license. po%ROWTYPE;

str varchar2(90);

but varchar2(90);

s integer;

BEGIN

bti_html. header('is','Информационная система " Интеграция данных "');

If tip=8 then str:='Добавление нового ПО';

Elsif tip=9 then str:='Изменение информации о ПО';

End If;

If id_po_in is not null then

but:='Принять';

bti_styles. htpTableBlockOPEN('Изменение параметров ПО');

SELECT * INTO po_rec from license. po where id=id_po_in;

Else

but:='Добавить';

bti_styles. htpTableBlockOPEN('Добавление нового ПО');

End If;

--тут в зависимотри от пришедшего типа отправим н адобавление в таблицы, редактирование и удаление

htp. p('<form enctype="multipart/form-data" method="post" action="'||pkg||'po_view" id="po_form" name="po_form">');

htp. p(bti_styles. htfButton('submit','but')||'</form>');

bti_styles. htpTableBlockCLOSE;

bti_html. footer;

END;

PROCEDURE PO_form (id_po_in integer default null,

id_structs_in integer default null,--приходит из процедуры выше

id_building_in number default null,

id_room_in number default null,

id_pc_in number default null,

id_spr_po_in number default null,

id_type_po_in number default null,

id_license_program_in number default null,

id_type_license_in number default null,

id_type_work_in number default null,

id_person_in number default null,

num_license_in varchar2 default null,

date_begin_in varchar2 default null,

date_end_in varchar2 default null,

date_setup_in varchar2 default null,

key_use_in number default null,

key_in varchar2 default null)

IS

PO integer; ---переменная считающая количество добавленных лицензий

building_rec license. building%ROWTYPE;

--room_rec license. room%ROWTYPE;

--pc_rec license. pc%ROWTYPE;

BEGIN

bti_html. header('is','Информационная система "Интеграция данных"');

bti_styles. htpTableBlockOPEN('ИС "Интеграция ИС" - Второй шаг - "Выбор подразделения" ');

htp. p('<table class="tableRequest">');

htp. p('<table class="tableRequest">');

bti_forms. formSelectNumTR(

field_name => 'Корпус'

,form_name => 'po_form' -- название формы в рамках которой рисуем запрос <form name="...">

,select_name => 'id_building_in' -- название <select name="...">

,stmt => 'SELECT id, name FROM license. building ORDER BY name' -- запрос выбора из справочника - только ДВА поля - первое NUMBER, второе - VARCHAR2(128) !

,ifb => id_building_in -- первое, с чем сравниваем, что обычно приходит в процедуру xxx_form

,ifa => building_rec. id -- второе, с чем сравниваем, что обычно выбираем в 'select.. from..' в процедуре xxx_form

,add_href => 'license. sprav. building_view' -- ссылка на функцию добавления новой строки к справочнику

,add_title => 'Добавить новый корпус' -- титул на кнопку

,clear_option => null -- нужен первый пустой <option>

--,add_option_name => 'Нет' -- нужено ли дополнительное поле - это его имя <-- по умолчанию - НЕТ.

,add_option_value => '-999' -- значение дополнительного поля

);

htp. p('<tr><td colspan="2"><input type="submit" value="Добавить"></td></tr>

</table>');

bti_styles. htpTableBlockCLOSE;

bti_html. footer;

END;

END;

create or replace PACKAGE BODY TOOLS IS

tab VARCHAR2(25):='ml';

--shem varchar2 (10):='library.';

--ww_p VARCHAR2(35):='http://db. biysk. *****/bti/lib1/'; -- место на www

pkg VARCHAR2(60) :='shablon. tools.'; --имя этого пакета

---- Вспомогательные процедуры ------

Procedure rtf_header

is

begin

htp. p('Content-type: application/msword');

htp. p('');

--htp. p('{\rtf1\ansi\utf-8

htp. p('{\rtf1\ansi\ansicpg1251\uc1 \deff0\deflang1033\deflangfe1049

{\fonttbl

{\f0\froman\fcharset0\fprq2{\*\panose }Times New Roman;}

{\f205\froman\fcharset204\fprq2{\*\panose }Times New Roman Cyr;}

{\f341\froman\fcharset238\fprq2 Times New Roman CE;}

{\f342\froman\fcharset204\fprq2 Times New Roman Cyr;}

{\f344\froman\fcharset161\fprq2 Times New Roman Greek;}

{\f345\froman\fcharset162\fprq2 Times New Roman Tur;}

{\f346\froman\fcharset186\fprq2 Times New Roman Baltic;}

}

{\colortbl;\red0\green0\blue0;\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue128;\red0\green128\blue128;\red0\green128\blue0;\red128\green0\blue128;\red128\green0\blue0;\red128\green128\blue0;\red128\green128\blue128;\red192\green192\blue192;}

{\stylesheet

{\nowidctlpar\widctlpar\adjustright \fs20\lang1049\cgrid \snext0 Обычный;}{\*\cs10 \additive Основной шрифт;}

}

{\info

{\title }

{\author }

{\operator }

{\creatim\yr2000\mo12\dy18\hr8\min50}

{\revtim\yr2000\mo12\dy18\hr9\min6}

{\version1}

{\edmins16}

{\nofpages1}

{\nofwords0}

{\nofchars0}

{\*\company }

{\nofcharsws0}

{\vern73}

}

\paperw11906\paperh16838\margl851\margr567\margt567\margb567 {\comment параметры страницы}

\widowctrl\ftnbj\aenddoc\formshade\viewkind1\viewscale90\viewzk2\pgbrdrhead\pgbrdrfoot

\fet0\sectd

\linex0\headery709\footery709\colsx709\endnhere\sectdefaultcl ');

end;

Procedure rtf_footer

is

begin

htp. p('\pard

\nowidctlpar\widctlpar\adjustright

}');

end;

-----

-- Пpоцедуpа nодтвеpждения nечати из буфеpа

Procedure vprint

is

k boolean default true;

qwerty varchar2(6) default NULL;

begin

htp. p('

<form action="'||pkg||'mprint" target="_blank" method="POST" name="q" onsubmit="return warning()"><br><br>');

HTP. P('

<font size=+1 color="#804000">Печать из буфера</font><br><br><br>

<font size=-1 color="#804000">');

htp. p('

<br><br><br></font>

<input type="Submit" value=" Печать "><input type="Reset" value="Очистить"><br><br>

</form>

');

end;

---

-- Пpоцедуpа nечати из буфеpа rtf-документов

Procedure mprint

is

/*

CURSOR cur_for_ml3

IS

SELECT SODERG

FROM ML3

WHERE RECORD_ID=VYBN;

*/

--19/04/2005

--Коментарии для конвертации из одной кодировки в другую

CURSOR CUR_FOR_SODERG IS

select id, ld, id_group, fam from senior;

v_r senior. id%TYPE ;

v_a1 senior. ld%TYPE ;

v_a2 senior. id_group%TYPE ;

v_a3 senior. fam%TYPE ;

sql_stat varchar(2000);

i number;

cur integer; -- перменная-указатель курсора

c_return integer; -- перменная, которая хранит результат выполнения курсора

ii integer:=0;

begin

----- Заголовок rtf-ника -

rtf_header;

i:=1;

А в цикле печатаем карточки

for rec in CUR_FOR_SODERG loop

ii:=ii+1;

if ii<5 then

htp. prn('

\trowd

\trgaph108\trrh200\trleft-108\trkeep

\clvertalb

\clbrdrt\brdrs\brdrw10

\clbrdrl\brdrs\brdrw10

\cltxlrtb

\cellx367

\clvertalt

\clbrdrt\brdrs\brdrw10

\clbrdrr\brdrs\brdrw10

\cltxlrtb

\cellx4968

\clvertalt

\clbrdrt\brdrs\brdrw10

\clbrdrr\brdrs\brdrw10

\cltxlrtb

\cellx4968

\pard\plain

\qr\nowidctlpar\widctlpar\intbl\adjustright

{\f205\fs18\lang1033 '||rec. id||'\cell }

\nowidctlpar\widctlpar\intbl\adjustright

\qr\nowidctlpar\widctlpar\intbl\adjustright

{\f205\fs18\lang1033 '||rec. id||'\cell }

\nowidctlpar\widctlpar\intbl\adjustright

{\cell }

\pard

\nowidctlpar\widctlpar\intbl\adjustright

{\row }

\trowd

\trgaph108\trrh454\trleft-108\trkeep

\clvertalc

\clbrdrl\brdrs\brdrw10

\cltxlrtb

\cellx367

\clvertalt

\clbrdrr\brdrs\brdrw10

\cltxlrtb

\cellx4968

\clvertalt

\clbrdrr\brdrs\brdrw10

\cltxlrtb

\cellx4968

\qr\nowidctlpar\widctlpar\intbl\adjustright

{\f205\fs18\lang1033 '||rec. id_group||'\cell }

\qr\nowidctlpar\widctlpar\intbl\adjustright

\pard

\qr\nowidctlpar\widctlpar\intbl\adjustright

{\f205\fs18\lang1033 куку \cell }

\nowidctlpar\widctlpar\intbl\adjustright

{\cell }

\pard

\nowidctlpar\widctlpar\intbl\adjustright

{\row }

\trowd

\trgaph108\trrh3194\trleft-108\trkeep

\clvertalt

\clbrdrl\brdrs\brdrw10

\clbrdrb\brdrs\brdrw10

\cltxlrtb

\cellx367

\clvertalt

\clbrdrr\brdrs\brdrw10

\cltxlrtb

\cellx4968

\clvertalt

\clbrdrr\brdrs\brdrw10

\cltxlrtb

\cellx4968

{\cell}

{\f205\b\fs20\lang1033 ');

htp. prn(convert(' привет ','CL8MSWIN1251','CL8ISO8859P5'));

htp. prn(', '||rtrim(convert(rec. fam,'CL8MSWIN1251','CL8ISO8859P5')));

htp. prn ('} {\f205\fs20\lang1033 \par ');

htp. prn ('} {\f205\fs20\lang1033 ');

------

htp. prn('\cell }

\qr\nowidctlpar\widctlpar\intbl\adjustright

{\f205\fs18\lang1033 '||rec. id_group||'\cell }

\pard

\nowidctlpar\widctlpar\intbl\adjustright

{\row }

');

if ((i/3)-(ceil(i/3)) = 0) then

htp. p('

\pard

\nowidctlpar\widctlpar\adjustright

\par \page

\par

');

end if;

i:=i+1;

end if;

end loop;

rtf_footer;

END; -- npоцедуpа nечати из буфеpа

END;

create or replace PACKAGE BODY " INTEGRAT_ADMIN" AS

pkg varchar2 (60):='http://db. biysk. *****/shablon/ INTEGRAT_ADMIN.';

img VARCHAR2 (46) := 'http://www. bti. *****/pr_kom/i/';

img3 VARCHAR2 (46) := 'http://www. bti. *****/pr_kom/';--URL адрес (для ссылки на картинки)

Procedure adm(error varchar2 default null, first number default 1)

is

u varchar2(2048):=' ';

h number:=0;

fios varchar2 (512);

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

begin

HEAD1;

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

if first = 1 and h=0 then

if error is not null then

htp. p('<center>'||error||'</center>');

end if;

HTP. p('<br><br>

<FORM ACTION="'||pkg||'autorize" method="post" name="login" onsubmit="">

<table class="none" align="center" border="0" valign="top" cellpadding="0" cellspacing="5">

<tr><td align="center" colspan="2"><h3>Вход в сиcтему</h3></td></tr>

<tr>

<td align="right">Логин:</font></td>

<td align="left""><input type="text" name="login_in" value="" size="7" maxlength="15" tabindex="16"></td>

</tr>

<tr>

<td align="right">Пароль:</td>

<td align="left"><input type="password" name="password_in" value="" size="7" maxlength="15" tabindex="17"></td>

</tr>

<tr>

<td align="center" colspan="2"><input class="button" type="submit" value="Войти" width="20" height="40"></td></tr>

</table>

</FORM></body>

</html>');

elsif first = 1 and h>0 then main;

elsif first = 2 then

main;

end if;

foot;

END;

PROCEDURE AUTORIZE(login_in VARCHAR DEFAULT NULL, password_in VARCHAR DEFAULT NULL)

IS

CURSOR cur_log IS SELECT * FROM users WHERE login = login_in;

c integer;

encrypted_string varchar2(2048);

BEGIN

c:=0;

IF ((login_in IS NOT NULL) AND (password_in IS NOT NULL)) THEN

select count(*) into c from users where login = login_in;

IF c!=0 then

FOR cur_log_rec IN cur_log LOOP

IF ((login_in = cur_log_rec. login) AND (password_in = cur_log_rec. PASSWORD)) and (cur_log_rec. lev>=3) THEN

encrypted_string := iface. img_gen. gethashgb(to_char(cur_log_rec. id_user));

OWA_COOKIE. send('idus',encrypted_string);

owa_util. redirect_url(pkg||'adm? error='||UTL_URL. ESCAPE('Успешная авторизация', true, 'ISO-8859-5')||'&first=2',TRUE);

else owa_util. redirect_url(pkg||'adm? error='||UTL_URL. ESCAPE('Вы ввели неправильный пароль', true, 'ISO-8859-5')||'&first=1',TRUE);

END IF;

END LOOP;

else

owa_util. redirect_url(pkg||'adm? error='||UTL_URL. ESCAPE('Такого аккаунта в системе не найдено', true, 'ISO-8859-5')||'&first=1',TRUE);

end if;

else

owa_util. redirect_url(pkg||'adm? error='||UTL_URL. ESCAPE('Вы не ввели логин и пароль', true, 'ISO-8859-5')||'&first=1',TRUE);

END IF;

END;

PROCEDURE HEAD1

IS

BEGIN

htp. p('<html>

<head>

<title>Приемная кампания</title>

<!--<link href="http://www. bti. *****/pr_kom/style_oracle. css" rel="stylesheet" type="text/css">-->

<style type="text/css">

body{

background: #F0F0F0;

color: #000000;

font: 15px/20px Arial, Serif;

margin: 15px 15px;

}

.top {

background: url("http://www. bti. *****/pr_kom/images/top. png") no-repeat;

padding: 60px 30px 20px 0px;

width: 1100px;

font: 18px/20px Arial, Serif;

}

.center{

background: url("http://www. bti. *****/pr_kom/images/center. png") no-repeat;

padding: 10px 70px;

width: 1100px;

}

.center2{

background: url("http://www. bti. *****/pr_kom/images/center2.png") no-repeat;

width: 970px;

height: 593px;

margin:10px auto 5px;

}

.bottom {

background: url("http://www. bti. *****/pr_kom/images/bottom. png") no-repeat;

width: 1100px;

height: 360px;

}

.block_bg {

background: url("http://www. bti. *****/pr_kom/images/block_bg. png") repeat-y;

width: 1089px;

}

.botton {

background: url("http://www. bti. *****/pr_kom/images/botton. png") no-repeat;

padding: 8px 30px 1px 0px;

width: 132px;

height: 51px;

}

.botton2 {

background: url("http://www. bti. *****/pr_kom/images/botton2.png") no-repeat;

padding: 8px 30px 1px 0px;

width: 182px;

height: 48px;

}

</style>

</head>

<body>

<!--<div class="top"><center>Администрирование сайта " "</center></div>

<div class="block_bg">

<div class="center"> -->

<div class="center2">

<br><br><br><br><br><br>

');

END;

PROCEDURE FOOT

IS

BEGIN

htp. p('

</div>

<!--</div>

<div class="bottom"></div> -->

&copy; ЦИС БТИ

</body></html>');

END;

procedure main

is

begin

htp. p('

<TABLE WIDTH="85%" align="center">

<CAPTION></CAPTION>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle" align="right"><a class="zagol" href="'||pkg||'closeadm"><font size="2">Выход</font></a></TD></TR>

<TR ><TH> Работа с ами </TH></TR>

<TR><TD> Cписoк ов, подавших заявления </TD>

<TD ALIGN=CENTER><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_EVERY_DAY? CAT_in=1">Добавить</a></div></TD>

<TD ALIGN=CENTER><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in=1">Посмотреть</a></div></TD>

<TD ALIGN=CENTER><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_PUBLIC? CAT_in=1">Опубликовать</a></div></TD>

</TR>

<TR><TD> Предварительный список ов рекомендуемых и кандидатов на зачисление </TD>

<TD ALIGN=CENTER ><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_EVERY_DAY? CAT_in=2">Добавить</a></div></TD>

<TD ALIGN=CENTER ><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in=2">Посмотреть</a></div></TD>

<TD ALIGN=CENTER ><div class="botton"> <a href="'||pkg||'EK_ADD_ INTEGRAT_PUBLIC? CAT_in=2">Опубликовать</a></div></TD>

</TR>

<TR><TD> Список зачисленных на первый курс обучения </TD>

<TD ALIGN=CENTER ><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_EVERY_DAY? CAT_in=3">Добавить</a></div></TD>

<TD ALIGN=CENTER ><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in=3">Посмотреть</a></div></TD>

<TD ALIGN=CENTER ><div class="botton"><a href="'||pkg||'EK_ADD_ INTEGRAT_PUBLIC? CAT_in=3">Опубликовать</a></div></TD>

</TR>

<TR ><TH> <a class="zagol" href="'||pkg||'STAT"><font size="2">Просмотреть статистику приема заявлений</font></a></Th></TR>

<TR ><TH> <a href="'||pkg||'main_sprav">Работа со справочниками</a></TH></TR>

<TR ><TH> <a href="'||pkg||'main_sslk">Работа со ссылками в меню сайта </a></TH></TR>

</TABLE>

');

end;

Procedure closeadm

is

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

u varchar2(2048):=' ';

l integer;

h number:=0;

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

OWA_COOKIE. remove('idus',h);

owa_util. redirect_url(pkg||'adm',TRUE);

end;

procedure main_sprav

is

begin

head1;

htp. p('

<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>

<TABLE WIDTH="85%" align="center" >

<CAPTION></CAPTION>

<TR><TH > Работа со справочниками </TH></TR>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle">

<a class="zagol" href="'||pkg||'add_edit_spec">Администрирование справочника "Специальности"</a></td></TR>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle"><a class="zagol" href="entry_komis. vopros_rasdel">Администрирование раздела "Вопрос-ответ"</a></td></TR>

</TABLE>

');

foot;

end;

procedure main_sslk

is

begin

head1;

htp. p('

<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>

<TABLE WIDTH="85%" align="center">

<CAPTION></CAPTION>

<TR><TH > Работа со ссылками в меню сайта </TH></TR>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle">

<b><font size="2">ссылка на Статистику приема заявлений</b></font> <br>

http://www. bti. *****/pr_kom/stat. shtml </td></TR>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle">

<b><font size="2">ссылка на Cписoк ов, подавших заявления </b></font><br>

http://db. biysk. *****/shablon/ INTEGRAT_ADMIN. INTEGRAT_SITE? CAT_in=1 </td></TR>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle">

<b><font size="2">ссылка на Предварительный список ов рекомендуемых и кандидатов на зачисление</b></font><br>

http://db. biysk. *****/shablon/ INTEGRAT_ADMIN. INTEGRAT_SITE? CAT_in=2 </td></TR>

<tr><td COLSPAN=4 HEIGHT=25 valign="middle">

<b><font size="2">ссылка на Список зачисленных на первый курс обучения</b></font> <br>

http://db. biysk. *****/shablon/ INTEGRAT_ADMIN. INTEGRAT_SITE? CAT_in=3 </td></TR>

</TABLE>');

foot;

end;

procedure add_edit_spec

is

u varchar2(2048):=' ';

h number:=0;

fios varchar2 (512);

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

notlink integer; -- количтсво специальностей без связи

cursor Scur is select s.* from INTEGRAT_SPEC s order by s. name;

name_in varchar2(4000);

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

Head1;

if h>0 then

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

htp. p(' <h3>Специальности БТИ</h3>');

htp. p('<a href="'||pkg||'add_spec? id_spec_in=0">

<img src="'||img||'add. gif" border=0></a> - Добавить новую специальность ');

htp. p('<TABLE CELLSPACING=0 CELLPADDING="0" WIDTH="800" border=1><TR>

<th><font size="2">Код</font></th>

<th><font size="2">Форма обучения</font></th>

<th><font size="2">Название</font></th>

<th><font size="2">Вступительные испытания</font></th>

<th><font size="-2">План набора: <br>Всего бюджетных мест<br>(из них целевые)</font></th>

<th><font size="2">Редакти<br>ровать</font></th>

<th><font size="2">Удалить</font></th>

</TR>');

FOR Srec IN Scur LOOP

select name_branch into name_in from branch where srec. id_branch=id_branch;

htp. p('<TR>

<TD align="center"><font size="2">'||Srec. id_v||'</font></TD>

<TD align="center"><font size="2">'||name_in||'</font></TD>

<TD ><font size="2">'||Srec. name||' ('||Srec. abbr||')</font></TD>

<TD align="center"><font size="2">'||Srec. t1||', '||Srec. t2||', '||Srec. t3||'</font></TD>

<TD title="Всего бюджетных мест (из них целевые)" align="center">

<font size="2">'||Srec. PLAN||' ('||Srec. PLAN_TARGET||')</font></TD>

<TD align="center"><a href="'||pkg||'add_spec? id_spec_in='||Srec. id_v||'" title="Редактировать">

<img src="'||img||'edit. gif" border=0></a></TD>

<TD align="center"><a href="'||pkg||'spec_del? id_spec_in='||Srec. id_v||'" title="Удалить">

<img src="'||img||'del. gif" border=0></a></TD>

</TR>');

END LOOP;

htp. p('</table>');

end if;

foot;

end;

PROCEDURE spec_del(id_spec_in number default 0)

IS

BEGIN

delete from integrat_spec where id_v=id_spec_in;

htp. p('<font class="text">Удалено успешно <a href="'||pkg||'add_edit_spec">Перейти</a>');

END;

procedure add_spec (id_spec_in number)

is

u varchar2(2048):=' ';

h number:=0;

fios varchar2 (512);

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

cursor Scur is select s.* from integrat_spec s where s. id_v = id_spec_in;

cursor fcur is select f.* from facultet f;

cursor bcur is select b.* from branch b;

cursor Lcur is select e.* from edu_level e;

name_level_in varchar2(100);

k number; --переменная для нумерации ССУзов как и в процедуре add_link_form

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

Head1;

if h>0 then

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

htp. p('<FORM ACTION="'||pkg||'add_spec_res" method="post" name="spec" onsubmit="return warning2()">

<input type="hidden" name="id_spec_in" value="'||id_spec_in||'">

<TABLE CELLSPACING=0 BORDER="0" bordercolor="#000000" CELLPADDING="7" WIDTH="99%">');

if id_spec_in=0 then

htp. p('<TR><TD VALIGN="TOP" COLSPAN=2 HEIGHT="45" valign="middle" align="center"><font class="zag">Добавление информации о специальности</font></td></tr>

<TR><TD ><font class="text">Код:</font></TD><TD ><input type="text" name="id_v_in" value="" size="20"></TD></TR>

<TR><TD ><font class="text">Название</font></TD><TD >

<textarea name="name_in" rows="5" cols="50"></textarea></TD></TR>

<TR><TD ><font class="text">Аббревиатура</font></TD>

<TD ><input type="text" name="abbr_in" value="" size="20"></TD></TR>

<tr><TD width="15%"><font class="text">Факультет</font></TD>

<td ><select name="fac_in">

<option value="0"></option>');

for frec in fcur loop

htp. p('<option value="'||frec. id_fac||'">'||frec. abbr_fac||'</option>');

end loop;

htp. p('</select></td></tr>');

htp. p('<tr><TD width="15%"><font class="text">Форма обучения</font></TD>

<td ><select name="branch_in">

<option value="0"></option>');

for brec in bcur loop

htp. p('<option value="'||brec. id_branch||'">'||brec. name_branch||'</option>');

end loop;

htp. p('</select></td></tr>');

htp. p('<TR><TD width="15%"><font class="text">Уровень образования:</font></TD>

<TD ><select name="id_level_in">

<option value="0"></option>');

for Lrec in Lcur loop

htp. p('<option value="'||Lrec. id_level||'">'||Lrec. name_level||'</option>');

end loop;

htp. p('</select></TD></TR>');

htp. p('

<TR><TD ><font class="text">Экзамен №1:</font></TD><TD ><input type="text" name="test1_in" value="" size="100"></TD></TR>

<TR><TD ><font class="text">Экзамен №2:</font></TD><TD ><input type="text" name="test2_in" value="" size="100"></TD></TR>

<TR><TD ><font class="text">Экзамен №3:</font></TD><TD ><input type="text" name="test3_in" value="" size="100"></TD></TR>

<TR><TD ><font class="text">Всего бюджетных мест:</font></TD><TD ><input type="text" name="plan_in" value="" size="100"></TD></TR>

<TR><TD ><font class="text">Из них целевые места:</font></TD><TD ><input type="text" name="plan_target_in" value="" size="100"></TD></TR>

<TR><TD colspan="2"><input type="submit" value="Добавить"></TD></TR>');

else

for rec in Scur loop

htp. p('<TR><TD VALIGN="TOP" COLSPAN=2 HEIGHT="45" valign="middle" align="center"><font class="zag">Добавление информации о специальности</font></td></tr>

<TR><TD ><font class="text">Название</font></TD>

<TD > <textarea name="name_in" rows="5" cols="50">'||rec. name||'</textarea>

</TD></TR>

<TR><TD ><font class="text">Аббревиатура</font></TD>

<TD ><input type="text" name="abbr_in" value="'||rec. abbr||'" size="20"></TD></TR>

<tr><TD width="15%"><font class="text">Факультет</font></TD>

<td ><select name="fac_in">

<option value="'||rec. id_fac||'"></option>');

for frec in fcur loop

htp. p('<option value="'||frec. id_fac||'">'||frec. abbr_fac||'</option>');

end loop;

htp. p('</select></td></tr>');

htp. p('<tr><TD width="15%"><font class="text">Форма обучения</font></TD>

<td ><select name="branch_in">

<option value="'||rec. id_branch||'"></option>');

for brec in bcur loop

htp. p('<option value="'||brec. id_branch||'">'||brec. name_branch||'</option>');

end loop;

htp. p('</select></td></tr>');

htp. p('<TR><TD width="15%"><font class="text">Уровень образования:</font></TD>

<TD ><select name="id_level_in">

<option value="'||rec. id_level||'"></option>');

for Lrec in Lcur loop

htp. p('<option value="'||Lrec. id_level||'">'||Lrec. name_level||'</option>');

end loop;

htp. p('</select></TD></TR>');

htp. p('

<TR><TD colspan=2><font class="text">Экзамен №1:</font><input type="text" name="test1_in" value="'||rec. T1||'" size="100"></TD></TR>

<TR><TD colspan=2><font class="text">Экзамен №2:</font><input type="text" name="test2_in" value="'||rec. T2||'" size="100"></TD></TR>

<TR><TD colspan=2><font class="text">Экзамен №3:</font><input type="text" name="test3_in" value="'||rec. t3||'" size="100"></TD></TR>

<TR><TD colspan=2><font class="text">Всего бюджетных мест:</font><input type="text" name="plan_in" value="'||rec. plan||'" size="100"></TD></TR>

<TR><TD colspan=2><font class="text">Из них целевые места:</font><input type="text" name="plan_target_in" value="'||rec. plan_target||'" size="20"></TD></TR>

<TR><TD colspan="2"><input type="submit" value="Добавить"></TD></TR>');

end loop;

end if;

htp. p('</table>

<SCRIPT LANGUAGE="JavaScript">

function warning2()

{

if (document. spec. id_v_in. value=="")

{

wid=window. open("","","width=300,height=150");

wid. focus();

wid. document. open();

wid. document. write("<html><title>ERROR</title><body><center>");

wid. document. write("<form><center><br>Не заполнен код специальности<br><br></center><input type=button onClick=''window. close();'' value='' OK ''></form></center>");

wid. document. write("</body></html>");

wid. document. close();

return false;

}

if (document. spec. name_in. value=="")

{

wid=window. open("","","width=300,height=150");

wid. focus();

wid. document. open();

wid. document. write("<html><title>ERROR</title><body><center>");

wid. document. write("<form><center><br>Не заполнено название специальности<br><br></center><input type=button onClick=''window. close();'' value='' OK ''></form></center>");

wid. document. write("</body></html>");

wid. document. close();

return false;

}

if (document. spec. fac_in. value=="")

{

wid=window. open("","","width=300,height=150");

wid. focus();

wid. document. open();

wid. document. write("<html><title>ERROR</title><body><center>");

wid. document. write("<form><center><br>Не заполнена принадлежность к факультету<br><br></center><input type=button onClick=''window. close();'' value='' OK ''></form></center>");

wid. document. write("</body></html>");

wid. document. close();

return false;

}

if (document. spec. branch_in. value=="")

{

wid=window. open("","","width=300,height=150");

wid. focus();

wid. document. open();

wid. document. write("<html><title>ERROR</title><body><center>");

wid. document. write("<form><center><br>Не заполнена принадлежность к форме обучения<br><br></center><input type=button onClick=''window. close();'' value='' OK ''></form></center>");

wid. document. write("</body></html>");

wid. document. close();

return false;

}

if (document. spec. id_level_in. value=="")

{

wid=window. open("","","width=300,height=150");

wid. focus();

wid. document. open();

wid. document. write("<html><title>ERROR</title><body><center>");

wid. document. write("<form><center><br>Не заполнена принадлежность к уровню обучения<br><br></center><input type=button onClick=''window. close();'' value='' OK ''></form></center>");

wid. document. write("</body></html>");

wid. document. close();

return false;

}

return true;

}

</script>

</form>');

end if;

foot;

end;

procedure add_spec_res(id_spec_in number default 0,name_in varchar2 default null,

id_v_in number default 0,

abbr_in varchar2 default null,

test1_in varchar2 default null,

test2_in varchar2 default null,

test3_in varchar2 default null,

fac_in number default null,

branch_in number default null,

id_level_in number default null,

plan_in number default null,

plan_target_in number default null)

is

u varchar2(2048):=' ';

h number:=0;

fios varchar2 (512);

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

n integer;

c integer; -- счетчик добавленных тестов уровня

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

head1;

if h>0 then

IF id_spec_in=0 then

insert into integrat_spec values(id_v_in, id_level_in, branch_in, fac_in, name_in, abbr_in, test1_in, test2_in, test3_in, plan_in, plan_target_in);

htp. p('<font class="text">Добавлено успешно <a href="'||pkg||'add_edit_spec">Перейти</a>');

else

update integrat_spec set

id_level=id_level_in,

id_branch=branch_in,

id_fac=fac_in,

name=name_in,

abbr=abbr_in,

t1=test1_in,

t2=test2_in,

t3=test3_in,

plan=plan_in,

plan_target=plan_target_in

where id_v=id_spec_in;

htp. p('<font class="text">Добавлено успешно <a href="'||pkg||'add_edit_spec">Перейти </a>');

end if;

end if;

foot;

end;

Procedure EK_ADD_ INTEGRAT_EVERY_DAY(tip number default 0,

file1 varchar2 default null,

file2 varchar2 default null,

file3 varchar2 default null,

CAT_in number default 1

)

IS

cursor cur_fac is select * from facultet order by id_fac;

cursor cur_osnovanie is select * from ek_osnovanie_v order by id;

cursor cur_spec is select * from speciality order by id;

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

u VARCHAR(2048):=' ';

h NUMBER:=0;

name_in varchar2(4000);

fname1 varchar2(255):='Entry_komis. csv'; --// имя файла

fname2 varchar2(255):='Entry_komis2.csv'; --// имя файла

fname3 varchar2(255):='Entry_komis3.csv'; --// имя файла

dir_name varchar2(255):='EXT_TAB'; --// каталог в файловой системе сервера или имя объекта DIRECTORY // ссылающегося на каталог

f utl_file. file_type; --// дескриптор файла

example blob;

f1 bfile;

f1_size number;

v_buffer raw (32767);

v_amount binary_integer := 32767;

v_pos integer := 1;

v_blob_len integer;

h1 number:=0;

f2 utl_file. file_type;

f3 utl_file. file_type;

begin

head1;

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

if h>0 then

if tip=1 then

iF file1 is not null THEN

---

select blob_content into example from iface. docupload where NAME = FILE1; -- // выбираем

f:= utl_file. fopen(dir_name, fname1,'wb',32676); -- // открываем файл

v_blob_len := dbms_lob. getLength(example);

while v_pos < v_blob_len loop

dbms_lob. read (example, v_amount, v_pos, v_buffer);

utl_file. put_raw(f, v_buffer, true);

v_pos := v_pos + v_amount;

end loop;

utl_file. fclose(f);

COMMIT;

----

DELETE FROM iface. docupload WHERE NAME = FILE1;

delete from integrat_declaration aa where aa. CAT=CAT_in and aa. ID_BRANCH =1;

insert into integrat_declaration(ID_SPEC, UP, ID_EK_OSNOVANIE, FIO, T1,T2,T3,ID_EK_DOCUMENT, R_K_P, CAT, id_branch) select ID_SPEC, UP, ID_EK_OSNOVANIE, FIO, T1,T2,T3,ID_EK_DOCUMENT, R_K_P, CAT_in,1 from integrat_load;

commit;

-- conversion;

htp. p('

<h3 align="center">ДАННЫЕ ПО ДНЕВНИКАМ ЗАГРУЖЕНЫ</h3><br /><br />

');

end if;

iF file2 is not null THEN

---

v_amount:= 32767;

v_pos:= 1;

select blob_content into example from iface. docupload where NAME = FILE2; -- // выбираем

f2:= utl_file. fopen(dir_name, fname2,'wb',32676); -- // открываем файл

v_blob_len := dbms_lob. getLength(example);

while v_pos < v_blob_len loop

dbms_lob. read (example, v_amount, v_pos, v_buffer);

utl_file. put_raw(f2,v_buffer, true);

v_pos := v_pos + v_amount;

end loop;

utl_file. fclose(f2);

COMMIT;

----

DELETE FROM iface. docupload WHERE NAME = FILE2;

delete from integrat_declaration aa where aa. CAT=CAT_in and aa. ID_BRANCH =2;

insert into integrat_declaration(ID_SPEC, UP, ID_EK_OSNOVANIE, FIO, T1,T2,T3,ID_EK_DOCUMENT, R_K_P, CAT, id_branch) select ID_SPEC, UP, ID_EK_OSNOVANIE, FIO, T1,T2,T3,ID_EK_DOCUMENT, R_K_P, CAT_in,2 from integrat_load_och_zaoch;

commit;

--conversion;

htp. p('

<h3 align="center">ДАННЫЕ ПО ВЕЧЕРНИКАМ ЗАГРУЖЕНЫ</h3><br /><br />

');

end if;

iF file3 is not null THEN

---

v_amount:= 32767;

v_pos:= 1;

select blob_content into example from iface. docupload where NAME = FILE3; -- // выбираем

f3:= utl_file. fopen(dir_name, fname3,'wb',32676); -- // открываем файл

v_blob_len := dbms_lob. getLength(example);

while v_pos < v_blob_len loop

dbms_lob. read (example, v_amount, v_pos, v_buffer);

utl_file. put_raw(f3,v_buffer, true);

v_pos := v_pos + v_amount;

end loop;

utl_file. fclose(f3);

COMMIT;

----

DELETE FROM iface. docupload WHERE NAME = FILE3;

delete from integrat_declaration aa where aa. CAT=CAT_in and aa. ID_BRANCH =3;

insert into integrat_declaration(ID_SPEC, UP, ID_EK_OSNOVANIE, FIO, T1,T2,T3,ID_EK_DOCUMENT, R_K_P, CAT, id_branch) select ID_SPEC, UP, ID_EK_OSNOVANIE, FIO, T1,T2,T3,ID_EK_DOCUMENT, R_K_P, CAT_in,3 from integrat_load_zaoch;

commit;

-- conversion;

htp. p('

<h3 align="center">ДАННЫЕ ЗАГРУЖЕНЫ</h3><br /><br />

');

end if;

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

htp. p('

<h3 align="center"><a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in='||CAT_in||'">Просмотреть список</a></h3><br /><br />

');

elsif tip=0 then

if CAT_in=1 THen

name_in:=' , подавших заявления';

elsif CAT_in=2 THen

name_in:='в предварительный список рекомендуемых, кандидатов на зачисление';

elsif CAT_in=3 THen

name_in:=', зачисленных на 1й курс обучения';

end if;

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

HTP. p('

<center>

<form enctype="multipart/form-data" action="'||pkg||'EK_ADD_ INTEGRAT_EVERY_DAY" method="POST" name="user">

<INPUT TYPE="hidden" NAME="tip" VALUE="1">

<INPUT TYPE="hidden" NAME="CAT_in" VALUE="'||CAT_in||'">

<b>Добавление списка ов

'||name_in||'

</b><br>

<br>

<b>Очная форма обучения</b><br>

<b><font color=red>Загрузить файл:</font> </b>

<input type="file" name="file1" size="40" value="Обзор" tabindex="1" >

<br><br><b>Вечерняя форма обучения</b><br>

<b><font color=red>Загрузить файл:</font> </b>

<input type="file" name="file2" size="40" value="Обзор" tabindex="1" >

<br><br><b>Заочная форма обучения</b><br>

<b><font color=red>Загрузить файл:</font> </b>

<input type="file" name="file3" size="40" value="Обзор" tabindex="1" >

<br><br><br>

<input type="submit" value="Загрузить" tabindex="2">

</form>

<br><br>

<b><a href="'||pkg||'EK_ADD_ INTEGRAT_EVERY_DAY? tip=2">Правила добавления списка ов</a></b> <br><br>

</center>

');

elsif tip=2 then

htp. p('

<center>

<b>ПРИМЕР ФОРМИРОВАНИЯ ЗАПИСИ ДЛЯ ДОБАВЛЕНИЯ В СИСТЕМУ</b><br>

…..

<b> <font color=red>ВНИМАНИЕ! </font>

<br>Для изменения каких - либо сведений в уже размещенном списке на сайте,

<br>необходимо ЗАГРУЗИТЬ ФАЙЛ с онтологией ЗАНОВО и ОПУБЛИКОВАТЬ материал.<br><br><br>

</center> ');

end if;

end if;

foot;

END;

Procedure EK_ADD_ INTEGRAT_SHOW(tip number default 0,

id_spec_dl number default 0,

CAT_in number default 0)

IS

--курсор по уровню обучения

cursor Bcur is select distinct b. id_branch, b.name_branch

from branch b, INTEGRAT_SPEC SV, INTEGRAT_DECLARATION ad

where b. id_branch=SV. id_branch and sv. id_v=ad. id_spec and ad. CAT=CAT_in

order by b. id_branch;

cursor Fcur(b integer) is select distinct f. id_fac, f. name_fac, f. abbr_fac

from facultet f, INTEGRAT_SPEC SV, INTEGRAT_DECLARATION ad

where f. id_fac=SV. id_fac and SV. id_branch = b and sv. id_v=ad. id_spec and ad. CAT=CAT_in

order by f. id_fac;

cursor Scur(f integer, b integer) is select distinct sv. id_v, f. name_fac, f.abbr_fac, sv. name, sv. abbr, b. id_branch, b. name_branch, sv. t1, sv. t2, sv. t3

from INTEGRAT_SPEC SV, facultet f, branch b, INTEGRAT_DECLARATION ad

where SV. id_fac=f. id_fac and b. id_branch=SV. id_branch and SV. id_fac = f and SV. id_branch = b and SV. id_v=ad. id_spec and ad. CAT=CAT_in

order by sv. name;

cursor Cur_ab_r(j integer) is select ad.*, b. name name_osn, c. name name_doc

from INTEGRAT_DECLARATION ad, ek_osnovanie b, ek_document c

where ad. id_ek_osnovanie=b. id and ad. id_ek_document=c. id and ad. id_spec=id_spec_dl and ad. r_k_p=j and ad. CAT=CAT_in order by ad. up;

cursor Cur_ab is select ad.*, b. name name_osn, c. name name_doc

from INTEGRAT_DECLARATION ad, ek_osnovanie b, ek_document c

where ad. id_ek_osnovanie=b. id and ad. id_ek_document=c. id and ad. id_spec=id_spec_dl and ad. CAT=CAT_in order by ad. up;

cc integer; -- счетчик количества результатов зачисления по уровню обучения

name_in varchar2(4000);

t1_in varchar2(4000);

t2_in varchar2(4000);

t3_in varchar2(4000);

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

u VARCHAR(2048):=' ';

h NUMBER:=0;

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

htp. p('<html>

<head>

<title>Приемная комиссия Бийского технологического института</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link href="http://www. bti. *****/pr_kom/st_pk_bd. css" rel="stylesheet" type="text/css">

</head>

<body>

<FORM class="form" align="right" enctype="multipart/form-data" ACTION="'||pkg||'EK_search" name="fio" method="get" style="height:20px;" >

<input type="hidden" name="CAT_in" value="'||CAT_in||'">

<div style="padding-top:0px;padding-bottom:0px; vertical-align:top; " align="right"><b>ПОИСК</b>

<input name="name_dl" maxlength="100" class="query" type="text" size="65" value="Введите Фамилию Имя Отчество..." onblur="if(this. value=='''') this. value=''Введите Фамилию Имя Отчество а полностью...'';" onfocus="if(this. value==''Введите Фамилию Имя Отчество а полностью...'') this. value='''';" >

</div>

</FORM>

<br>

<div style="width:100%;background-image:url('||img||'line_dot. gif); background-repeat:repeat-x; padding-bottom:10px;" >&nbsp;</div></td>

');

if h>0 then

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

htp. p('

<a href="'||pkg||'EK_ADD_ INTEGRAT_PUBLIC? CAT_in=1"><font class="text" size="2"><b>Опубликовать список</b></font></a>');

end if;

if tip = 0 then

FOR Brec IN Bcur LOOP

htp. p('<h3>'||Brec. name_branch||' форма обучения</h3>');

FOR Frec IN Fcur(brec. id_branch) LOOP

htp. p('<h5><br>'||frec. name_fac||' ('||frec. abbr_fac||')</h5>');

htp. p('<TABLE CELLSPACING=1 CELLPADDING="0" WIDTH="99%">');

htp. p('<TR>

<Th width="40%">Название специальности</Th>

<Th width="30%">Вступительные экзамены</th>

</TR>');

FOR Srec IN Scur(frec. id_fac, brec. id_branch) LOOP

htp. p('<TR>

<TD ><a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in='||CAT_in||'&id_spec_dl='||srec. id_v||'&tip=1">'||Srec. name||'</a></td>

<TD >'||Srec. T1||', '||Srec. T2||', '||Srec. T3||'</TD> </TR>');

END LOOP;

htp. p('</table>');

END LOOP;

END LOOP;

elsif tip=1 then

htp. p('<h3><a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in='||CAT_in||'">Вернуться к списку специальностей</a></h3>');

select name, t1,t2,t3 into name_in, t1_in, t2_in, t3_in from INTEGRAT_SPEC where id_v=id_spec_dl;

IF CAT_in= 1 then

htp. p('<table align="center" border="0" valign="top" cellpadding="0" cellspacing="1" width="90%">

<tr><td align="center" colspan="8"><P class="zag">Список ов, подавших заявление по специальности "'||name_in||'"</p><br></td></tr>

<tr><td class="polosa" colspan="8" height="1" bgcolor="#2B5166"></td></tr>');

htp. p('<tr><th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>Основание для зачисления</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>ФИО а</b></font></th>

<th align="center" colspan=3><font class="text"><b>Экзамены</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Сумма</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Документ</b></font></th></tr>

<tr><th align="center" ><font class="text"><b>'||substr(t1_in,1,3)||'.</b></font><br></th>

<th align="center" ><font class="text"><b>'||substr(t2_in,1,3)||'.</b></font><br></th>

<th align="center" ><font class="text"><b>'||substr(t3_in,1,3)||'.</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="8" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab loop

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr><td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

<td class="default2">'||rec. fio||'</td>

<td class="default2">'||rec. t1||'</td>

<td class="default2">'||rec. t2||'</td>

<td class="default2">'||rec. t3||'</td>

<td class="default2">'||cc||'</td>

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

elsif CAT_in=2 then

htp. p('<table align="center" border="0" valign="top" cellpadding="0" cellspacing="1" width="90%">

….

<th align="center" ><font class="text"><b>'||substr(t3_in,1,3)||'</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="8" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab_r(1) loop

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr><td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

…..

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

htp. p('<tr><td align="center" colspan="8"><P class="zag"><br><br>Список ов в РЕЗЕРВЕ на зачисление по специальности "'||name_in||'"</p><br></td></tr>

<tr><td class="polosa" colspan="8" height="1" bgcolor="#2B5166"></td></tr>');

htp. p('<tr><th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>Основание для зачисления</b></font></th>

….

<th align="center" ><font class="text"><b>'||substr(t3_in,1,3)||'</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="8" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab_r(2) loop

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr><td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

<td class="default2">'||rec. fio||'</td>

<td class="default2">'||rec. t1||'</td>

<td class="default2">'||rec. t2||'</td>

<td class="default2">'||rec. t3||'</td>

<td class="default2">'||cc||'</td>

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

elsif CAT_in=3 then

htp. p('<table align="center" border="0" valign="top" cellpadding="0" cellspacing="1" width="90%">

<tr><td align="center" colspan="8"><P class="zag">Список ов, подавших заявление по специальности "'||name_in||'"</p><br></td></tr>

<tr><td class="polosa" colspan="8" height="1" bgcolor="#2B5166"></td></tr>');

htp. p('<tr><th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

…..

<th align="center" ><font class="text"><b>'||substr(t2_in,1,3)||'</b></font><br></th>

<th align="center" ><font class="text"><b>'||substr(t3_in,1,3)||'</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="7" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab loop

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr><td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

….

<td class="default2">'||cc||'</td></tr>');

end loop;

end if;

htp. p('</table>'); end if;

htp. p('</body></html>');

end;

Procedure INTEGRATOR_PUBLIC(tip number default 0, CAT_in number default 0)

IS our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

u VARCHAR(2048):=' ';

h NUMBER:=0;

cursor cur is select distinct(id_spec) from integrat_declaration where cat=cat_in;

n_o integer;

n integer;

n_t integer;

n_l integer;

n_k integer;

n_olimp integer;

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

head1;

if h>0 then

if tip=0 then

htp. p('<center>

<FORM ACTION="'||pkg||'EK_ADD_ INTEGRAT_PUBLIC" method="post" name="spec" onsubmit="return warning2()">

<input type="hidden" name="CAT_in" value="'||CAT_in||'">

<input type="hidden" name="tip" value="1">

Опубликовать материал?<br>

<input type="submit" value="Опубликовать"> &nbsp;&nbsp;&nbsp;&nbsp;<a href="'||pkg||'adm"><font class="text" size="2"><b><- Назад</b></font></a>

</form></center>');

elsif tip=1 then

delete from integrat_show aa where aa. CAT=CAT_in;

insert into integrat_show (select * from integrat_declaration aa where aa. CAT=CAT_in);

commit;

IF CAT_in =1 then

delete from integrat_stat;

for rec in cur loop

select count(*) into n_o from integrat_show where CAT=CAT_in and id_spec=rec. id_spec and id_ek_osnovanie=1;

select count(*) into n_l from integrat_show where CAT=CAT_in and id_spec=rec. id_spec and id_ek_osnovanie=2;

select count(*) into n_t from integrat_show where CAT=CAT_in and id_spec=rec. id_spec and id_ek_osnovanie=3;

select count(*) into n_olimp from integrat_show where CAT=CAT_in and id_spec=rec. id_spec and id_ek_osnovanie=4;

select count(*) into n_k from integrat_show where CAT=CAT_in and id_spec=rec. id_spec and id_ek_osnovanie=5;

n:=n_o+n_l+n_t+n_olimp+n_k;

insert into integrat_stat values(rec. id_spec, n,n_t, n_l, n_l, n_olimp, sysdate) ;

end loop;

commit;

end if;

htp. p('Материал опубликован');

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

end if;

end if;

foot;

END;

Procedure EK_search(name_dl varchar2 default null,

CAT_in number default 0)

IS

cursor Scur is select distinct sv. id_v, f. name_fac, f.abbr_fac, sv. name, sv. abbr, b. id_branch, b. name_branch, sv. t1, sv. t2, sv. t3

from INTEGRAT_SPEC SV, facultet f, branch b, INTEGRAT_DECLARATION ad

where SV. id_v=ad. id_spec and ad. CAT=CAT_in and (upper(ad. fio) LIKE (upper(name_dl)))

order by sv. name;

cursor Cur_ab_r(j integer) is select ad.*, b. name name_osn, c. name name_doc

from INTEGRAT_DECLARATION ad, ek_osnovanie b, ek_document c

where ad. id_ek_osnovanie=b. id and ad. id_ek_document=c. id

and ad. r_k_p=j and ad. CAT=CAT_in and (upper(ad. fio) LIKE (upper(name_dl))) order by ad. up;

cursor Cur_ab is select ad.*, b. name name_osn, c. name name_doc

from INTEGRAT_DECLARATION ad, ek_osnovanie b, ek_document c

where ad. id_ek_osnovanie=b. id and ad. id_ek_document=c. id

and ad. CAT=CAT_in and (upper(ad. fio) LIKE (upper(name_dl))) order by ad. up;

name_in varchar2(4000);

n integer;

c integer:=0;

cc integer;

our_cookie OWA_COOKIE. COOKIE;

our_cookie_val OWA_COOKIE. vc_arr;

u VARCHAR(2048):=' ';

h NUMBER:=0;

begin

our_cookie := OWA_COOKIE. GET('idus');

our_cookie_val := our_cookie. vals;

if our_cookie. num_vals > 0 then u:=our_cookie_val(1);

h:=iface. img_gen. getNumgb(u);

end if;

select count(*) into c from INTEGRAT_DECLARATION ad where (upper(ad. fio) LIKE (upper(name_dl))) and ad. CAT=CAT_in;

if c=0 then

htp. p('<html>

<head>

<title>Приемная комиссия Бийского технологического института</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link href="http://www. bti. *****/pr_kom/st_pk_bd. css" rel="stylesheet" type="text/css">

</head>

<body>

<FORM class="form" align="right" enctype="multipart/form-data" ACTION="'||pkg||'EK_search? CAT_in='||CAT_in||'" name="fio" method="get" style="height:20px;" >

<div style="padding-top:0px;padding-bottom:0px; vertical-align:top; " align="right"><b>ПОИСК</b>

<input name="name_dl" maxlength="100" class="query" type="text" size="65" value="Введите Фамилию Имя Отчество а полностью..." onblur="if(this. value=='''') this. value=''Введите Фамилию Имя Отчество а полностью...'';" onfocus="if(this. value==''Введите Фамилию Имя Отчество а полностью...'') this. value='''';" >

</div>

</FORM><br>

<div style="width:100%;background-image:url('||img||'line_dot. gif); background-repeat:repeat-x; padding-bottom:10px;" >&nbsp;</div></td>');

htp. p('<h3> не найден. </h3>

Введите фамилию имя отчество полностью. <br><b>Например</b>: . <br><br>

<a href="'||pkg||'EK_ADD_ INTEGRAT_SHOW? CAT_in='||CAT_in||'">Перейти на главную</a>');

htp. p('</body></html>');

elsif c>0 then

htp. p('<html>

<head>

<title>Приемная комиссия Бийского технологического института</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link href="http://www. bti. *****/pr_kom/st_pk_bd. css" rel="stylesheet" type="text/css">

</head>

<body>

<FORM class="form" align="right" enctype="multipart/form-data" ACTION="'||pkg||'EK_search? CAT_in='||CAT_in||'" name="fio" method="get" style="height:20px;" >

<div style="padding-top:0px;padding-bottom:0px; vertical-align:top; " align="right"><font size="3px">ПОИСК</font>

<input name="name_dl" maxlength="100" class="query" type="text" size="65" value="Введите Фамилию Имя Отчество а полностью..." onblur="if(this. value=='''') this. value=''Введите Фамилию Имя Отчество а полностью...'';" onfocus="if(this. value==''Введите Фамилию Имя Отчество а полностью...'') this. value='''';" >

</div>

</FORM><br>

<div style="width:100%;background-image:url('||img||'line_dot. gif); background-repeat:repeat-x; padding-bottom:10px;" >&nbsp;</div></td>

<table align="center" border="0" valign="top" cellpadding="0" cellspacing="1" width="90%">

');

if h>0 then

htp. p('<center> <a href="'||pkg||'adm"><font class="text" size="2"><b>Администрирование</b></font></a></center>');

end if;

if CAT_in=1 THEN

htp. p('<tr><td align="center" colspan="9"><P class="zag"><br><br>Список специальнсотей,

на которые Вы подали заявление на поступление </p><br></td></tr>

<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

htp. p('<tr>

<th align="center" rowspan=2 ><font class="text"><b>Специальность</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>Основание для зачисления</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>ФИО а</b></font></th>

<th align="center" colspan=3><font class="text"><b>Экзамены</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Сумма</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Документ</b></font></th></tr>

<tr><th align="center" ><font class="text"><b>1й</b></font><br></th>

<th align="center" ><font class="text"><b>2й</b></font><br></th>

<th align="center" ><font class="text"><b>3й</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab loop

select s. name into name_in from integrat_spec s where s. id_v=rec. id_spec;

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr>

<td class="default2">'||name_in||'</td>

<td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

<td class="default2">'||rec. fio||'</td>

<td class="default2">'||rec. t1||'</td>

<td class="default2">'||rec. t2||'</td>

<td class="default2">'||rec. t3||'</td>

<td class="default2">'||cc||'</td>

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

elsif CAT_in=2 then

htp. p('

<tr><td align="center" colspan="9"><P class="zag">Список специальнсотей, на которые Вы РЕКОМЕНДОВАНЫ к зачислению </p><br></td></tr>

<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>

<tr>

<th align="center" rowspan=2 ><font class="text"><b>Специальность</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>Основание для зачисления</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>ФИО а</b></font></th>

<th align="center" colspan=3><font class="text"><b>Экзамены</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Сумма</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Документ</b></font></th></tr>

<tr><th align="center" ><font class="text"><b>1й</b></font><br></th>

<th align="center" ><font class="text"><b>2й</b></font><br></th>

<th align="center" ><font class="text"><b>3й</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab_r(1) loop

select s. name into name_in from integrat_spec s where s. id_v=rec. id_spec;

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr>

<td class="default2">'||name_in||'</td>

<td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

<td class="default2">'||rec. fio||'</td>

<td class="default2">'||rec. t1||'</td>

<td class="default2">'||rec. t2||'</td>

<td class="default2">'||rec. t3||'</td>

<td class="default2">'||cc||'</td>

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

htp. p('<tr><td align="center" colspan="9"><P class="zag"><br><br>Список специальнсотей, на которые Вы в РЕЗЕРВЕ на зачисление </p><br></td></tr>

<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

htp. p('<tr>

<th align="center" rowspan=2 ><font class="text"><b>Специальность</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>Основание для зачисления</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>ФИО а</b></font></th>

<th align="center" colspan=3><font class="text"><b>Экзамены</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Сумма</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Документ</b></font></th></tr>

<tr><th align="center" ><font class="text"><b>1й</b></font><br></th>

<th align="center" ><font class="text"><b>2й</b></font><br></th>

<th align="center" ><font class="text"><b>3й</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab_r(2) loop

select s. name into name_in from integrat_spec s where s. id_v=rec. id_spec;

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr>

<td class="default2">'||name_in||'</td>

<td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

<td class="default2">'||rec. fio||'</td>

<td class="default2">'||rec. t1||'</td>

<td class="default2">'||rec. t2||'</td>

<td class="default2">'||rec. t3||'</td>

<td class="default2">'||cc||'</td>

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

elsif CAT_in=3 then

htp. p('<tr><td align="center" colspan="9"><P class="zag"><br><br>Cпециальнсоть,

на которую Вы зачислены </p><br></td></tr>

<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

htp. p('<tr>

<th align="center" rowspan=2 ><font class="text"><b>Специальность</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>№ п/п</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>Основание для зачисления</b></font></th>

<th align="center" rowspan=2 ><font class="text"><b>ФИО а</b></font></th>

<th align="center" colspan=3><font class="text"><b>Экзамены</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Сумма</b></font><br></th>

<th align="center" rowspan=2 ><font class="text"><b>Документ</b></font></th></tr>

<tr><th align="center" ><font class="text"><b>1й</b></font><br></th>

<th align="center" ><font class="text"><b>2й</b></font><br></th>

<th align="center" ><font class="text"><b>3й</b></font><br></th></tr>');

htp. p('<tr><td class="polosa" colspan="9" height="1" bgcolor="#2B5166"></td></tr>');

for rec in cur_ab loop

select s. name into name_in from integrat_spec s where s. id_v=rec. id_spec;

cc:=rec. t1+rec. t2+rec. t3;

htp. p('<tr>

<td class="default2">'||name_in||'</td>

<td class="default2">'||rec. up||'</td>

<td class="default2">'||rec. name_osn||'</td>

<td class="default2">'||rec. fio||'</td>

<td class="default2">'||rec. t1||'</td>

<td class="default2">'||rec. t2||'</td>

<td class="default2">'||rec. t3||'</td>

<td class="default2">'||cc||'</td>

<td class="default2">'||rec. name_doc||'</td></tr>');

end loop;

end if;

htp. p('</table>');

htp. p('</body></html>');

end if;

END;

PROCEDURE statistic

IS

cursor b_cur is select distinct b. id_branch, b.name_branch

from branch b, INTEGRAT_SPEC SV, INTEGRAT_STAT ad

where b. id_branch=SV. id_branch and sv. id_v=ad. id_spec

order by b. id_branch;

cursor F_cur(b integer) is select distinct f. id_fac, f. name_fac, f. abbr_fac

from facultet f, INTEGRAT_SPEC SV, INTEGRAT_STAT ad

where f. id_fac=SV. id_fac and SV. id_branch = b and sv. id_v=ad. id_spec

order by f. id_fac;

cursor S_cur(f integer, b integer) is select distinct sv. id_v, sv. id_fac, sv. id_branch, sv. name, sv. abbr, sv. plan, sv. plan_target, ad.*

from INTEGRAT_SPEC SV, INTEGRAT_STAT ad

where SV. id_fac = f and SV. id_branch = b and SV. id_v=ad. id_spec

order by sv. name;

put_date date;

br integer; --форма обучения по циклу

l integer;--количество записей по уровню образования

b integer; --количество записей по форме обучения

f integer; --количество записей по факультету

s1 integer;s2 integer;s3 integer;s4 integer;s5 integer;s6 integer;s7 integer;

i1 integer;i2 integer;i3 integer;i4 integer;i5 integer;i6 integer;i7 integer;

-------Тело самой программы--

BEGIN

select max(ld) into put_date from integrat_stat;

htp. p('

<html>

<head>

<title>Приемная комиссия Бийского технологического института</title>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<link href="http://www. bti. *****/pr_kom/st_pk_bd. css" rel="stylesheet" type="text/css">

</head>

<body>

<TABLE CELLSPACING=0 BORDER="0" bordercolor="#000000" width="100%">');

--htp. p('<tr><td width="23%" align="left"><a class="text" href="'||pkg||'check_date? date_s_in='||to_char(to_date(date_s_in, 'dd. mm. yy')-1,'dd. mm. yy')||'"><--'||to_char(to_date(date_s_in, 'dd. mm. yyyy')-1,'dd. mm. yyyy')||'</a></td>');

htp. p('<td width="53%" align="center">По состоянию на <b>'||TO_CHAR(put_date,'dd. mm. yyyy')||'г.</b> подано заявлений</td>');

--htp. p('<td width="23%" align="right"><a class="text" href="'||pkg||'check_date? date_s_in='||to_char(to_date(date_s_in, 'dd. mm. yy')+1,'dd. mm. yy')||'">'||to_char(to_date(date_s_in, 'dd. mm. yyyy')+1,'dd. mm. yyyy')||'--></a></td></tr>');

htp. p('</table>');

htp. p('');

FOR b_rec in b_cur LOOP

htp. p('<h3>'||b_rec. name_branch||' форма обучения</h3>');

htp. p('<TABLE CELLSPACING="1" cellpadding="0" width="99%">');

FOR f_rec in f_cur(b_rec. id_branch) LOOP

htp. p('

<tr><td align="center" colspan="8"><h4>'||upper(F_rec. name_fac)||' ('||F_rec. abbr_fac||')</h4></td></tr>

<tr>

…..

<th>Победители олимпиад</th>

</tr>

');

htp. p('<tr><th>Всего:</th>');

SELECT Sum(ap. plan) into s1 FROM integrat_spec ap where ap. id_fac= f_rec. id_fac and b_rec. id_branch=ap. id_branch;

htp. p('<th>'||s1||'</th>');

SELECT Sum(ap. plan_target) into s1 FROM integrat_spec ap where ap. id_fac= f_rec. id_fac and b_rec. id_branch=ap. id_branch;

htp. p('<th>'||s1||'</th>');

SELECT Sum(ac. all_m) into s2 FROM integrat_stat ac, integrat_spec ap where ap. id_fac= f_rec. id_fac and b_rec. id_branch=ap. id_branch and ap. id_v=ac. id_spec;

htp. p('<th>'||s2||'</th>');

SELECT Sum(ac. target) into s2 FROM integrat_stat ac, integrat_spec ap where ap. id_fac= f_rec. id_fac and ap. id_v=ac. id_spec and b_rec. id_branch=ap. id_branch;

htp. p('<th>'||s2||'</th>');

SELECT Sum(ac. LGOT) into s2 FROM integrat_stat ac, integrat_spec ap where ap. id_fac= f_rec. id_fac and ap. id_v=ac. id_spec and b_rec. id_branch=ap. id_branch;

htp. p('<th>'||s2||'</th>');

SELECT Sum(ac. Kontract) into s2 FROM integrat_stat ac, integrat_spec ap where ap. id_fac= f_rec. id_fac and ap. id_v=ac. id_spec and b_rec. id_branch=ap. id_branch;

htp. p('<th>'||s2||'</th>');

s2:=0;

SELECT Sum(ac. olimp) into s2 FROM integrat_stat ac, integrat_spec ap where ap. id_fac= f_rec. id_fac and ap. id_v=ac. id_spec and b_rec. id_branch=ap. id_branch;

htp. p('<th>'||s2||'</th>');

htp. p('</tr>');

FOR s_rec in s_cur(f_rec. id_fac, b_rec. id_branch ) LOOP

htp. p('<tr><td>'||s_rec. name||' ('||s_rec. abbr||')</td>');

htp. p('<td align="center">&nbsp;'||s_rec. plan||'</td>');

htp. p('<td align="center">&nbsp;'||s_rec. plan_target||'</td>');

htp. p('<td align="center">&nbsp;'||s_rec. all_m||'</td>');

htp. p('<td align="center">&nbsp;'||s_rec. target||'</td>');

htp. p('<td align="center">&nbsp;'||s_rec. lgot||'</td>');

htp. p('<td align="center">&nbsp;'||s_rec. Kontract||'</td>');

htp. p('<td align="center">&nbsp;'||s_rec. olimp||'</td>');

htp. p('</tr>');

END LOOP;

END LOOP;

-- htp. p('</td></tr>');

SELECT Sum(ap. plan) into i1 FROM integrat_spec ap where ap. id_branch=b_rec. id_branch;

htp. p('<tr><th>ВСЕГО по форме обучения:</th>');

htp. p('<th>&nbsp;'||i1||'</th>');

SELECT Sum(ap. plan_target) into i1 FROM integrat_spec ap where ap. id_branch=b_rec. id_branch;

htp. p('<th>&nbsp;'||i1||'</th>');

SELECT Sum(ac. all_m) into i2 FROM integrat_stat ac, integrat_spec ap where ap. id_branch=b_rec. id_branch and ap. id_v=ac. id_spec;

htp. p('<th>&nbsp;'||i2||'</th>');

SELECT Sum(ac. target) into i2 FROM integrat_stat ac, integrat_spec ap where ap. id_branch=b_rec. id_branch and ap. id_v=ac. id_spec;

htp. p('<th>&nbsp;'||i2||'</th>');

SELECT Sum(ac. lgot) into i2 FROM integrat_stat ac, integrat_spec ap where ap. id_branch=b_rec. id_branch and ap. id_v=ac. id_spec;

htp. p('<th>&nbsp;'||i2||'</th>');

SELECT Sum(ac. kontract) into i2 FROM integrat_stat ac, integrat_spec ap where ap. id_branch=b_rec. id_branch and ap. id_v=ac. id_spec;

htp. p('<th>&nbsp;'||i2||'</th>');

i2:=0;

SELECT Sum(ac. olimp) into i2 FROM integrat_stat ac, integrat_spec ap where ap. id_branch=b_rec. id_branch and ap. id_v=ac. id_spec;

htp. p('<th>&nbsp;'||i2||'</th>');

htp. p('</tr>');

htp. p('</table>');

END LOOP;

htp. p('</body></html>');

END;

END;