Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования «Алтайский государственный технический университет им. » (АлтГТУ) | |
УТВЕРЖДАЮ И. о. проректора по научно-инновационной работе (подпись) М. П. « __» 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> -->
© ЦИС БТИ
</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;" > </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="Опубликовать"> <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;" > </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;" > </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"> '||s_rec. plan||'</td>');
htp. p('<td align="center"> '||s_rec. plan_target||'</td>');
htp. p('<td align="center"> '||s_rec. all_m||'</td>');
htp. p('<td align="center"> '||s_rec. target||'</td>');
htp. p('<td align="center"> '||s_rec. lgot||'</td>');
htp. p('<td align="center"> '||s_rec. Kontract||'</td>');
htp. p('<td align="center"> '||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> '||i1||'</th>');
SELECT Sum(ap. plan_target) into i1 FROM integrat_spec ap where ap. id_branch=b_rec. id_branch;
htp. p('<th> '||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> '||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> '||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> '||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> '||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> '||i2||'</th>');
htp. p('</tr>');
htp. p('</table>');
END LOOP;
htp. p('</body></html>');
END;
END;


