| 12
 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