• Nenhum resultado encontrado

4. ΑΝΑΛΥΣΗ ΤΟΥ ΚΩΔΙΚΑ ΤΗΣ ΕΦΑΡΜΟΓΗΣ

4.7. Κύρια σελίδα Αναθέσεων

9 sql "update teacher set katastasi=\"$m\" where (id=\"$b\")"

10 sql "insert into mathima (id_teacher, id, hoursth, hoursask, hourserg, tropop, akadetos, ypoxrepilog) values (\"$b\",

\"$c\",\"$d\", \"$d2\", \"$d1\", \"$qo\", \"$n\",\"$no\")"

11 set f1 [sql "select id, f_name, l_name, mail, phone1, epagelma, primaryjob from teacher where (id=$b) "]

12 set f2 [sql "select basictitlosspoudon, metaptyxiako, didaktoriko from spoudes where (id_teacher=$b) "]

13 set f3 [sql "select ep1, sumyears, sumdayes, summonths from epagempir where (id_teacher=$b) "]

14 set f12 [sql "select id, hoursth, hoursask, hourserg, examino, akadetos, tropop, sum(hoursth + hoursask + hourserg) from mathima where (id_teacher=$b) group by id "]

15 set f20 [sql "select id, name, type, id_semester from course"]

16 puts <html>

17 puts <head>

18 puts <title>ΑΝΑΘΕΣΕΙΣ\ ΚΑΤΑΧΩΡΗΣΗ</title>

19 puts </head>

20 puts <body\ bgcolor="#D9F2FF">

21 puts <form\ name="f5"\ action="anathesis3.tcl"\ method="post">

22 puts <table\ border="0"\ align="center"\ width=990\

bgcolor="#D9F2FF">

23 puts <tr>

24 puts <td>

25 foreach j $f1 {

26 puts Το\ ID\ του\ καθηγητή\ [lindex $j 1]\ [lindex $j 2]\ που\

του\ καταχορίσαμε\ είναι\ [lindex $j 0]\.\ Η\ ηλεκτρονική\ του\

δηεύθηνση\ είναι\ [lindex $j 3]\ και\ το\ τηλεφωνό\ του\ είναι\

[lindex $j 4].\ Είναι\ [lindex $j 5]\ και\ το\ επάγγελμά\ του\ έιναι\

[lindex $j 6]\ } 27 foreach k $f2 {

28 puts Κατέχει\ [lindex $k 0]\ [lindex $k 1]\ [lindex $k 2]

29 }

30 foreach l $f3 {

31 puts Eργάζεται\ ως\ [lindex $l 0]\ για\ [lindex $l 1]\ χρόνια,\

[lindex $l 2]\ ημερες,\ [lindex $l 3]\ μήνες. }

32 puts </td>

33 puts </tr>

34 puts </table>

35 puts <hr>

36 puts <table\ border="0"\ align="center"\ width=1100>

37 puts <tr>

38 puts <td\ align="right">Αρηθμός\ Πρωτοκόλλου</td>

39 puts <td><input\ type="text"\ name="a"></td>

40 puts <td\ align="right">Ημερομηνία\ (ΕΕ-ΜΜ-ΗΗ)</td>

41 puts <td><input\ type="text"\ name="l"></td>

42 puts </tr>

43 puts <tr>

44 puts <td\ align="right">Εξάμηνο\ Ανάθεσης</td>

45 puts <td><select\ name="g">

46 puts <option\ value="1">ΧΕΙΜΕΡΙΝΟ 47 puts <option\ value="2">ΕΑΡΙΝΟ 48 puts </select></td>

49 puts <td\ align="right">Ακαδημαϊκό\ Έτος\ (ΕΕΕΕ-ΕΕΕΕ)</td>

50 puts <td><input\ type="text"\ name="n"></td>

51 puts </tr>

52 puts <tr>

53 puts <td\ align="right">Πληρομή\ από</td>

54 puts <td\ align="left"><select\ name="o">

55 puts <option\ value="1">ΤΕΙ 56 puts <option\ value="2">AΛΛΟ

57 puts </select></td>

58 puts <td\ align="right">Kατάσταση</td>

59 puts <td><select\ name="m">

60 puts <option\ value="1">Πρόην\ Συνεργάτης 61 puts <option\ value="2">Ενεργοί

62 puts <option\ value="3">Μη\ επιλεχθέντες 63 puts </select></td>

64 puts </tr>

65 puts <tr>

66 puts <td\ align="right">Ανανέωση\ /\ Τροποποίηση</td>

67 puts <td><select\ name="qo">

68 puts <option\ value="1">ΝΕΑ\ ΑΝΑΘΕΣΗ

69 puts <option\ value="2">ΤΡΟΠΟΠΟΙΗΣΗ\ ΑΝΑΘΕΣΗΣ 70 puts </select>

71 puts <td\ align="right">Έτος</td>

72 puts <td><input\ type="text"\ name="e"></td>

73 puts </tr>

74 puts <tr>

75 puts <td\ colspan="4"><hr></td>

76 puts </tr>

77 puts <tr>

78 puts <td\ colspan="4">&nbsp</td>

79 puts </tr>

80 puts <tr>

81 puts <td\ align="right">Καθηγητής</td>

82 puts <td><select\ name="b">

83 foreach y $f1 {

84 puts <option\ value="[lindex $y 0]">[lindex $y 0]\ [lindex $y 2]\

[lindex $y 1] }

85 puts </select>

86 puts <td\ align="right">μάθημα</td>

87 puts <td><select\ name="c">

88 foreach po $f20 {

89 puts <option\ value="[lindex $po 0]">[lindex $po 1]\ [lindex $po 2]}

90 puts </select></td>

91 puts </tr>

92 puts <tr>

93 puts <td\ align="right">Ώρες\ Θεωρίας</td>

94 puts <td><input\ type="text"\ name="d">

95 puts <td\ align="right">Ώρες\ Εργαστηρίου</td>

96 puts <td><input\ type="text"\ name="d1">

97 puts </tr>

98 puts <tr>

99 puts <td\ align="right">Ώρες\ Ασκήσεων</td>

100 puts <td><input\ type="text"\ name="d2"></td>

101 puts </tr>

102 puts <tr>

103 puts <td\ align="right">Κατηγορία</td>

104 puts <td><select\ name="no">

105 puts <option\ value="1">Υποχρεοτικό 106 puts <option\ value="2">Υπόχρ.\ επιλογής 107 puts <option\ value="3">Προερετ\ επιλογής 108 puts </select></td>

109 puts <td>&nbsp</td>

110 puts <td>&nbsp</td>

111 puts </tr>

112 puts </tr>

113 puts <tr>

114 puts <td\ colspan="4"><hr></td>

115 puts </tr>

116 puts <tr>

117 puts <td\ colspan="4">&nbsp</td>

118 puts </tr>

119 puts <tr>

120 puts <td\ align="right">Αρηθμός\ πράξης\ πρόσληψης\ Γενικής\

Συνέλ.</td>

121 puts <td><input\ type="text"\ name="a1"></td>

122 puts <td\ align="right">Ημερομηνία\ πράξης\ (ΕΕ-ΜΜ-ΗΗ)</td>

123 puts <td><input\ type="text"\ name="dat1"></td>

124 puts </tr>

125 puts <tr>

126 puts <td\ align="right">Αρηθμός\ πράξης\ συμβουλίου\ ΤΕΙ</td>

127 puts <td><input\ type="text"\ name="a2"></td>

128 puts <td\ align="right">Ημερομηνία\ πράξης\ (ΕΕ-ΜΜ-ΗΗ)</td>

129 puts <td><input\ type="text"\ name="dat2"></td>

130 puts </tr>

131 puts <tr>

132 puts <td\ align="right">Αρηθμός\ προκύριξης\ απο\ ΤΕΙ</td>

133 puts <td><input\ type="text"\ name="a3"></td>

134 puts <td\ align="right">Ημερομηνία\ προκύριξης\ (ΕΕ-ΜΜ-ΗΗ)</td>

135 puts <td><input\ type="text"\ name="dat3"></td>

136 puts </tr>

137 puts <tr>

138 puts <td\ align="right">Αρ.\ απόφ.\ γεν.\ συνέλ.\ ορισμου\

τριμελούς\ εισηγητηκής\ επιτροπής</td>

139 puts <td><input\ type="text"\ name="a4"></td>

140 puts <td\ align="right">Ημερομηνία\ προκύριξης\ (ΕΕ-ΜΜ-ΗΗ)</td>

141 puts <td><input\ type="text"\ name="dat4"></td>

142 puts </tr>

143 puts <tr>

144 puts <td\ align="right">Διάρκια\ Σύμβασης</td>

145 puts <td\ colspan="3"><select\ name="k">

146 puts <option\ value="1">ΣΥΜΒΑΣΗ\ ΟΡΙΣΜΕΝΟΥ\ ΧΡΟΝΟΥ 147 puts <option\ value="2">ΜΕ\ ΩΡΙΑΙΑ\ ΑΝΤΙΜΙΣΘΙΑ

148 puts <option\ value="3">ΣΥΜΒΑΣΗ\ ΟΡΙΣΜΕΝΟΥ\ ΧΡΟΝΟΥ\ ΜΕ\ ΑΜΟΙΒΗ\

ΑΠΟ\ ΕΝΗΙΣΧΥΣΗ\ ΣΠΟΥΔΩΝ\ ΠΛΗΡΟΦΟΡΙΚΗΣ

149 puts <option\ value="4">ΜΕ\ ΩΡΙΑΙΑ\ ΑΝΤΙΜΙΣΘΙΑ\ ΜΕ\ ΑΜΟΙΒΗ\ ΑΠΟ\

ΕΝΗΙΣΧΥΣΗ\ ΣΠΟΥΔΩΝ\ ΠΛΗΡΟΦΟΡΙΚΗΣ

150 puts <option\ value="5">ΑΝΑΘΕΣΗ\ ΔΙΔΑΚΤΙΚΟΥ\ ΕΡΓΟΥ\ ΜΕΛΟΥΣ\ ΕΠ 151 puts </select></td>

152 puts </tr>

153 puts <tr>

154 puts <td\ align="right">\ Βαθμίδα</td>

155 puts <td\ colspan="3"><select\ name="foko">

156 puts <option\ value="1">ΕΠΙΣΤΗΜΟΝΙΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΠΡΟΣΟΝΤΑ\

ΕΠΙΚΟΥΡΟΥ\ ΚΑΘΗΓΗΤΗ

157 puts <option\ value="2">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΠΡΟΣΟΝΤΑ\

ΚΑΘΗΓΗΤΗ\ ΕΦΑΡΜΟΓΩΝ

158 puts <option\ value="3">ΕΠΙΣΤΗΜΟΝΙΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΒΑΣΙΚΟ\

ΤΙΤΛΟ\ ΣΠΟΥΔΩΝ\ ΚΑΙ\ ΔΙΔΑΚΤΟΡΙΚΟ

159 puts <option\ value="4">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΒΑΣΙΚΟ\

ΤΙΤΛΟ\ ΣΠΟΥΔΩΝ\ ΚΑΙ\ ΜΕΤΑΠΤΥΧΙΑΚΟ

160 puts <option\ value="5">ΕΡΓΑΣΤΗΡΙΑΚΟΣ\ ΣΥΝΕΡΓΑΤΗΣ\ ΜΕ\ ΒΑΣΙΚΟ\

ΤΙΤΛΟ\ ΣΠΟΥΔΩΝ 161 puts </select>

162 puts </tr>

163 puts <tr>

164 puts <td\ colspan="4"><hr></td>

165 puts </tr>

166 puts <tr>

167 puts <td\ colspan="4"\ align="center">Συμπληρώστε\ μόνο\ σε\

περίπτωση\ τροποποίησης</td>

168 puts </tr>

169 puts <tr>

170 puts <td\ align="right">Αριθμός\ Τροποποίησης</td>

171 puts <td><input\ type="text"\ name="j1"></td>

172 puts <td\ align="right">Ημερομηνία\ Τροποποίησης\ (ΕΕΕΕ-ΜΜ- ΗΗ)</td>

173 puts <td><input\ type="text"\ name="j2"></td>

174 puts </tr>

175 puts </tr>

176 puts <tr>

177 puts <td\ colspan="4"><hr></td>

178 puts </tr>

179 puts <tr>

180 puts <td\ colspan="4"\ align="center"><input\ type="submit"\

value="ΚΑΤΑΧΩΡΗΣΗ"></td>

181 puts </tr>

182 puts </table>

183 puts </form>

184 puts <form\ name="v"\ action="/index.html"\ method="post">

185 puts <table\ align="center">

186 puts <tr>

187 puts <td\ align="center"><input\ type="submit"\ value="\

ΕΠΙΣΤΡΟΦΗ\ ΣΤΗΝ\ ΑΡΧΗΚΗ\ ΣΕΛΙΔΑ"></td>

188 puts </tr>

189 puts </table>

190 puts <table\ border="2"\ align="center"\ width=1100>

191 puts <tr>

192 puts <td\ align="center">ΑΚΑΔ.\ ΕΤΟΣ</td>

193 puts <td\ align="center">ΜΑΘΗΜΑ</td>

194 puts <td\ align="center">ΩΡΕΣ\ ΘΕΩΡΙΑΣ</td>

195 puts <td\ align="center">ΩΡΕΣ\ ΕΡΓΑΣΤΗΡΙΩΝ</td>

196 puts <td\ align="center">ΩΡΕΣ\ ΑΣΚΗΣΕΩΝ</td>

197 puts <td\ align="center">ΣΥΝΟΛΟ\ ΩΡΩΝ</td>

198 puts <td\ align="center">ΑΝΑΘΕΣΗ</td>

199 puts </tr>

200 foreach lo $f12 {

201 set g1 [sql "select name from course where id=[lindex $lo 0]"]

202 puts <tr>

203 puts <td\ align="right">[lindex $lo 5]</td>

204 puts <td\ align="right">[lindex [lindex $g1 0] 0]</td>

205 puts <td\ align="right">[lindex $lo 1]</td>

206 puts <td\ align="right">[lindex $lo 3]</td>

207 puts <td\ align="right">[lindex $lo 2]</td>

208 puts <td\ align="right">[lindex $lo 7]</td>

209 if {[lindex $lo 6] == 1 } { 210 puts <td\ align="right">ΝΕΑ</td>

211 } else {

212 puts <td\ align="right">ΤΡΟΠΟΠΟΙΗΣΗ</td>

213 }

214 puts </tr>

215 }

216 puts </table>

217 puts </form>

218 puts <script\ language="JavaScript"\ type="text/javascript">

219 puts <!--

220 set f4 [lindex [sql "select * from anathesi where (id_teacher=$b)"] 0]

221 set f6 [lindex [sql "select katastasi from teacher where (id=$b)"] 0]

222 set f8 [lindex [sql "select * from mathima where (id_teacher=$b)"] 0]

223 puts f5.a.value="[lindex $f4 0]"\;

224 puts f5.b.value="[lindex $f4 1]"\;

225 puts f5.c.value="[lindex $f8 2]"\;

226 puts f5.d.value="[lindex $f8 6]"\;

227 puts f5.d1.value="[lindex $f8 8]"\;

228 puts f5.d2.value="[lindex $f8 7]"\;

229 puts f5.e.value="[lindex $f4 3]"\;

230 puts f5.n.value="[lindex $f4 17]"\;

231 puts f5.g.value="[lindex $f4 4]"\;

232 puts f5.no.value="[lindex $f8 4]"\;

233 puts f5.o.value="[lindex $f4 6]"\;

234 puts f5.l.value="[lindex $f4 7]"\;

235 puts f5.m.value="[lindex $f6 0]"\;

236 puts f5.qo.value="[lindex $f4 22]"\;

237 puts f5.a1.value="[lindex $f4 9]"\;

238 puts f5.dat1.value="[lindex $f4 13]"\;

239 puts f5.a2.value="[lindex $f4 10]"\;

240 puts f5.dat2.value="[lindex $f4 14]"\;

241 puts f5.a3.value="[lindex $f4 11]"\;

242 puts f5.dat3.value="[lindex $f4 15]"\;

243 puts f5.a4.value="[lindex $f4 12]"\;

244 puts f5.dat4.value="[lindex $f4 16]"\;

245 puts f5.k.value="[lindex $f4 5]"\;

246 puts f5.foko.value-"[lindex $f4 18]"\;

247 puts -->

248 puts </script>

249 puts </body>

250 puts </html>

Σ’ αυτό το σημείο πρέπει να αναφέρω ότι για να μπορεί ο χρήστης να αναθέτει παραπάνω από ένα μαθήματα σε έναν καθηγητή χωρίς να χρειάζεται να χρησιμοποιεί τα πλήκτρα πλοήγησης που διαθέτουν όλοι οι browsers επιστρέφοντας πολλές φορές στην φόρμα που πρέπει να συμπληρώσει για να κάνει τη ανάθεση, δημιούργησα δύο πανομοιότυπες σελίδες την anathesis2.tcl και anathesis3.tcl. Η μόνη διαφορά αυτών των δύο σελίδων είναι ότι η σελίδα anathesis2.tcl δεν έχει στον κώδικα της εντολές αποθήκευσης πληροφοριών στην βάση δεδομένων σε αντίθεση με την σελίδα anathesis3.tcl η οποία εμφανίζεται όταν πατηθεί το κουμπί καταχώρηση από την προηγούμενη σελίδα. Έτσι όταν ο χρήστης πατήσει το κουμπί καταχώρηση στην σελίδα anathesis2.tcl τότε η σελίδα anathesis3.tcl αναλαμβάνει να αποθηκέψει τις πληροφορίες που έλαβε στην βάση δεδομένων. Η σελίδα anathesis3.tcl επαναλαμβάνει τον εαυτό της κάθε φορά που π χρήστης πατάει το πλήκτρο καταχώρηση.

Ο κώδικας που παρουσιάζω παραπάνω είναι της σελίδας anathesis3.tcl και

εξηγώντας αυτόν το κώδικα εξηγώ παράλληλα και τον κώδικα της σελίδας

anathesis2.tcl καθώς και της σελίδας diorthanathesis2.tcl. Και εδώ όπως και στα προηγούμενα κομμάτια κώδικα που έχω αναλύσει, οι επτά πρώτες γραμμές είναι ίδιες και έχουν αναλυθεί.

Στην γραμμή 8 με την εντολή insert εισάγω στον στα πεδία του πίνακα anathesi που αναγράφονται στην πρώτη παρένθεση της γραμμής 8 τις τιμές που περιέχουν οι μεταβλητές που βρίσκονται στην δεύτερη παρένθεση και προέρχονται είτε από την προηγούμενη σελίδα είτε από την επανάληψη της ίδιας σελίδας. Στην συνέχεια στην γραμμή 9 του κώδικα βλέπουμε την εντολή update με την οποία αλλάζει το περιεχόμενο του πεδίου katastasi του πίνακα teacher το οποίο βρίσκεται στην γραμμή του πίνακα με id το περιεχόμενο της μεταβλητής b, με το περιεχόμενο της μεταβλητής m.

Στην γραμμή 10 βλέπουμε άλλη μία εισαγωγή δεδομένων όπως και στην γραμμή 8, αλλά αυτή τη φορά στον πίνακα mathima. Στην γραμμή 11, 12, 13, 14 και 15 χρησιμοποιώ τη εντολή select με σκοπό να πάρω από τους πίνακες teacher, epagempir, spudes course και mathima με id και id_teacher ίδιο με το περιεχόμενο της μεταβλητής b.

Στην γραμμή 16 με την ετικέτα HTML αρχίζει το οπτικό κομμάτι του κώδικα, από την γραμμή 17 έως την γραμμή 19 βλέπουμε την ενότητα HEAD την οποία έχω αναλύσει και από την γραμμή 20 αρχίζει η ενότητα BODY. Στην γραμμή 21 δημιουργώ μια φόρμα η οποία θα εκτελείτε στην περιοχή anathesis3.tcl με την μέθοδο POST. Στις γραμμές 27 έως 32 δημιουργώ δύο ετικέτες FOREACH της οποίας τον τρόπο λειτουργίας έχω εξηγήσει στην ενότητα 4.6, με σκοπό να εμφανίσω κάποιες πληροφορίες σε γραπτή μορφή από τις εντολές αναζήτησης f2 και f3 που βλέπουμε στις γραμμές 12 και 13. Στην γραμμή 36 δημιουργώ έναν πίνακα ο οποίος τελειώνει στην γραμμή 189, ο οποίος στα κελιά του περιέχει πλαίσια κειμένου και λίστες κειμένου, στα οποία ο χρήστης θα πληκτρολογεί και θα επιλέγει τις πληροφορίες που θέλει ώστε να πραγματοποιήσει μία ανάθεση.

Θα ήταν περιττό και ανούσιο να αναλύσω τον κώδικα γραμμή γραμμή γιατί

σε ένα πολύ μεγάλο μέρος του κώδικα οι εντολές επαναλαμβάνονται, έτσι θα σταθώ

για να αναλύσω σε μερικά πολύ σημαντικά μέρη. Έτσι όπως έχουμε ήδη πει ένας

πίνακας αρχικοποιείται με την εντολή TABLE και μπορούμε να προσθέσουμε

διάφορες ετικέτες όπως η align ή η border με σκοπό να μορφοποιήσουμε έναν

πίνακα, μία αρχικοποίηση πίνακα μπορούμε να διακρίνουμε στην γραμμή 36, στην

συνέχεια με την ετικέτα TR δημιουργώ γραμμή στον πίνακα και με την ετικέτα TD

στήλες. Με αυτές τις ετικέτες μπορώ να χρησιμοποιήσω και τις ετικέτες align για στοίχιση μέσα στο κελί colspan για συγχώνευση κελιών και rowspan για συγχώνευση στηλών.

Στην γραμμή 39 με την ετικέτα input δημιουργώ ένα πλαίσιο κειμένου αν ορίσω τον τύπο (TYPE) να είναι κείμενο (TEXT). Στην γραμμή 45 αρχίζει η ετικέτα SELΕCT και τελειώνει στην γραμμή 49, με αυτή την ετικέτα δημιουργώ μία λίστα κειμένου η οποία περιέχει συγκεκριμένες πληροφορίες στις οποίες ο χρήστης δεν μπορεί να επέμβει και να τις αλλάξει, παρά μόνο να επιλέξει μία από αυτές. Στις γραμμές 46 και 47 βλέπουμε ότι με την ετικέτα OPTION και δίνοντας της μία τιμή VALUE η οποία και θα αποθηκεύεται στην βάση δεδομένων και δίπλα βλέπουμε το κείμενο που θα βλέπει ο χρήστης, εδώ έχουμε τις λέξεις χειμερινό και εαρινό, από τα οποία ο χρήστης καλείται να επιλέξει ένα ώστε να κάνει μια ανάθεση. Έτσι ανάλογα με το τι θα επιλέξει πραγματοποιεί μια ανάθεση για το εαρινό ή το χειμερινό εξάμηνο. Τέτοιες επιλογές καλείται να συναντήσει πολλές ο χρήστης για να πραγματοποιήσει μια ανάθεση λόγω της μοναδικότητας που χαρακτηρίζει την κάθε ανάθεση .

Στην γραμμή 87 παρατηρούμε ακόμα μία ετικέτα SELCT η οποία έχει μία πολύ σημαντική διαφορά από αυτήν που περιγράφω παραπάνω. Η διαφορά εδώ είναι ότι εδώ οι τιμές από τις οποίες πρέπει να επιλέξει ο χρήστης προέρχονται από την βάση δεδομένων και έτσι το περιεχόμενο αυτής της λίστας κειμένου είναι δυναμικό και αλλάζει με κάθε αλλαγή του περιεχομένου της βάσης δεδομένων . Έτσι στην γραμμή 88 αρχίζουμε με μία ετικέτα FOREACH η οποία θα μας βοηθήσει να εμφανίσουμε όλα τα περιεχόμενα των επιλεγμένων πεδίων του πίνακα course, τα οποία θα επιλέξουμε στην γραμμή 89. Στην γραμμή 89 βλέπουμε την ετικέτα OPTION η οποία έχει value το περιεχόμενο της πρώτου πεδίου από την εντολή select της SQL στην γραμμή 15 του κώδικα, δηλαδή το ID του πίνακα COURSE.

Έτσι στη βάση δεδομένων θα αποθηκευτεί η τιμή που περιέχεται στο id του πίνακα course.

Μία πολύ χρήσιμη λειτουργία για το χρήστη που υπάρχει σε αυτή τη σελίδα

είναι ο πίνακας που εμφανίζεται στο κάτω μέρος της και περιέχει πληροφορίες για τα

μαθήματα που έχουν ανατεθεί στον καθηγητή συνολικά. Ο κώδικας της λειτουργίας

αυτής αρχίζει από την γραμμή 190 και τελειώνει στην γραμμή 216. Όπως βλέπουμε

πρόκειται για έναν πίνακα ο οποίος αποτελείται από δύο ενότητες. Η πρώτη ενότητα

αρχίζει από την γραμμή 191 και τελειώνει στην γραμμή 199, και αποτελεί την πρώτη

γραμμή του πίνακα και είναι κοινή για όλους του καθηγητές. Αυτή η γραμμή περιέχει τους τίτλους των στηλών για παράδειγμα ΑΚΑΔ. ΕΤΟΣ, ΜΑΘΗΜΑ κ.ο.κ. Η δεύτερη ενότητα αποτελεί το δυναμικό κομμάτι του πίνακα, το οποίο αλλάζει ανάλογα με τον καθηγητή στον οποίο επιχειρούμε να κάνουμε ανάθεση. Η δεύτερη ενότητα αρχίζει από την γραμμή 200 μέχρι την 215. Όπως παρατηρούμε χρησιμοποιώ την ετικέτα FOREACH γιατί θέλω να εμφανίζω όλα τα επιλεγμένα δεδομένα που υπάρχουν στην βάση δεδομένων. Έτσι επιλέγω να παίρνω τα δεδομένα του πίνακα mathima και να τα εμφανίζω με τον τρόπο που βλέπουμε στις γραμμές 203, 205, 206, 207 και 208. Τέλος παρατηρούμε στην γραμμή 201 την εντολή αναζήτησης SELECT που απευθύνεται στον πίνακα COURSE και στα δεδομένα που περιέχει στην γραμμή με ID ίδιο με αυτόν του πίνακα mathima, τα αποτελέσματα αυτής της αναζήτησης εμφανίζονται στην γραμμή 204 και είναι το όνομα του μαθήματος.

Τέλος μια πολύ σημαντική λειτουργία αυτής της σελίδας είναι η ανάκτηση

των δεδομένων (εάν υπάρχουν) στα πλαίσια κειμένου της σελίδας. Αυτό γίνετε με τη

εντολή SCRIPT. Ο κώδικας αυτής της λειτουργίας αρχίζει από την γραμμή 218 και

τελειώνει στην γραμμή 248. Στην 218 με την ετικέτα SCRIPT και καλώντας την

μέθοδο JAVASCRIPT ξεκινάει η διαδικασία ανάκτησης. Στις γραμμές 220, 221 και

222 χρησιμοποιώ την εντολή αναζήτησης SELECT από την βάση δεδομένων

επιλέγοντας όλα τα πεδία των πινάκων anathesi και mathima που έχουν id_teacher

ίδιο με το περιεχόμενο της μεταβλητής b που προέρχεται από την προηγούμενη

σελίδα και το πεδίο katastasi από τον πίνακα teacher το οποίο έχει id ίδιο με το

περιεχόμενο της μεταβλητής b. Στην συνέχεια βλέποντας στις γραμμές 223 έως την

246 βλέπουμε τον τρόπο με τον οποίο επιλέγουμε την πληροφορία που θέλουμε να

εμφανίσουμε και το πλαίσιο κειμένου στο οποίο θέλουμε α την εμφανίσουμε. Πιο

αναλυτικά στην γραμμή 223 μετά την εντολή puts η οποία είναι απαραίτητη για να

μπορέσουμε να χρησιμοποιήσουμε εντολές άλλων γλωσσών προγραμματισμού μέσα

στην TCL, βλέπουμε το f5 το οποίο είναι το όνομα της φόρμας στης οποία τα πλαίσια

κειμένου θέλουμε να εμφανίσουμε τις πληροφορίες. Αμέσως μετά την επιλογή της

φόρμας επιλέγουμε το όνομα του πλαισίου κειμένου στο οποίο θέλουμε να

εμφανίσουμε μια ανάκτηση, εδώ βλέπουμε ότι η ανάκτηση θα εμφανίζεται στο

πλαίσιο κειμένου που έχω δημιουργήσει στην γραμμή 39 του κώδικα. Στην συνέχεια

με τη ετικέτα value επιλέγω την τιμή η οποία θέλω α εμφανίζεται, εδώ επιλέγω να

εμφανίσω το περιεχόμενο του πρώτου πεδίου του πίνακα anathesi. Με αυτόν τον

τρόπο συνεχίζω μέχρι την γραμμή 246. Τέλος στις γραμμές 247 και 248 κλείνω την

μέθοδο SCRIPT.

Documentos relacionados