set scan off
set echo on
-- Created for Loyola Marymount University
-- By Robert M. Nitsos
-- 21-MAR-2001
--
-- This package creates a Banner Web page that displays Class Count information in the
-- Faculty Module. The is also alble to download the information into an Excel spreadsheet
-- (tab-delimited file). A button can also be clicked to view cross-listed course data.
--
create or replace package lmuhwskccnt is
procedure LMUClassCounts (term IN STVTERM.STVTERM_CODE%TYPE DEFAULT NULL,
subj in stvsubj.stvsubj_code%type default null,
firsttime in varchar2 default 'Y',
error_mess in varchar2 default null);
procedure LMUDownloadCCnt (term in stvterm.stvterm_code%type default null,
subj in stvsubj.stvsubj_code%type default null);
procedure LMUCrossListInfo (term in stvterm.stvterm_code%type default null,
xlst in ssrxlst.ssrxlst_xlst_group%type default null);
END lmuhwskccnt;
/
show errors
CREATE OR REPLACE PACKAGE BODY lmuhwskccnt AS
/* make sure registered then continue to process */
/* Global type and variable declarations for package */
pidm spriden.spriden_pidm%TYPE;
row_count NUMBER;
/****************************** LMU Show Class Counts ***********************/
procedure LMUClassCounts (term IN STVTERM.STVTERM_CODE%TYPE DEFAULT NULL,
subj in stvsubj.stvsubj_code%type default null,
firsttime in varchar2 default 'Y',
error_mess in varchar2 default null)
is
curr_release varchar2(10) := '4.4';
hold_term stvterm.stvterm_code%TYPE;
hold_subj stvsubj.stvsubj_code%TYPE;
confid_msg varchar2(30) default null;
msg varchar2(255);
term_desc stvterm.stvterm_desc%type default null;
subj_desc stvsubj.stvsubj_desc%type default null;
rcount number;
cur_crn ssbsect.ssbsect_crn%type default null;
/* Get Subject Codes for Drop-Down List */
cursor subjinfo
is
select distinct ssbsect_subj_code subj,
stvsubj_desc subject
from ssbsect, stvsubj
where ssbsect_term_code = hold_term
and ssbsect_ssts_code <> 'C'
and ssbsect_subj_code=stvsubj_code(+)
order by subject;
/* Get Term Codes for Drop-Down List */
cursor terminfo
is
select distinct ssbsect_term_code term_code,
stvterm_desc term_desc
from ssbsect, stvterm
where ssbsect_term_code=stvterm_code(+)
and ssbsect_ssts_code <> 'C'
order by term_code DESC;
/* Get information that is to be displayed */
cursor courseinfo
is
select ssbsect_term_code term,
ssbsect_crn crn,
ssbsect_subj_code subj,
ssbsect_crse_numb crs,
ssbsect_seq_numb sec,
decode(ssbsect_crse_title,
'', a.scbcrse_title, ssbsect_crse_title) title,
decode(ssrmeet_sun_day||ssrmeet_mon_day||ssrmeet_tue_day||ssrmeet_wed_day||ssrmeet_thu_day||ssrmeet_fri_day||ssrmeet_sat_day,
'', 'TBA',
ssrmeet_sun_day||ssrmeet_mon_day||ssrmeet_tue_day||ssrmeet_wed_day||ssrmeet_thu_day||ssrmeet_fri_day||ssrmeet_sat_day) day,
decode(ssrmeet_begin_time,
'', 'TBA', ssrmeet_begin_time||'-'||ssrmeet_end_time) time,
decode(ltrim(rtrim(ssrmeet_bldg_code)),
'', 'TBA',
ltrim(rtrim(ssrmeet_bldg_code))||' '||ltrim(rtrim(ssrmeet_room_code))) loc,
decode(i.spriden_last_name,
'', 'FACULTY',
i.spriden_last_name||', '||i.spriden_first_name||' '||i.spriden_mi) instructor,
ssrxlst_xlst_group xlst,
decode(ssrxlst_xlst_group,
'', ssbsect_enrl, ssbxlst_enrl) enrl,
decode(ssrxlst_xlst_group,
'', ssbsect_max_enrl, ssbxlst_max_enrl) maxenrl
from ssbsect,
scbcrse a,
ssrmeet,
sirasgn,
spriden i,
ssrxlst,
ssbxlst
where ssbsect_term_code = hold_term
and ssbsect_ssts_code<>'C'
and ssbsect_subj_code=a.scbcrse_subj_code
and ssbsect_crse_numb=a.scbcrse_crse_numb
and a.scbcrse_eff_term=
(select max(b.scbcrse_eff_term) from scbcrse b
where b.scbcrse_eff_term<=ssbsect_term_code
and a.scbcrse_subj_code=b.scbcrse_subj_code
and a.scbcrse_crse_numb=b.scbcrse_crse_numb)
and ssbsect_crn=ssrmeet_crn(+)
and ssbsect_term_code=ssrmeet_term_code(+)
and ssbsect_crn=sirasgn_crn(+)
and ssbsect_term_code=sirasgn_term_code(+)
and sirasgn_primary_ind(+)='Y'
and sirasgn_pidm=i.spriden_pidm(+)
and i.spriden_change_ind(+) is null
and ssbsect_crn=ssrxlst_crn(+)
and ssbsect_term_code=ssrxlst_term_code(+)
and ssrxlst_xlst_group=ssbxlst_xlst_group(+)
and ssrxlst_term_code=ssbxlst_term_code(+)
and ssbsect_subj_code = subj
and firsttime<>'Y'
order by subj,
crs,
sec;
begin
IF NOT twgkwbis.F_ValidUser(pidm) THEN
return;
END IF;
/* If you came from the menu, try to select the term from the */
/* general table, gorwprm, by using F_GetParam. */
IF TERM IS NULL THEN
hold_term := TWGKWBIS.F_GetParam(pidm,'TERM');
/* otherwise, you came from P_FacSelTerm, and need to write */
/* the param to the gorwprm table and set your local, hold_term */
ELSE
TWGKWBIS.P_SetParam(pidm,'TERM',term);
hold_term := term;
END IF;
/* Make sure a term has been selected */
IF hold_term is null THEN
hwskostm.P_AdvSelTerm(calling_proc_name=> 'lmuhwskccnt.LMUClassCounts');
RETURN;
END IF;
/* set paramater to indicate we are a faculty user */
twgkwbis.P_SetParam(pidm,'STUFAC_IND','FAC');
/* If the user is not a valid faculty member for the selected */
/* term, print a message, close the page, and exit. */
IF NOT HWSKILIB.F_ValidFac(hold_term,pidm) THEN
twgkwbis.P_OpenDoc('lmuhwskccnt.LMUClassCounts',header_text=>
'*** Invalid Faculty ID ***');
msg := 'You must be a valid faculty member for the selected term'||
' to access this page.';
HTP.hr;
twgkfrmt.P_PrintImage(twgklibs.twgbwrul_rec.twgbwrul_error_gif);
HTP.bold(msg);
HTP.para;
TWGKWBIS.P_CloseDoc(curr_release);
RETURN;
END IF;
IF firsttime <> 'Y' THEN
/* Check to see if there are any records to display */
BEGIN
select count(*)
into rcount
from ssbsect
where ssbsect_term_code = hold_term
and ssbsect_subj_code = subj;
EXCEPTION WHEN OTHERS THEN
rcount := 0;
END;
/* Display message if no test records found */
IF rcount = 0 THEN
twgkwbis.P_OpenDoc('lmuhwskccnt.LMUClassCounts',header_text=>
'*** No Course Information Exists For Subject ***');
/* Be sure to enter appropriate info text in Web Tailor for NO_COUNTS */
twgkwbis.P_DispInfo('lmuhwskccnt.LMUClassCounts','NO_COUNTS');
/* You can enter info text for GENERAL if you want to display any additional information */
twgkwbis.P_DispInfo('lmuhwskccnt.LMUClassCounts','GENERAL');
htp.nl;
HTP.formOpen(twgklibs.twgbwrul_rec.twgbwrul_cgibin_dir||
'/'||'lmuhwskccnt.LMUClassCounts');
HTP.formHidden('term',hold_term);
HTP.formHidden('firsttime','N');
/* HTP.formHidden('error_msg',''); */
row_count := 0;
FOR subj_rec in subjinfo LOOP
IF subjinfo%rowcount = 1 THEN
twgkfrmt.p_tableopen( 'DATAENTRY');
twgkfrmt.p_tablerowopen;
twgkfrmt.p_tabledatalabel( 'Select Subject:');
twgkfrmt.p_tabledataopen;
HTP.formSelectOpen('subj',NULL,1);
END IF;
IF subj IS NOT NULL AND subj_rec.subj = subj THEN
HTP.P(twgkwbis.F_formSelectOption(subj_rec.subject||' ('||subj_rec.subj||')', subj_rec.subj,'SELECTED'));
ELSE
HTP.P(twgkwbis.F_formSelectOption(subj_rec.subject||' ('||subj_rec.subj||')', subj_rec.subj));
END IF;
row_count := subjinfo%rowcount;
END LOOP;
IF row_count = 0 THEN
twgkfrmt.p_printtext('No subject available');
ELSE
HTP.formSelectClose;
twgkfrmt.p_tabledataopen;
twgkfrmt.p_tablerowclose;
twgkfrmt.p_tableclose;
HTP.nl;
HTP.nl;
HTP.formsubmit(NULL,'Submit Subject');
HTP.formreset('Reset');
END IF;
HTP.formClose;
htp.nl;
twgkwbis.P_CloseDoc(curr_release);
return;
END IF;
BEGIN
select stvterm_desc
into term_desc
from stvterm
where stvterm_code = hold_term;
EXCEPTION WHEN OTHERS THEN
term_desc := 'Term Unknown';
END;
BEGIN
select stvsubj_desc
into subj_desc
from stvsubj
where stvsubj_code = subj;
EXCEPTION WHEN OTHERS THEN
subj_desc := 'Subject Unknown';
END;
/* Show Class Information */
twgkwbis.P_OpenDoc('lmuhwskccnt.LMUClassCounts',header_text=>
'For: '||subj_desc||' ('||term_desc||') - '||rcount||' Course(s)');
/* You can enter info text for GENERAL if you want to display any additional information */
twgkwbis.P_DispInfo('lmuhwskccnt.LMUClassCounts','GENERAL');
if error_mess is not null then
htp.nl;
htp.p('Error: '||error_mess||'
');
end if;
htp.nl;
htp.anchor(twgklibs.twgbwrul_rec.twgbwrul_cgibin_dir ||
'/lmuhwskccnt.LMUDownloadCCnt'||
'?term=' || hold_term||
'&subj=' ||subj,
'DOWNLOAD CLASS COUNTS');
htp.nl;
rcount:=0;
cur_crn:='XXXXX';
FOR mystuff IN courseinfo
LOOP
if rcount=0 then
twgkfrmt.P_TableOpen('DATADISPLAY');
twgkfrmt.P_TableRowOpen('left');
twgkfrmt.P_TableDataLabel('CRN',calign=>'center');
twgkfrmt.P_TableDataLabel('SUBJ',calign=>'center');
twgkfrmt.P_TableDataLabel('CRS',calign=>'center');
twgkfrmt.P_TableDataLabel('SEC',calign=>'center');
twgkfrmt.P_TableDataLabel('TITLE',calign=>'left');
twgkfrmt.P_TableDataLabel('DAYS',calign=>'center');
twgkfrmt.P_TableDataLabel('TIMES',calign=>'center');
twgkfrmt.P_TableDataLabel('LOCATION',calign=>'center');
twgkfrmt.P_TableDataLabel('INSTRUCTOR',calign=>'left');
twgkfrmt.P_TableDataLabel('CL',calign=>'center');
twgkfrmt.P_TableDataLabel('ENRL',calign=>'center');
twgkfrmt.P_TableDataLabel('MAX',calign=>'center');
twgkfrmt.P_TableRowClose;
rcount:=1;
end if;
if mystuff.crn=cur_crn then
twgkfrmt.P_TableRowOpen('left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.day),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.time),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.loc),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(''),calign=>'center');
twgkfrmt.P_TableRowClose;
else
cur_crn:=mystuff.crn;
twgkfrmt.P_TableRowOpen('left');
if mystuff.xlst is not null then
htp.formOpen('lmuhwskccnt.LMUCrossListInfo', 'post');
htp.formHidden('term', hold_term);
htp.formHidden('xlst', mystuff.xlst);
end if;
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.crn),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.subj),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.crs),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.sec),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.title),calign=>'left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.day),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.time),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.loc),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.instructor),calign=>'left');
if mystuff.xlst is not null then
/* Add button for XLST Info */
twgkfrmt.P_TableDataOpen(calign=>'center');
htp.formSubmit(null, mystuff.xlst);
twgkfrmt.P_TableDataClose;
else
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(null),calign=>'center');
end if;
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.enrl),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.maxenrl),calign=>'center');
twgkfrmt.P_TableRowClose;
if mystuff.xlst is not null then
htp.formClose;
end if;
end if;
END LOOP;
twgkfrmt.P_TableClose;
ELSE
/* Show No Class Information */
twgkwbis.P_OpenDoc('lmuhwskccnt.LMUClassCounts');
/* You can enter info text for GENERAL if you want to display any additional information */
twgkwbis.P_DispInfo('lmuhwskccnt.LMUClassCounts','GENERAL');
if error_mess is not null then
htp.nl;
htp.p('Error: '||error_mess||'
');
end if;
htp.nl;
END IF;
htp.nl;
HTP.formOpen(twgklibs.twgbwrul_rec.twgbwrul_cgibin_dir||
'/'||'lmuhwskccnt.LMUClassCounts');
HTP.formHidden('term',hold_term);
HTP.formHidden('firsttime','N');
/* HTP.formHidden('error_msg',''); */
row_count := 0;
FOR subj_rec in subjinfo LOOP
IF subjinfo%rowcount = 1 THEN
twgkfrmt.p_tableopen( 'DATAENTRY');
twgkfrmt.p_tablerowopen;
twgkfrmt.p_tabledatalabel( 'Select Subject:');
twgkfrmt.p_tabledataopen;
HTP.formSelectOpen('subj',NULL,1);
END IF;
IF subj IS NOT NULL AND subj_rec.subj = subj THEN
HTP.P(twgkwbis.F_formSelectOption(subj_rec.subject||' ('||subj_rec.subj||')', subj_rec.subj,'SELECTED'));
ELSE
HTP.P(twgkwbis.F_formSelectOption(subj_rec.subject||' ('||subj_rec.subj||')', subj_rec.subj));
END IF;
row_count := subjinfo%rowcount;
END LOOP;
IF row_count = 0 THEN
twgkfrmt.p_printtext('No subject available');
ELSE
HTP.formSelectClose;
twgkfrmt.p_tabledataopen;
twgkfrmt.p_tablerowclose;
twgkfrmt.p_tableclose;
HTP.nl;
HTP.nl;
HTP.formsubmit(NULL,'Submit Subject');
HTP.formreset('Reset');
END IF;
HTP.formClose;
htp.nl;
twgkwbis.P_CloseDoc;
end LMUClassCounts;
procedure LMUDownloadCCnt (term in stvterm.stvterm_code%type default null,
subj in stvsubj.stvsubj_code%type default null)
is
mytab varchar2(1);
q varchar2(1);
curcrn ssbsect.ssbsect_crn%type default null;
cursor dlcourseinfo
is
select ssbsect_term_code term,
ssbsect_crn crn,
ssbsect_subj_code subj,
ssbsect_crse_numb crs,
ssbsect_seq_numb sec,
decode(ssbsect_crse_title,
'', a.scbcrse_title, ssbsect_crse_title) title,
decode(ssrmeet_sun_day||ssrmeet_mon_day||ssrmeet_tue_day||ssrmeet_wed_day||ssrmeet_thu_day||ssrmeet_fri_day||ssrmeet_sat_day,
'', 'TBA',
ssrmeet_sun_day||ssrmeet_mon_day||ssrmeet_tue_day||ssrmeet_wed_day||ssrmeet_thu_day||ssrmeet_fri_day||ssrmeet_sat_day) day,
decode(ssrmeet_begin_time,
'', 'TBA', ssrmeet_begin_time||'-'||ssrmeet_end_time) time,
decode(ltrim(rtrim(ssrmeet_bldg_code)),
'', 'TBA',
ltrim(rtrim(ssrmeet_bldg_code))||' '||ltrim(rtrim(ssrmeet_room_code))) loc,
decode(i.spriden_last_name,
'', 'FACULTY',
i.spriden_last_name||', '||i.spriden_first_name||' '||i.spriden_mi) instructor,
ssrxlst_xlst_group xlst,
decode(ssrxlst_xlst_group,
'', ssbsect_enrl, ssbxlst_enrl) enrl,
decode(ssrxlst_xlst_group,
'', ssbsect_max_enrl, ssbxlst_max_enrl) maxenrl
from ssbsect,
scbcrse a,
ssrmeet,
sirasgn,
spriden i,
ssrxlst,
ssbxlst
where ssbsect_term_code = term
and ssbsect_ssts_code<>'C'
and ssbsect_subj_code=a.scbcrse_subj_code
and ssbsect_crse_numb=a.scbcrse_crse_numb
and a.scbcrse_eff_term=
(select max(b.scbcrse_eff_term) from scbcrse b
where b.scbcrse_eff_term<=ssbsect_term_code
and a.scbcrse_subj_code=b.scbcrse_subj_code
and a.scbcrse_crse_numb=b.scbcrse_crse_numb)
and ssbsect_crn=ssrmeet_crn(+)
and ssbsect_term_code=ssrmeet_term_code(+)
and ssbsect_crn=sirasgn_crn(+)
and ssbsect_term_code=sirasgn_term_code(+)
and sirasgn_primary_ind(+)='Y'
and sirasgn_pidm=i.spriden_pidm(+)
and i.spriden_change_ind(+) is null
and ssbsect_crn=ssrxlst_crn(+)
and ssbsect_term_code=ssrxlst_term_code(+)
and ssrxlst_xlst_group=ssbxlst_xlst_group(+)
and ssrxlst_term_code=ssbxlst_term_code(+)
and ssbsect_subj_code = subj
order by subj,
crs,
sec;
begin
mytab:=' ';
/* mytab:=','; */
curcrn:='XXXXX';
owa_util.mime_header('application/vnd.ms-excel', TRUE);
-- IF NOT twgkwbis.F_ValidUser(pidm, close_http_header=>FALSE) THEN
-- return;
-- END IF;
/* owa_util.http_header_close; */
htp.print('TERM'||mytab||'CRN'||mytab||'SUBJ'||mytab||'CRS'||mytab||'SEC'||mytab||'TITLE'||mytab||'DAYS'||mytab||'TIMES'||mytab||
'LOCATION'||mytab||'INSTRUCTOR'||mytab||'CL'||mytab||'ENRL'||mytab||'MAX');
FOR mystuff in dlcourseinfo
LOOP
if mystuff.crn=curcrn then
htp.print(''||mytab||''||mytab||''||mytab||''||mytab||''||mytab||
''||mytab||mystuff.day||mytab||mystuff.time||mytab||mystuff.loc||mytab||
''||mytab||''||mytab||''||mytab||'');
else
curcrn:=mystuff.crn;
htp.print(mystuff.term||mytab||mystuff.crn||mytab||mystuff.subj||mytab||mystuff.crs||mytab||mystuff.sec||mytab||
mystuff.title||mytab||mystuff.day||mytab||mystuff.time||mytab||mystuff.loc||mytab||
mystuff.instructor||mytab||mystuff.xlst||mytab||mystuff.enrl||mytab||mystuff.maxenrl);
end if;
END LOOP;
end LMUDownloadCCnt;
procedure LMUCrossListInfo (term in stvterm.stvterm_code%type default null,
xlst in ssrxlst.ssrxlst_xlst_group%type default null)
is
rcount number;
cursor xlstinfo
is
select ssbsect_term_code term,
ssbsect_crn crn,
ssbsect_subj_code subj,
ssbsect_crse_numb crs,
ssbsect_seq_numb sec,
decode(ssbsect_crse_title,
'', a.scbcrse_title, ssbsect_crse_title) title,
decode(ssrmeet_sun_day||ssrmeet_mon_day||ssrmeet_tue_day||ssrmeet_wed_day||ssrmeet_thu_day||ssrmeet_fri_day||ssrmeet_sat_day,
'', 'TBA',
ssrmeet_sun_day||ssrmeet_mon_day||ssrmeet_tue_day||ssrmeet_wed_day||ssrmeet_thu_day||ssrmeet_fri_day||ssrmeet_sat_day) day,
decode(ssrmeet_begin_time,
'', 'TBA',
ssrmeet_begin_time||'-'||ssrmeet_end_time) time,
decode(ltrim(rtrim(ssrmeet_bldg_code)),
'', 'TBA',
ltrim(rtrim(ssrmeet_bldg_code))||' '||ltrim(rtrim(ssrmeet_room_code))) loc,
decode(i.spriden_last_name,
'', 'FACULTY',
i.spriden_last_name||', '||i.spriden_first_name||' '||i.spriden_mi) instructor,
ssbsect_enrl enrl,
ssbsect_max_enrl maxenrl
from ssbsect,
scbcrse a,
ssrmeet,
sirasgn,
spriden i,
ssrxlst
where ssrxlst_term_code = term
and ssrxlst_xlst_group = xlst
and ssrxlst_crn=ssbsect_crn
and ssrxlst_term_code=ssbsect_term_code
and ssbsect_subj_code=a.scbcrse_subj_code
and ssbsect_crse_numb=a.scbcrse_crse_numb
and a.scbcrse_eff_term=
(select max(b.scbcrse_eff_term) from scbcrse b
where b.scbcrse_eff_term<=ssbsect_term_code
and a.scbcrse_subj_code=b.scbcrse_subj_code
and a.scbcrse_crse_numb=b.scbcrse_crse_numb)
and ssbsect_crn=ssrmeet_crn(+)
and ssbsect_term_code=ssrmeet_term_code(+)
and ssbsect_crn=sirasgn_crn(+)
and ssbsect_term_code=sirasgn_term_code(+)
and sirasgn_primary_ind(+)='Y'
and sirasgn_pidm=i.spriden_pidm(+)
and i.spriden_change_ind(+) is null
order by subj,
crs,
sec;
begin
IF NOT twgkwbis.F_ValidUser(pidm) THEN
return;
END IF;
/* Show Cross-Listed Course Information */
twgkwbis.P_OpenDoc('lmuhwskccnt.LMUCrossListInfo');
/* You can enter info text for GENERAL if you want to display any additional information */
twgkwbis.P_DispInfo('lmuhwskccnt.LMUCrossListInfo','GENERAL');
htp.nl;
rcount:=0;
FOR mystuff IN xlstinfo
LOOP
if rcount=0 then
twgkfrmt.P_TableOpen('DATADISPLAY');
twgkfrmt.P_TableRowOpen('left');
twgkfrmt.P_TableDataLabel('CRN',calign=>'center');
twgkfrmt.P_TableDataLabel('SUBJ',calign=>'center');
twgkfrmt.P_TableDataLabel('CRS',calign=>'center');
twgkfrmt.P_TableDataLabel('SEC',calign=>'center');
twgkfrmt.P_TableDataLabel('TITLE',calign=>'left');
twgkfrmt.P_TableDataLabel('DAYS',calign=>'center');
twgkfrmt.P_TableDataLabel('TIMES',calign=>'center');
twgkfrmt.P_TableDataLabel('LOCATION',calign=>'center');
twgkfrmt.P_TableDataLabel('INSTRUCTOR',calign=>'left');
twgkfrmt.P_TableDataLabel('ENRL',calign=>'center');
twgkfrmt.P_TableDataLabel('MAX',calign=>'center');
twgkfrmt.P_TableRowClose;
rcount:=1;
end if;
twgkfrmt.P_TableRowOpen('left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.crn),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.subj),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.crs),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.sec),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.title),calign=>'left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.day),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.time),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.loc),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.instructor),calign=>'left');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.enrl),calign=>'center');
twgkfrmt.P_TableData(twgkfrmt.F_PrintBold(mystuff.maxenrl),calign=>'center');
twgkfrmt.P_TableRowClose;
END LOOP;
twgkfrmt.P_TableClose;
htp.nl;
twgkwbis.P_CloseDoc;
end LMUCrossListInfo;
end lmuhwskccnt;
/
show errors
whenever sqlerror continue;
drop public synonym lmuhwskccnt;
whenever sqlerror exit rollback;
create public synonym lmuhwskccnt for lmuhwskccnt;
grant execute on lmuhwskccnt to public;
set scan on