1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164
| create or replace PACKAGE BODY my_cd_package IS
PROCEDURE cdreport IS
CURSOR c1 IS SELECT CAT_NOM, alb.ALB_ID, ALB_NOM, ALB_PRIX, ART_NOM FROM BB_CATEGORIES cat, BB_ALBUMS alb, BB_ARTISTES art WHERE art.ART_ID=alb.ART_ID AND alb.CAT_ID=cat.CAT_ID;
CURSOR c2(id NUMBER) IS SELECT TIT_NOM FROM BB_TITRES tit WHERE tit.ALB_ID=id;
nom BB_TITRES.TIT_NOM%TYPE;
BEGIN
htp.htmlopen;
htp.headopen;
htp.htitle('Mon e-Shopping : résultats');
htp.headclose;
htp.bodyopen(cattributes => 'BGCOLOR="#FFF99"');
htp.br;
htp.print('<CENTER>');
htp.tableopen(cborder => 'BORDER="1"', cattributes => 'ALIGN="CENTER"');
htp.tableHeader('Catégorie', cattributes => 'BGCOLOR="#FF9900"');
htp.tableHeader('Artiste', cattributes => 'BGCOLOR="#FF9900"');
htp.tableHeader('Album', cattributes => 'BGCOLOR="#FF9900"');
htp.tableHeader('Prix', cattributes => 'BGCOLOR="#FF9900"');
htp.tableHeader('Titres', cattributes => 'BGCOLOR="#FF9900"');
FOR rec IN c1 LOOP
htp.tablerowopen;
htp.tabledata(rec.CAT_NOM);
htp.tabledata(rec.ART_NOM);
htp.tabledata(rec.ALB_NOM);
htp.tabledata(rec.ALB_PRIX);
if not (c2%ISOPEN) then
Open c2(rec.ALB_ID);
end if;
htp.print('<TD><TABLE width="auto" border=1>');
loop
fetch c2 into nom;
exit when c2%NOTFOUND or c2%ROWCOUNT=0;
htp.print('<TR><TD>');
htp.print(nom);
htp.print('</TD></TR>');
htp.tablerowopen;
end loop;
htp.print('</TABLE></TD>');
Close c2;
htp.tablerowclose;
END LOOP;
htp.tableclose;
htp.bodyclose;
htp.htmlclose;
END;
PROCEDURE cdadd_art(nom VARCHAR) IS
BEGIN
-- On ajoute la ligne
INSERT INTO BB_ARTISTES (ART_NOM) VALUES (nom);
COMMIT;
-- On redirige vers l'état final
owa_util.redirect_url(curl => 'my_cd_package.cdreport');
END;
PROCEDURE cdadd_cat(nom VARCHAR) IS
BEGIN
-- On ajoute la ligne
INSERT INTO BB_CATEGORIES (CAT_NOM) VALUES (nom);
COMMIT;
-- On redirige vers l'état final
owa_util.redirect_url(curl => 'my_cd_package.cdreport');
END;
PROCEDURE cdadd_alb(nom VARCHAR, tabtitres IN my_cd_package.tab, art NUMBER, cat NUMBER) IS
-- PROCEDURE cdadd_alb(nom VARCHAR, art NUMBER, cat NUMBER) IS
BEGIN
--dbms_output.put_line( tabtitres( tabtitres.first ) );
-- Pour chaque élément du tableau en paramètre, on ajoute un titre à l'album
-- et on associe l'album à un artiste et à une catégorie
/*
IF tabtitres.COUNT != 0 THEN
FOR i IN 1 .. tabtitres.COUNT LOOP
INSERT INTO BB_TITRES (TIT_NOM) VALUES (tabtitres(i));
COMMIT;
END LOOP;
END IF;
*/
COMMIT;
owa_util.redirect_url(curl => 'my_cd_package.cdreport');
END;
PROCEDURE cdform IS
BEGIN
htp.htmlopen;
htp.headopen;
htp.htitle('Mon e-Shopping : formulaire');
htp.headclose;
htp.bodyopen(cattributes => 'BGCOLOR="#FFF99"');
htp.br;
htp.print('<CENTER>');
htp.tableopen;
-- Ajout d'artiste
htp.tablerowopen;
htp.formopen(curl => 'my_cd_package.cdadd_art', cmethod => 'POST');
htp.tableopen(cborder => 'BORDER="1"');
htp.tablerowopen;
htp.tabledata(cvalue => 'Nom de l''artiste :');
htp.print('<TD>');
htp.formtext(cname => 'nom');
htp.print('<TD>');
htp.tablerowclose;
htp.tableclose;
htp.formsubmit;
htp.formclose;
htp.tablerowclose;
-- Ajout de catégorie
htp.tablerowopen;
htp.formopen(curl => 'my_cd_package.cdadd_cat', cmethod => 'POST');
htp.tableopen(cborder => 'BORDER="1"');
htp.tablerowopen;
htp.tabledata(cvalue => 'Nom de la catégorie :');
htp.print('<TD>');
htp.formtext(cname => 'nom');
htp.print('<TD>');
htp.tablerowclose;
htp.tableclose;
htp.formsubmit;
htp.formclose;
htp.tablerowclose;
htp.tableclose;
-- Ajout d'album
htp.tablerowopen;
htp.formopen(curl => 'my_cd_package.cdadd_alb', cmethod => 'POST');
htp.tableopen(cborder => 'BORDER="1"');
htp.tablerowopen;
htp.tabledata(cvalue => 'Nom de l''album :');
htp.print('<TD>');
htp.formtext(cname => 'nom');
htp.print('<TD>');
htp.tablerowclose;
/*
For i in 1..10
Loop
htp.tablerowopen;
htp.tabledata(cvalue => 'Titre :');
htp.print('<TD>');
htp.formtext(cname => 'tabtitres');
htp.print('<TD>');
htp.tablerowclose;
End loop ;
*/
htp.tablerowopen;
htp.tabledata(cvalue => 'ID de l''artiste :');
htp.print('<TD>');
htp.formtext(cname => 'art');
htp.print('<TD>');
htp.tablerowclose;
htp.tablerowopen;
htp.tabledata(cvalue => 'ID de la catégorie :');
htp.print('<TD>');
htp.formtext(cname => 'cat');
htp.print('<TD>');
htp.tablerowclose;
htp.tableclose;
htp.formsubmit;
htp.formclose;
htp.tablerowclose;
htp.tableclose;
htp.print('</CENTER>');
END;
END my_cd_package; |
Partager