Βιομηχανική Πληροφορική. Περιεχόμενα

Σχετικά έγγραφα
Η ΕΝΝΟΙΑ ΤΟΥ Ε ΟΜΕΝΟΥ ΚΑΙ ΤΟΥ ΤΥΠΟΥ Ε ΟΜΕΝΩΝ

A ΕΠΑ.Λ ΕΦΑΡΜΟΓΕΣ ΠΛΗΡΟΦΟΡΙΚΗΣ 5 η ΕΝΟΤΗΤΑ: ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Εκπαιδευτικοί: ΓΑΛΑΝΟΣ ΓΕΩΡΓΙΟΣ ΜΠΟΥΣΟΥΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΣ

ÈÛ ÁˆÁ ÛÙÈ μ ÛÂÈ Â ÔÌ ÓˆÓ

Βάσεις Δεδομένων. Τ.Ε.Ι. Ιονίων Νήσων Σχολή Διοίκησης και Οικονομίας - Λευκάδα

Διαχείριση Βάσης Δεδομένων (dbadmin)

Προγραμματισμός Η/Υ. Προτεινόμενα θέματα εξετάσεων Εργαστήριο. Μέρος 1 ό. ΤΕΙ Λάρισας- Σχολή Τεχνολογικών Εφαρμογών Τμήμα Πολιτικών Έργων Υποδομής

Βάσεις Δεδομένων και Ευφυή Πληροφοριακά Συστήματα Επιχειρηματικότητας. 2 ο Μάθημα: Βασικά Θέματα Βάσεων Δεδομένων. Δρ. Κωνσταντίνος Χ.

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Διαγραφή Επιλέγετε Διαγραφή για να διαγράψετε μία ήδη υπάρχουσα διαδικασία εισαγωγής ASCII

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access Κεφάλαιο 2 Χειρισμός πινάκων... 27

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ «ΣΧΕΔΙΑΣΜΟΣ ΚΑΙ ΑΝΑΠΤΥΞΗ ΔΙΑΔΡΑΣΤΙΚΗΣ ΔΙΑΔΙΚΤΥΑΚΗΣ ΕΦΑΡΜΟΓΗΣ ΓΙΑ ΤΗΝ ΕΞΥΠΗΡΕΤΗΣΗ ΑΣΘΕΝΩΝ ΣΥΜΒΕΒΛΗΜΕΝΟΥΣ ΜΕ ΤΟΝ Ε.Ο.Π.Υ.

ΠΛΗΡΟΦΟΡΙΑΚΑ ΣΥΣΤΗΜΑΤΑ. Συστήματα Διαχείρισης Βάσεων Δεδομένων

ΧΡΗΣΗ ΤΗΣ ΕΦΑΡΜΟΓΗΣ (αρ. έκδοσης ) ΓΙΑ ΤΗΝ ΕΞΟΦΛΗΣΗ ΛΟΓΑΡΙΑΣΜΩΝ ΔΕΗ - ΟΤΕ ΕΥΑΘ WIND (εφαρμόζεται αντίστοιχα στις ΔΕΥΑ)

Information Technology for Business

ΚΕΦΑΛΑΙΟ 5. Κύκλος Ζωής Εφαρμογών ΕΝΟΤΗΤΑ 2. Εφαρμογές Πληροφορικής. Διδακτικές ενότητες 5.1 Πρόβλημα και υπολογιστής 5.2 Ανάπτυξη εφαρμογών

Βάσεις Δεδομένων. Εισαγωγή Ανάλυση Απαιτήσεων. Φροντιστήριο 1 ο

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ - ΑΡΧΙΤΕΚΤΟΝΙΚΗ ΣΒΔ - ΕΙΣΑΓΩΓΗ ΣΤΟ ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ ΣΥΣΧΕΤΙΣΕΩΝ ΤΜΗΜΑ ΠΟΛΙΤΙΣΜΙΚΗΣ ΤΕΧΝΟΛΟΓΙΑΣ ΚΑΙ ΕΠΙΚΟΙΝΩΝΙΑΣ

Field Service Management ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

SGA Διαχείριση Πρωτόκολλου

Φυσική Απογραφή & Παραστατικά Αποθήκης

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ Επιβλέπων: ΠΟΤΗΡΑΚΗΣ ΑΝΤΩΝΙΟΣ

Είδη. Σε αυτό το εγχειρίδιο περιγράφεται η Δημιουργία, Μεταβολή, Διαγραφή και Αναζήτηση ενός είδους

Περιεχόμενα. Κεφάλαιο 1 Εισαγωγή στην Access...9. Κεφάλαιο 2 Χειρισμός πινάκων... 25

Σχεδιαστικά Προγράμματα Επίπλου

Διαδικτυακό Περιβάλλον Διαχείρισης Ασκήσεων Προγραμματισμού

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

Α. Ερωτήσεις Ανάπτυξης

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

Pylon Entry. Είδη. Στη διαδικασία αυτή περιγράφεται η Δημιουργία Μεταβολή Διαγραφή - Αναζήτηση ενός είδους

Ανάλυση Απαιτήσεων Απαιτήσεις Λογισµικού

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

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΠΕΝΔΥΣΕΩΝ & ΕΣΠΑ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

1. Από το κεντρικό site του Ιδρύματος επιλέγουμε το σύνδεσμο "Γραμματείες Τμημάτων".

Ενότητα. Σχεδίαση Βάσεων Δεδομένων

eorder Ηλεκτρονική Παραγγελιοληψία ΣΥ.ΦΑ. Θεσσαλονίκης

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Σχεδίαση Βάσεων Δεδομένων

Πληροφορική 2. Τεχνολογία Λογισμικού

ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ ΙΣΟΖΥΓΙΩΝ ΚΡΕΑΤΟΣ

Διαχείριση Αξιόγραφων

Αποθήκη. Διαχείριση Αποθήκης. Published on PRISMA Win Help - Megasoft (

Βάσεις Δεδομένων Εισαγωγή

Ο ΗΓΙΕΣ ΣΥΜΠΛΗΡΩΣΗΣ ΤΗΣ ΦΟΡΜΑΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

CRM για Εκπαιδευτικούς Φορείς

Εγχειρίδιο Χρήσης Προσωποποιημένων Υπηρεσιών Γ.Ε.ΜΗ. (Επιμελητήρια)

Λίγα λόγια από το συγγραφέα...7

Ο.Π.Σ. σύμφωνα με Π ΠΡΟΣΚΛΗΣΗ. Έκδοση: ι με τη

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΠΕΝΔΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙΔΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ.

Βάσεις Δεδομένων. Εργαστήριο 1. Ηλεκτρονικοί Υπολογιστές ΙI. Ακαδημαϊκό Έτος Διαφάνεια 1. Κάπαρης Αναστάσιος

Vodafone Business Connect

ΠΤΥΧΙΑΚΗ ΕΡΓΑΣΙΑ. «Υλοποίηση εφαρμογής λογιστικών και στατιστικών δεδομένων μιας επιχείρησης Δ.Ε.Υ.Α.» Αρ. Μητρώου:

Document Scanning System Ιανουάριος, 2014

Εισαγωγή στις βάσεις δεδομένων - Η ανατομία μιας βάσης δεδομένων

Περιπτώσεις Χρήσης για το Π.Σ. ΜΟ.ΔΙ.Π. Κρήτης

Εύδοξος - Δήλωση Συγγραμμάτων

ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΠΛΗΡΟΦΟΡΙΚΗ

ΠΛΑΤΦΟΡΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΝΤΕΟΔΙΑΛΕΞΕΩΝ ΔΗΛΟΣ delos.uoa.gr. Εγχειρίδιο Χρήσης Μελών ΔΕΠ

Κεφάλαιο 5. Δημιουργία φορμών για τη βάση δεδομένων DVDclub

Εισαγωγή στην Access 2007

Σχεδιασμός των Πινάκων μίας Βάσης Δεδομένων

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΗΜΟΣΙΩΝ ΕΠΕΝ ΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙ ΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ.

Εργαλεία CASE. Computer Assisted Systems Engineering. Δρ Βαγγελιώ Καβακλή. Τμήμα Πολιτισμικής Τεχνολογίας και Επικοινωνίας Πανεπιστήμιο Αιγαίου

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΗΜΟΣΙΩΝ ΕΠΕΝ ΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙ ΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ.

ΑΕΕ ONLINE 2012 ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ

Σύντομη περιγραφή 5. Για να ξεκινήσετε 6. Οι οθόνες του προγράμματος 8. Εγκατάσταση προγράμματος 6 Δημιουργία κωδικών χρήστη 7

2 ΟΥ και 7 ΟΥ ΚΕΦΑΛΑΙΟΥ

11/5/2015. Οι επιχειρήσεις

Αικατερίνη Καμπάση, PhD. Τμήμα Προστασίας και Συντήρησης Πολιτισμικής Κληρονομιάς Α.Τ.Ε.Ι. Ιονίων Νήσων

ΑΝΑΠΤΥΞΗ ΕΦΑΡΜΟΓΩΝ ΣΕ Π ΡΟΓΡΑΜΜΑΤΙΣΤΙΚΟ Π ΕΡΙΒΑΛΛΟΝ

Συστήματα Πληροφοριών Διοίκησης

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

1.1. Βάσεις δεδομένων

ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΧΡΗΣΤΗ. Ηλεκτρονική Υποβολή Α.Π.Δ.

Εργαστηριακές Ασκήσεις Σελίδα 1

Παρουσίαση της λύσης Dnet Mobile Terminal

Εργαστήριο Τεχνολογίας Λογισμικού και Ανάλυσης Συστημάτων - 4 ο Εργαστήριο -

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΟΛΟΚΛΗΡΩΜΕΝΟΥ ΠΛΗΡΟΦΟΡΙΑΚΟΥ ΣΥΣΤΗΜΑΤΟΣ (ΟΠΣ) ΓΙΑ ΤΗΝ ΠΡΟΓΡΑΜΜΑΤΙΚΗ ΠΕΡΙΟΔΟ ΣΕΣ

2.2.5 ΑΝΑΠΑΡΑΣΤΑΣΗ ΑΛΓΟΡΙΘΜΟΥ

ΕΓΧΕΙΡΙΔΙΟ ΗΛΕΚΤΡΟΝΙΚΗΣ ΤΙΜΟΛΟΓΗΣΗΣ ΠΡΟΣΦΟΡΩΝ ΖΩΗΣ - LIFE QUOTES

Βάσεις δεδομένων και Microsoft Access

ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΗΜΟΣΙΩΝ ΕΠΕΝ ΥΣΕΩΝ & ΕΣΠΑ ΕΘΝΙΚΗ ΑΡΧΗ ΣΥΝΤΟΝΙΣΜΟΥ ΕΙ ΙΚΗ ΥΠΗΡΕΣΙΑ Ο.Π.Σ.

ΕΦΑΡΜΟΓΗ ΔΙΑΧΕΙΡΙΣΗΣ ΙΣΤΟΣΕΛΙΔΩΝ ΜΕΛΩΝ ΔΕΠ, ΤΜΗΜΑΤΟΣ ΜΑΘΗΜΑΤΙΚΩΝ ΠΑΝΕΠΙΣΤΗΜΙΟΥ ΠΑΤΡΩΝ ΕΓΧΕΙΡΙΔΙΟ ΟΔΗΓΙΩΝ ΠΛΟΗΓΗΣΗΣ ΚΑΙ ΧΡΗΣΗΣ

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ ασκήσεις και ερωτήσεις

Εγχειρίδιο Χρήσης Λογισμικού της Ψηφιακής Υπηρεσίας "Διάθεση Φυτοπροστατευτικών προϊόντων" Υπουργείο Αγροτικής Ανάπτυξης & Τροφίμων

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

Η Διαδικασία Σχεδιασμού Συστημάτων

Νέες δυνατότητες εφαρμογών PRISMA Win

Ο.Π.Σ. σύμφωνα με Π Τ Π. Έκδοση: ι με τη

ΤΕΙ ΚΑΒΑΛΑΣ. Πτυχιακή εργασία ΕΙΣΑΓΩΓΗ. Μιλτιάδης Κακλαμάνης

Σενάριο Χρήσης myschool

Ανάλυση & Σχεδιασµός Πληροφοριακών Συστηµάτων Ι (Εργαστήριο) Σύστημα Διαχείρισης Πληροφοριακού υλικού της Δημοτικής επιχείρησης «Αναπτυξιακή ΑΕ»

Benzina v Βασικές Οδηγίες Χρήσης

ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ. Ενότητα 1: Εισαγωγή στις Βάσεις Δεδομένων. Αθανάσιος Σπυριδάκος Διοίκηση Επιχειρήσεων

Vodafone Business Connect

ΒΗΜΑΤΑ ΚΑΤΑΧΩΡΗΣΗΣ ΔΙΑΣΑΦΗΣΗΣ ΕΙΣΑΓΩΓΗΣ στο SEPAdesk

Αίτηση Εισαγωγής Μεταπτυχιακού & Διδακτορικού Φοιτητή

ΥΠ.ΕΣ. - Δ.Μ.Η.Ε.Σ. ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΕΦΑΡΜΟΓΗΣ ΛΗΞΙΑΡΧΕΙΟΥ V 1.2

Πληροφορική 2. Βάσεις Δεδομένων (Databases)

Ακαδημαϊκό Έτος , Χειμερινό Εξάμηνο Μάθημα: Εργαστήριο «Πληροφορική Υγείας» ΕΙΣΑΓΩΓΗ ΣΤΗΝ ACCESS

Transcript:

Περιεχόμενα ΕΝΟΤΗΤΑ 1 1.1 Εισαγωγή Αντικείμενο της Πτυχιακής Σελ. 3 1.2 Δυσκολίες κατά την Ανάπτυξη του Λογισμικού Σελ. 4 1.3 Υλοποίηση Σελ. 5 1.4 Διάρθρωση Πτυχιακής Σελ. 10 1.5 Μελλοντικές προοπτικές της ανάπτυξης Σελ. 11 1.6 Γράμμα προς την Βιοτεχνία Σελ. 12 ΕΝΟΤΗΤΑ 2 2.1 Απαιτήσεις Λογισμικού Σελ. 13 2.2 Προδιαγραφές Λογισμικού Σελ. 14 ΕΝΟΤΗΤΑ 3 3.1 Διαγράμματα Ροής Δεδομένων. Σελ. 28 3.2 Μοντελοποίηση της Βάσης Δεδομένων του προγράμματος. Σελ. 32 3.2 Ορισμός Οντοτήτων Σελ. 35 3.3 Ορισμός Συσχετίσεων Σελ. 36 3.4 Ορισμός Ιδιοτήτων Σελ. 38 3.5 Περιγραφή της Βάσης Δεδομένων. Σελ. 48 ΕΝΟΤΗΤΑ 4 4.1 Συμπεράσματα Σελ 52 ΕΝΟΤΗΤΑ 5 5.1 Γενικό Σχέδιο Ελέγχου Σελ. 53 5.2 Αναφορές Ελέγχου και Διορθώσεων Κλάσεων Σελ. 62 5.3 Έλεγχος Συνένωσης Σελ. 82 5.4 Περίληψη Ελέγχου Σελ. 83 5.5 Ημερολόγιο Γεγονότων και Καταστάσεων Ελεγκτή Σελ. 84 ΕΝΟΤΗΤΑ 6 6.1 ΒΙΒΛΙΟΓΡΑΦΙΑ Σελ 85 6.2 ΠΑΡΑΡΤΗΜΑ 1: Τεκμηρίωση κώδικα Σελ 2 6.3 ΠΑΡΑΡΤΗΜΑ 2: Εγχειρίδιο Χρήσης Σελ. 155 ΤΕΙ Καβάλας -Σελ. 1 -

Περιεχόμενα ΛΙΣΤΑ ΕΙΚΟΝΩΝ ΦΟΡΜΑ :: ΒΙΟΤΕΧΝΙΑ ΑΝΑΓΟΜΩΣΗΣ ΚΑΙ ΣΥΝΑΡΜΟΛΟΓΗΣΗΣ Σελ. 86 ΠΥΡ/ΣΤΗΡΩΝ ΦΟΡΜΑ :: ΠΕΛΑΤΟΛΟΓΙΟ Σελ. 91 ΦΟΡΜΑ :: ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ Σελ. 97 ΦΟΡΜΑ :: ΔΗΜΙΟΥΡΓΙΑ ΠΑΡΑΓΓΕΛΙΑΣ Σελ. 107 ΦΟΡΜΑ :: ΔΙΟΡΘΩΣΗ ΛΙΣΤΑΣ ΠΑΡΑΓΓΕΛΙΩΝ Σελ. 117 ΦΟΡΜΑ :: ΜΗΤΡΩΟ ΚΑΤΕΣΤΡΑΜΕΝΩΝ ΠΥΡΟΣΒΕΤΗΡΩΝ Σελ. 122 ΦΟΡΜΑ :: ΕΚΤΥΠΩΣΗ ΛΙΣΤΑ ΠΕΛΑΤΩΝ Σελ. 138 ΦΟΡΜΑ ::ΑΠΟΘΗΚΗ Σελ. 140 ΦΟΡΜΑ ::ΕΠΕΞΕΡΓΑΣΙΑ ΕΓΓΡΑΦΩΝ ΑΠΟΘΗΚΗΣ Σελ. 143 ΦΟΡΜΑ ::ΟΡΙΟ ΑΣΦΑΛΕΙΑΣ Σελ. 145 ΦΟΡΜΑ ::ΕΚΤΥΠΩΣΗ ΛΙΣΤΑ ΥΛΙΚΩΝ Σελ. 145 ΦΟΡΜΑ ::ΕΚΚΡΕΜΟΥΣΕΣ ΠΑΡΑΓΓΕΛΙΕΣ Σελ. 146 ΦΟΡΜΑ ::ΕΚΤΥΠΩΣΗ ΕΚΚΡΕΜΩΝ ΠΑΡΑΓΓΕΛΕΙΩΝ Σελ. 149 ΦΟΡΜΑ ::ΗΜΕΡΟΛΟΓΙΟ Σελ. 150 ΦΟΡΜΑ ::ΕΚΤΥΠΩΣΗ ΗΜΕΡΟΛΟΓΙΟΥ Σελ. 152 ΦΟΡΜΑ ::ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Σελ. 153 ΤΕΙ Καβάλας -Σελ. 2 -

ΕΝΟΤΗΤΑ 1 1.1 Εισαγωγή - Αντικείμενο της Πτυχιακής Το παρόν πρόγραμμα σχεδιάστηκε υλοποιήθηκε από τον σπουδαστή του τμήματος Βιομηχανικής Πληροφορικής, Ρίζο Ευθύμιο, στα πλαίσια εκπόνησης πτυχιακής εργασίας. Το πρόγραμμα είναι εύχρηστο και παράλληλα γρήγορο και χωρίς αυξημένες απαιτήσεις για την υπολογιστική ισχύ που θα χρησιμποιήσει. Οι κυριότερες λειτουργίες του προγράμματος, είναι: I. Το πελατολόγιο όπου μπορεί ο χρήστης να δημιουργήσει και να τροποποιήσει μία εγγραφή ενός πελάτη. II. Η δημιουργία παραγγελίας. III. Η διαχειρίση της αποθήκης. IV. Η καταγραφή των εκκρεμών παραγγελιών. V. Το ημερολόγιο. Το πρόγραμμα βασίζεται σε αληθινά δεδομένα και πραγματικές συνθήκες λειτουργίας. Δεν αποτελεί μία απλή εξομοίωση κάποιων ορισμένων καταστάσεων. Αυτός είναι και ο λόγος για τον οποίο θεωρείται ότι το επίπεδο δυσκολίας για την επίτευξη του θεμιτού στόχου ήταν υψηλό. Οποιαδήποτε παράβλεψη από τον σχεδιαστή αλλά και από τον πελάτη θα μπορούσε να αντιστοιχίσει σε αρκετές ώρες επανεξέτασης και επανασχεδιασμού του στόχου. Σκοπός της παρούσας πτυχιακής είναι η δημιουργία ενός project από έναν σπουδαστή της Βιομηχανικής Πληροφορικής η οποία δεν θα αποτελεί μία απλή εφαρμογή που γίνεται για ένα υποτιθέμενο θέμα αλλά βασίζεται πάνω στις απαιτήσεις ενός πραγματικού πελάτη βιοτεχνίας. Στην πτυχιακή γίνεται εφαρμογή όλων των διαδικασιών που πρέπει να γίνουν για το ορθό χτίσιμο του προγράμματος. Έτσι παρατηρούμε ότι υπάρχουν σχέδιο τεστ, ανάλυση των απαιτήσεων του λογισμικού, διατύπωση των προδιαγραφών σχεδίαση και κωδικοποίηση καθώς και έλεγχος λογισμικού. Για να μπορεί ο κάθε αναγνώστης να καταλάβει πως έγινε η εφαρμογή κομμάτι κομμάτι γίνεται λεπτομερής ανάλυση σε κάθε στάδιο ανάπτυξης. Η εργασία μπορεί να αποτελέσει ένα πολύ καλό παράδειγμα για έναν σπουδαστή για να καταλάβει πως γίνεται πραγματικά μία εφαρμογή σε πραγματικές συνθήκες. Το λογισμικό σχεδιάστηκε για τις ανάγκες της βιοτεχνίας αναγόμωσης πυροσβεστήρων FIRE-X. Για την επίτευξη του θεμιτού αποτελέσματος ο σπουδαστής του τμήματος Βιομηχανικής Πληροφορικής του Τ.Ε.Ι. Καβάλας Ρίζος Ευθύμιος ήρθε σε επαφή με την Βιοτεχνία. Η βιοτεχνία όντας πρωτοποριακή και θέλοντας να δώσει ευκαιρίες σε νέους να εισέλθουν στον βιομηχανικό τομέα ανάπτυξης εφαρμογών έδωσε την ευκαιρία να αναπτύξει για την ίδια μία ΤΕΙ Καβάλας -Σελ. 3 -

εφαρμογή. Ο σπουδαστής, για την ανάλυση των απαιτήσεων αλλά και για το καλύτερο αποτέλεσμα, επισκέφτηκε αρκετές φορές την βιοτεχνία για να αποκομίσει όσο το δυνατόν περισσότερες πληροφορίες για την σχεδίαση του λογισμικού τόσο από τον ιδιοκτήτη της βιοτεχνίας όσο και τους εργαζομένους. Η επαφή με τον πελάτη ήταν μία πρωτόγνωρη εμπειρία. Το φιλικό περιβάλλον σε συνδυασμό με την άψογη μεταχείριση βοήθησε στα μέγιστα ώστε να ξεπεραστούν γρήγορα τα προβλήματα που αντιμετωπίζει κάθε νέος άνθρωπος στα πρώτα του βήματα στην αγορά. Έγινε ξενάγηση στον χώρο και ανέλυσαν τον τρόπο με τον οποίο γίνεται η παραγγελία, ο έλεγχος και γενικά πως λειτουργεί η εταιρεία. Οι απαιτήσεις του πελάτη ήταν σαφής και ξεκάθαρες. Ο πελάτης χρησιμοποιούσε ήδη ένα άλλο πρόγραμμα αλλά δεν είχε στοιχεία που θα του ήταν χρήσιμα για την δουλειά του. Ο στόχος της πτυχιακής ήταν η δημιουργία ενός ολοκληρωμένου project από έναν σπουδαστή μέσα σε περιορισμένο χρόνο. Η σταθερότητα του προγράμματος σε συνδυασμό με την ευχρηστία και την απλότητα στην χρήση του ήταν οι δύο βασικότεροι συντελεστές του. 1.2 Δυσκολίες κατά την Ανάπτυξη Λογισμικού. Στην όλη ανάπτυξη της φάσης για συλλογή πληροφοριών, παρουσιάστηκαν πολλά προβλήματα όπως είναι οι ασαφείς λειτουργίες κάποιων διαδικασιών όπως είναι οι παραγγελίες και το όριο ασφαλείας στην αποθήκη. Υπήρξαν και άλλα προβλήματα, ελλείψεις και δυσκολίες. Κατά την διάρκεια των σπουδαστικών εξαμήνων του τμήματος της Βιομηχανικής Πληροφορικής είχαν δημιουργηθεί διάφορα projects στα πλαίσια των μαθημάτων Τεχνολογίας Λογισμικού I, Τεχνολογίας Λογισμικού II και Τεχνολογία Βιομηχανικού Λογισμικού από ολιγομελής ομάδες όπου κάθε άτομο στην ομάδα είχε και διαφορετική ευθύνη και ρόλο όπως είναι ο Project Manager, Ο ελεγκτής του λογισμικού και ο προγραμματιστής. Στο πρόγραμμα ο σπουδαστής χρειάστηκε να αναλάβει όλα τα καθήκοντα και να βρίσκει λύσεις πάνω στην ανάπτυξη, κάτι που κρίνεται αρκετά δύσκολο. Ο σωστός καταμερισμός του χρόνου, βοήθησε αρκετά στην εξέλιξη του. Έτσι χρειάστηκαν έξι μήνες για την ολοκλήρωση του. ΤΕΙ Καβάλας -Σελ. 4 -

1.3 Υλοποίηση Για την υλοποίηση του προγράματος χρειάστηκε να χρησιμοποιηθούν η SQL (Structured Query Language) και η C++ Builder.Μεγάλο. Καθοριστικό ρόλο έπαιξε και η κατάρτιση πάνω στις διάφορες γλώσσες προγραμματισμού με κύρια την C++ όπου βοήθησε στο μέγιστο στην επίλυση προβλημάτων που παρουσίαστηκαν κατά την ανάπτυξη. Στην συνέχεια ακολουθεί αναλυτική επεξήγηση για τους λόγους που επιλέξαμε και χρησιμοποιήσαμε τις προαναφερθέντες γλώσσες προγραμματισμού. SQL - Microsoft Access Η γλώσσα προγραμματισμού που χρησιμοποιήθηκε για την διαχείριση της βάσης δεδοµένων είναι η SQL (Structured Query Language) σε συνεργασία με το σύστηµα διαχείρισης βάσεων δεδοµένων την Microsoft Access. Η SQL (Structured Query Language) είναι μία γλώσσα 4ης γενιάς που χρησιμοποιούν οι Σχεσιακές Βάσεις Δεδομένων. Αναπτύχθηκε στα τέλη της δεκαετίας του '70 κυρίως από την IBM. 'Έκτοτε αποτελεί το πρωτογενές υλικό ανάπτυξης και συντήρησης Βάσεων Δεδομένων. Η SQL μας επιτρέπει να σχεδιάσουμε και να αποθηκεύσουμε εναλλακτικές εμφανίσεις της ίδιας πληροφορίας στη βάση δεδομένων μας. Οι εμφανίσεις αυτές που λέγονται views είναι ιδεατοί πίνακες, σαν παράθυρα, μέσα από τα οποία βλέπουμε τα δεδομένα που είναι αποθηκευμένα στους πραγματικούς πίνακες. Μια βάση δεδοµένων για να θεωρηθεί σωστά σχεδιασµένη και να μπορεί να λειτουργήσει µε αποτελεσµατικό τρόπο, θα πρέπει να είναι σχεδιασµένη έτσι ώστε τα δεδοµένα που περιλαµβάνει να ανακτώνται εύκολα και γρήγορα. Μια κακή σχεδίαση της δοµής της βάσης, οδηγεί στη δηµιουργία μίας βάσης η οποία είναι εξαιρετικά δυσκίνητη και αναποτελεσµατική. Η διαχείριση µίας βάσης δεδοµένων πραγµατοποιείται µε τη βοήθεια ειδικών προγραµµάτων, που ονοµάζονται συστήµατα διαχείρισης βάσεων δεδοµένων (Database Management Systems, DBMS). Ο ρόλος αυτών των συστηµάτων είναι η αποτελεσµατική επεξεργασία των δεδοµένων της βάσης. Πιο συγκεκριµένα, µέσω των συστηµάτων διαχείρισης βάσεων δεδοµένων, µπορούµε να υλοποιήσουµε και να διαχειριστούµε οποιαδήποτε βάση. ιακρίνουµε τρία στάδια: 1)Τη σχεδίαση και υλοποίηση της βάσης. Το στάδιο αυτό πραγµατοποιείται από τον προγραµµατιστή ο οποίος αφού αναλύσει τις απαιτήσεις που έχουµε από τη βάση δεδοµένων, προχωρεί στο σχεδιασµό και την υλοποίησή της, χρησιµοποιώντας τα κατάλληλα ΤΕΙ Καβάλας -Σελ. 5 -

εργαλεία ανάπτυξης. Το στάδιο αυτό πραγµατοποιείται µόνο µια φορά και απαιτεί ιδιαίτερη προσοχή, καθώς µια εσφαλµένη σχεδίαση, είναι δυνατόν να οδηγήσει σε αναποτελεσµατική διαχείριση των δεδοµένων, κάτι που µακροπρόθεσµα θα κοστίσει, τόσο χρόνο, όσο και χρήµα. 2)Την καταχώρηση των δεδοµένων στη βάση του συστήµατος. Μετά τη σωστή σχεδίαση και υλοποίηση της βάσης, µπορούµε πλέον να καταχωρήσουµε σε αυτή τα δεδοµένα του συστήµατος για το οποίο υλοποιήθηκε. Η διαδικασία της καταχώρησης γίνεται µε τη βοήθεια κατάλληλα σχεδιασµένων φορµών, και µπορεί να πραγµατοποιηθεί από οποιονδήποτε. 3)Τη διαχείριση των δεδοµένων της βάσης. Η διαχείριση αυτή περιλαµβάνει µια σειρά από δραστηριότητες όπως την ανάκτηση δεδοµένων που πληρούν συγκεκριµένα κριτήρια αναζήτησης, τη δηµιουργία αντιγράφων ασφαλείας, και τη µέριµνα για τη σωστή συντήρηση της βάσης εφ όσον η δυνατότητα αυτή παρέχεται από το σύστηµα διαχείρισης βάσεων δεδοµένων που χρησιµοποιούµε. Κατά καιρούς έχουν εµφανιστεί στην αγορά πολλά συστήµατα διαχείρισης βάσεων δεδοµένων, από πολλές εταιρείες, τα οποία ποικίλλουν, τόσο στη σχεδίαση και διαχείριση της βάσης, όσο και στις δυνατότητες που προσφέρουν. Τα πιο γνωστά και ευρέως χρησιµοποιούµενα συστήµατα διαχείρισης βάσεων δεδοµένων είναι η Microsoft Access, η Oracle, η Informix, η Sybase, και παλαιότερα η dbase III plus και η dbase IV. Από τα µοντέρνα συστήµατα διαχείρισης, η Microsoft Access χρησιµοποιείται κυρίως για την ανάπτυξη και διαχείριση βάσεων δεδοµένων σε προσωπικούς υπολογιστές και σε επιχειρήσεις µεσαίου µεγέθους, ενώ η Oracle και η Sybase, χρησιµοποιούνται σε µεγάλες επιχειρήσεις, και υποστηρίζουν πολλούς χρήστες, πολλές ταυτόχρονες προσπελάσεις πάνω στα ίδια δεδοµένα, καθώς και αποµακρυσµένη πρόσβαση µέσω δικτύου. Η σχεδίαση µιας βάσης δεδοµένων περιλαµβάνει τον καθορισµό της δοµής της βάσης, των τύπων δεδοµένων που θα καταχωρούνται στη βάση, και του πλήθους και του είδους των διαδικασιών που θα εφαρµόζονται στα δεδοµένα της βάσης. Στο σηµείο αυτό θα πρέπει να αναφέρουµε ότι πριν το σχεδιασµό της βάσης, προηγείται πλήρης ανάλυση της συµπεριφοράς και των απαιτήσεων του συστήµατος που πρόκειται να υλοποιήσουµε. Μιλώντας γενικά, η σχεδίαση µιας βάσης δεδοµένων, µπορεί να ορισθεί ως µια διεργασία τριών επιπέδων. Τα επίπεδα αυτά είναι, το φυσικό επίπεδο (physical level), το λογικό επίπεδο (logical level), και το επίπεδο όψης (view level). Στο φυσικό επίπεδο, η κύρια µέριµνά µας είναι ο καθορισµός του τρόπου µε τον οποίο τα δεδοµένα της βάσης θα αποθηκεύονται στο σύστηµα. Στο επίπεδο αυτό, καθορίζουµε τους τύπους των δεδοµένων της βάσης, τους ΤΕΙ Καβάλας -Σελ. 6 -

αλγόριθµους διαχείρισης των δεδοµένων, και γενικά, ασχολούµαστε µε διαδικασίες οι οποίες χαρακτηρίζονται από µεγάλο βαθµό πολυπλοκότητας. Στο λογικό επίπεδο, τα πράγµατα είναι πιο απλά. Εδώ ξεφεύγουµε από τις λεπτοµέρειες και την πολυπλοκότητα του φυσικού επιπέδου, και το µόνο που κάνουµε, είναι να καθορίζουµε ποια δεδοµένα θα αποθηκευτούν στη βάση του συστήµατος, και ποιες είναι οι σχέσεις που υφίστανται ανάµεσά τους. Είναι λοιπόν εύκολα αντιληπτό, πως η διαφορά ανάµεσα στο φυσικό και στο λογικό επίπεδο, έχει να κάνει µε τον τύπο διαχείρισης των δεδοµένων: στο φυσικό επίπεδο καθορίζουµε πως τα δεδοµένα θα αποθηκευτούν στη βάση του συστήµατος, ενώ στο λογικό επίπεδο, καθορίζουµε ποια είναι αυτά τα δεδοµένα. Τέλος, στο επίπεδο όψης, καθορίζουµε εκείνο το τµήµα της βάσης που θα είναι ορατό σε κάθε χρήστη. Αυτό κυρίως βρίσκει εφαρµογή σε µεγάλες βάσεις δεδοµένων µε πολύπλοκη σχεδίαση και µεγάλο αριθµό χρηστών. Ο καθορισµός και η διαχείριση της δοµής της βάσης πραγµατοποιούνται µε τη βοήθεια ειδικών γλωσσών προγραµµατισµού. Οι γλώσσες αυτές, χαρακτηρίζονται ως γλώσσες τέταρτης γενιάς (4th Generation Languages, 4GL), διότι σε αντίθεση µε τις συµβατικές γλώσσες προγραµµατισµού όπως είναι η Pascal και η Basic δεν υλοποιούν πολύπλοκες λειτουργίες χαµηλού επιπέδου, αλλά το µόνο που κάνουν είναι να ανακτούν δεδοµένα από τη βάση του συστήµατος, χωρίς ο χρήστης να γνωρίζει πως λαµβάνει χώρα αυτή η διαδικασία. Εκτός από την ανάκτηση των δεδοµένων, οι γλώσσες αυτές προσφέρουν και πιο προχωρηµένες λειτουργίες, όπως είναι η δηµιουργία νέων δοµών δεδοµένων µέσα στη βάση, η διαγραφή και η τροποποίηση αυτών, και ο ορισµός συσχετίσεων µεταξύ των στοιχείων της βάσης. Η καταχώρηση δεν απαιτεί ειδικές γνώσεις πληροφορικής, και µπορεί να γίνει από οποιοδήποτε χρήστη, µε µικρή σχετικά εκπαίδευση πάνω στη λειτουργία του προγράµµατος. Για την καταχώρηση των δεδοµένων χρησιµοποιούνται ειδικές φόρµες που περιλαµβάνουν πλαίσια εισαγωγής δεδοµένων, συνοδευόµενα από κάποιο τίτλο, που να περιγράφει τη λειτουργία τους. Τα δεδοµένα που καταχωρούνται στη βάση, περιγράφονται από ετικέτες που συνήθως βρίσκονται πάνω, αριστερά ή δεξιά από τα πλαίσια εισαγωγής των δεδοµένων. Εκτός όµως από τα πλαίσια εισαγωγής, χρησιµοποιούµε και άλλα στοιχεία καταχώρησης δεδοµένων, όπως list boxes, combo boxes, check boxes και radio buttons. Η διαδικασία καταχώρησης δεδοµένων στη βάση του συστήµατος, διευκολύνεται σε πολύ µεγάλο βαθµό, εάν οι φόρµες µέσα από τις οποίες ο χρήστης καταχωρεί αυτά τα δεδοµένα, είναι λειτουργικές, έξυπνα σχεδιασµένες, και κυρίως, χωρίς περιττά στοιχεία. Μια εφαρµογή η οποία δεν χαρακτηρίζεται από απλότητα όσον ΤΕΙ Καβάλας -Σελ. 7 -

αφορά τη λειτουργία της, είναι σίγουρο ότι θα τροµάξει τον απλό χρήστη και θα µειώσει σηµαντικά την αποδοτικότητά του. Αντίθετα µια σωστά σχεδιασµένη εφαρµογή που ανα πάσα στιγµή θα δίνει στο χρήστη να καταλάβει τι ακριβώς πρέπει να κάνει, θα του επιτρέψει να ολοκληρώσει την εργασία του εύκολα και γρήγορα. Ο σχεδιασµός της αλληλεπίδρασης του προγράµµατος µε τους χρήστες (User Interface, UI), αποτελεί αναπόσπαστο στοιχείο κάθε εφαρµογής, και απαιτεί πολύ µεγάλη προσοχή. Η διαχείριση των δεδοµένων της βάσης, πραγµατοποιείται ανά πάσα στιγµή µετά την υλοποίηση αυτής, και εφαρµόζεται στα δεδοµένα εκείνα που έχουν ήδη καταχωρηθεί. Η κυριότερη µορφή διαχείρισης των δεδοµένων της εφαρµογής, έχει να κάνει µε την επιλογή όσων από αυτά πληρούν κάποια κριτήρια αναζήτησης ή έχουν κάποια συγκεκριµένη τιµή. Ας πάρουµε για παράδειγµα την περίπτωση µιας βιβλιοθήκης, για την οποία έχουµε αναπτύξει µια βάση δεδοµένων. Σε όλα τα συστήµατα διαχείρισης βάσεων δεδοµένων, η διαχείριση των δεδοµένων γίνεται µε τη βοήθεια ειδικών εργαλείων. Τα εργαλεία αυτά είναι όπως έχουµε ήδη περιγράψει η γλώσσα ορισµού δεδοµένων και η γλώσσα χειρισµού δεδοµένων. Υπάρχουν πολλές εκδόσεις και πολλές µορφές για αυτές τις γλώσσες, τα τελευταία όµως χρόνια έχει επικρατήσει ένα κοινό πρότυπο που φέρει το όνοµα δοµηµένη γλώσσα ερωταποκρίσεων (Structured Query Language, SQL). Η γλώσσα αυτή απαντάται σε όλα ανεξαιρέτως τα συστήµατα διαχείρισης βάσεων δεδοµένων, και παρά το γεγονός ότι εµφανίζεται σε πολλές παραλλαγές, η βασική ιδέα που περιγράφει τη λειτουργία της, είναι ουσιαστικά η ίδια. Η σύνταξη και χρήση της γλώσσας SQL θα περιγραφεί µε µεγάλη λεπτοµέρεια σε επόµενο κεφάλαιο. Στο σηµείο όµως αυτό µπορούµε να αναφέρουµε, πως οι βασικές λειτουργίες που αυτή η γλώσσα επιτελεί, διαχωρίζονται σε τέσσερις µεγάλες κατηγορίες, που είναι η εισαγωγή δεδοµένων (data insertion), η διαγραφή δεδοµένων (data deletion), η ανάκτηση δεδοµένων (data retrieval) και η τροποποίηση δεδοµένων (data update). ΤΕΙ Καβάλας -Σελ. 8 -

C++ Builder 6 Η ιδιομορφία του προγράμματος καθιστούσε την ολοκλήρωση του μία δύσκολή υπόθεση. Έπρεπε να βρεθεί μία πλατφόρμα ανάπτυξης αρκετά προσαρμόσιμη ώστε να εφαρμοστεί κατάλληλα μειώνοντας τον κόπο και το χρόνο. Η λύση σε αυτό το πρόβλημα δόθηκε από την C++ Builder. Μία πλατφόρμα ανάπτυξης πολύ δυνατή. Η πολυπλοκότητα όμως σε συνδυασμό με το ότι δεν την γνώριζε καλά δημιούργησε έναν νεκρό χρόνο που χρειαζόταν για να μελετηθεί λεπτομερέστερα η γλώσσα προγραμματισμού. Ο κώδικας του προγράμματος έχει σχεδιαστεί με την γλώσσα προγραμματισμού C++ και το παραθυρικό περιβάλλον του προγράμματος σε C++ Builder 6. Η C++ Builder 6 είναι ένα ισχυρό εργαλείο για την δημιουργία παραθυρικών εφαρμογών που μας δίνει την δυνατότητα με απλές εντολές C++ και έτοιμα εργαλεία που μας προσφέρει να καταφέρνουμε εύκολα την επίτευξη του επιθυμητού αποτελέσματος. Όταν ανοίγουμε την εφαρμογή που δημιουργήσαμε, με την C++ Builder 6 παρατηρούμε εύκολα ξεκάθαρα και γρήγορα όλους τους δεσμούς δίνοντας μας την δυνατότητα να κατανοήσουμε τον κώδικα. Ο C++Builder 6 περιέχει όλα τα εργαλεία που χρειαζόμαστε για να ξεκινήσουμε να αναπτύσσουμε εφαρμογές σε C++ για Windows, περιλαμβάνοντας ένα γραφικό περιβάλλον. Επιταχύνει τον κύκλο ανάπτυξης εφαρμογών που υλοποιούνται με το περιβάλλον C++Builder και στηρίζεται σε designcentric αρχιτεκτονική, της διαχείρισης της ποιότητας και την βελτίωση της παραγωγικότητας των ομάδων. Κατασκευάστηκε για να αυξήσει την ταχύτητα ανάπτυξης, αυτοματοποιώντας τις εργασίες που μπορούν να αποσπάσουν τις ομάδες από την ανάπτυξη εφαρμογών. Η C++Builder βοηθάει επίσης να εντοπισθούν τυχόν ζητήματα απόδοσης στην αρχή της ανάπτυξης, όταν είναι απλούστερα και λιγότερo δαπανηρά για να διορθωθούν, προσφέροντας δυνατότητες Real-Time συνεργασίας και βοήθεια που επιταχύνει την ανάπτυξη των εφαρμογών. Τέλος, ο C++Builder υποστηρίζει ανοιχτά πρότυπα όπως είναι τα ANSI/ISO C++, Microsoft Windows, 98, 2000, XP κ.ά. ΤΕΙ Καβάλας -Σελ. 9 -

1.4 Διάρθρωση Πτυχιακής Στην Ενότητα 1, μέσα από την Εισαγωγή, έχουμε μία πρώτη εικόνα για το πρόγραμμα και για την ανάπυξή του. Μέσα από τις υποενότητες που περιέχονται παρουσιάζονται οι δυσκολίες που παρουσιάστηκαν καθώςκαι οι μελλοντικές προοπτικές του προγράμματος. Στην Ενότητα 2, σύμφωνα με την τεχνολογία λογισμικού, αναλύονται οι απαιτήσεις και οι προδιαγραφές του προγραμματος. Στην Ενότητα 3, γίνεται μία λεπτομερή περιγραφή της Βάσης δεδομένων. Πσρουσιάζονται τα Διαγράμματα Ροής Δεδομένων, η Μοντελοποίηση της Βάσης Δεδομένων του προγράμματος, ο ορισμός των οντοτήτων, ο ορισμός των συσχετίσεων όπως επίσης και ο ορισμός των ιδιοτήτων. Στην Ενότητα 4, με την ολοκληρώση του προγράμματος έχουμε συμπεράσματα που βγάλαμε με το πέρας της πτυχιακής εργασίας. Στην Ενότητα 5, έχει σειρά ο έλεγχος του προγράμματος, ο όποιος αναπτύχθηκε κάθ όλη την διάρκεια της δημιουργίας του προγράμματος. Περιέχει όλα τα βασικά χαρακτηριστικά ενός λεπτομερή ελέγχου. Στην Ενότητα 6, καθώς είναι και η τελευταία ενότητα, έχουμε την Βιβλιογραφία, το Εγχειρίδιο χρήσης όπως επίσης και τον Κώδικα του προγράμματος. ΤΕΙ Καβάλας -Σελ. 10 -

1.5 Μελλοντικές προοπτικές της ανάπτυξης Λόγω της φύσης του, είναι εύκολο να προστεθούν πάνω του κομμάτια και να τροποποιηθούν άλλα όταν χρειαστεί. Έτσι μερικές ιδέες για την μελλοντική ανάπτυξη του προγράμματος είναι να γίνει δικτυακό, να μπορεί να σαρώνει με την βοήθεια ενός scanner και να αποθηκεύει παραστατικά και τιμολόγια και να εκτυπώνει ετικέτες Barcode για κάθε χρήση. Ένα πρόγραμμα που είναι δικτυακό πολλαπλασιάζει τις δυνατότητες του. Έτσι θα μπορεί να χρησιμοποιεί μία βάση δεδομένων και οι υπόλοιποι υπολογιστές να επικοινωνούν με την βάση. Το πρόγραμμα θα μπορεί να στηθεί και σε μηχανήματα που δεν ανήκουν στο ίδιο τοπικό δίκτυο αλλά θα συνδέονται μέσο του διαδικτύου. Έτσι πολύ απλά ο χρήστης θα μπαίνει στην βάση όπου και αν βρίσκεται. Επειδή θα πρέπει μέσα στον υπολογιστή να καταχωρούνται και τα τιμολόγια με τα παραστατικά, ένας τρόπος για την γρήγορη εξυπηρέτηση είναι η σάρωση με την βοήθεια ενός σαρωτή(scanner),η επεξεργασία της εικόνας και η αποθήκευση των δεδομένων στον υπολογιστή. Τα τελευταία χρόνια η ευρεία χρήση του barcode έδειξε ότι είναι κάτι που βοηθά τις επιχειρήσεις στην γρήγορη επεξεργασία των στοιχείων του προιόντος, οπότε θα είναι μία καλή επιλογή για μελλοντικήανάπτυξη. ΤΕΙ Καβάλας -Σελ. 11 -

ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Σπουδαστής: Ρίζος Ευθύμιος ΚΟΜΟΤΗΝΗ 15/06/2004 Προς: Την Βιοτεχνία Αναγόμωσης και Συναρμολόγησης Πυροσβεστήρων FIRE-X. Στο Τμήμα Βιομηχανικής Πληροφορικής του Τ.Ε.Ι Καβάλας κατά την εκπόνηση της πτυχιακής εργασίας, ανατέθηκε στον σπουδαστή Ρίζο Ευθύμιο μία εργασία με αντικείμενο τη Σχεδίαση και Ανάπτυξη εφαρμογής βάσεως δεδομένων, για Βιοτεχνία αναγόμωσης και συναρμολόγησης πυροσβεστήρων με ιδιαίτερη έμφαση στην διαχείριση προϊόντων, πελατών και παραγγελιών. Ο σπουδαστής του τμήματος βιομηχανικής πληροφορικής Ρίζος Ευθύμιος έχει επιφορτιστεί με την αποπεράτωση του έργου. Φυσικά δεν είναι δυνατόν να φέρει σε πέρας το έργο της χωρίς τη βοήθεια σας. Παρακαλώ λοιπόν να διαθέσετε λίγο από τον χρόνο σας για δοθούν οι πληροφορίες που χρειάζονται. Σας Ευχαριστώ Με τιμή Ευθ. Ρίζος Σπουδαστής E-mail: efrizos@iiu.teikav.edu.gr ΤΕΙ Καβάλας -Σελ. 12 -

ΕΝΟΤΗΤΑ 2 2.1 ΑΠΑΙΤΗΣΕΙΣ ΛΟΓΙΣΜΙΚΟΥ Στο παρόν λογισμικό, θα πρέπει να παρέχονται όλες υπηρεσίες που μπορεί να προσφέρει ένα σύγχρονο πρόγραμμα και επιπλέον υπηρεσίες ώστε να διασφαλίζεται η διασφάλιση προσωπικών δεδομένων καθώς και η άμεση αντιμετώπιση τυχόν προβλημάτων που μπορεί να παρουσιασθούν. Πέρα από τις απαιτήσεις που παρουσιάζονται παρακάτω, υπάρχουν και απαιτήσεις οι οποίες θα πρέπει να υλοποιηθούν και τυγχάνουν υψηλής σημασίας, όπως είναι: Α) Επεκτάσιμή εφαρμογή. Β) Φιλική στον χρήστη. Παραθυρικό περιβάλλον. Επικύρωση δεδομένων καταχώρησης. Υποστήριξη αποφυγής σφαλμάτων χρήστη. Δυνατότητα χρησιμοποίησης μετά από 2ωρη εκπαίδευση. Γ) Αλληλεπιδραστική. Δ) προστασία δεδομένων εφαρμογής. Απαιτήσεις Software 1) Πελατολόγιο. Θα υπάρχει ένα πελατολόγιο που θα μπορεί ο χρήστης να επεξεργάζεται τα στοιχεία των πελατών. i. Επεξεργασία δεδομένων πελατών. Θα πρέπει να μπορεί ο χρήστης να εισάγει, να διαγράφει, να τροποποιεί διάφορα δεδομένα πελατών. Έτσι, μέσα στη βάση δεδομένων, θα υπάρχουν καταχωρημένα ο κωδικός του πελάτη, το επώνυμο, το όνομα, το πατρώνυμο, το Α.Φ.Μ., ο Αριθμός Δελτίου Ταυτότητας, το Επάγγελμα, η Πόλη, η Οδός/Χωριό, ο Τ.Κ., ο Κωδικός Περιοχής, το Τηλέφωνο, το Κινητό. ii. Αντιστοίχηση πελατών με παραγγελίες. Κάθε πελάτης θα πρέπει να μπορεί να αντιστοιχίζεται με μία ή και περισσότερες παραγγελίες. Για να γίνει μία παραγγελία, θα πρέπει να βρούμε πρώτα τον πελάτη που μας ενδιαφέρει και στην συνέχεια να τον αντιστοιχίσουμε με τα υλικά της αποθήκης. iii. Αναζήτηση πελάτη. Ο χρήστης θα μπορεί να κάνει αναζήτηση ενός πελάτη μέσα από την κατάλληλη φόρμα. Η αναζήτηση μπορεί να ΤΕΙ Καβάλας -Σελ. 13 -

γίνει με βάση το Επώνυμο του πελάτη, τον Κωδικό του και την Πόλη. 2) Διαχείριση υλικών αποθήκης. i. Καταγραφή υλικών αποθήκης Όλα τα υλικά της αποθήκης, πρέπει να είναι καταγεγραμμένα μέσα στην βάση δεδομένων και θα πρέπει ανάλογα με την παραγγελία να αφαιρείται και το κατάλληλο πλήθος των υλικών. Ένα υλικό που δεν υπάρχει μέσα στην αποθήκη δεν θα μπορεί εισαχθεί σε μία παραγγελία. ii. Επεξεργασία υλικών αποθήκης. Θα πρέπει ο χρήστης να μπορεί να εισάγει, να διαγράφει και να τροποποιεί τα υλικά της αποθήκης. Σε κάθε υλικό αποθήκης, θα υπάρχει ένας κωδικός που θα τον εισάγει ο χρήστης, θα καταγράφεται το είδος, η ποσότητα, η τιμή και αν κρίνεται σκόπιμο κάποιο σχόλιο. Μετά την επικύρωση επισυνάπτεται με το υλικό και ένας μοναδικός ID αριθμός. iii. Εισαγωγή ορίου ασφαλείας. Για περισσότερη ασφάλεια, θα μπορεί ο χρήστης να εισάγει ένα όριο ασφαλείας στο πλήθος των υλικών της αποθήκης για να γνωρίζει ανά πάσα στιγμή σε ποια υλικά χρειάζεται να γίνει παραγγελία. Έτσι δεν θα βρεθεί ποτέ προ εκπλήξεως και τα αποθέματα της αποθήκης θα βρίσκονται πάντα σε ασφαλή όρια. 3) Παραγγελίες. Θα μπορεί ο χρήστης να δημιουργήσει μία παραγγελία με τα υπάρχοντα υλικά της αποθήκης. Με την παραγγελία, θα καταγράφεται στην βάση δεδομένων ο κωδικός παραγγελίας, η ημερομηνία παραγγελίας, ο κωδικός του πελάτη, το επώνυμό του όνομά του και τα στοιχεία των υλικών της αποθήκης. i. Αντιστοίχηση πελατών με υλικά αποθήκης. Στην παραγγελία θα γίνεται αντιστοίχηση πελάτη με υλικά αποθήκης. Επίσης θα μπορεί ο χρήστης αργότερα να εκτυπώσει την παραγγελία. ii. Ενημέρωση για Εκκρεμμούσες παραγγελίες. Όταν περάσει κάποιο χρονικό διάστημα(ένα έτος) θα μπορεί ο χρήστης να ενημερωθεί ποιες παραγγελίες είναι πιθανές στο άμεσο μέλλον. Δηλαδή παραγγελίες που έγιναν ένα έτος πριν και είναι πιθανόν να θέλουν αναγόμωση και συντήρηση. ΤΕΙ Καβάλας -Σελ. 14 -

iii. Καταγραφή στην Βάση Δεδομένων παραγγελίες που έχουν διεκπεραιωθει. 4) Διαχείρηση παραγγελιών. Κατά την δημιουργία μίας παραγγελίας, θα γίνεται πρώτα έλεγχος του ορίου ασφαλείας δηλαδή αν υπάρχει το αντίστοιχο απόθεμα στην αποθήκη και εφόσον το υπάρχει το απόθεμα, θα αφαιρείται από την αποθήκη η αντίστοιχη ποσότητα. 5) Μητρώο κατεστραμμένων πυροσβεστήρων. Σε περίπτωση που σε κάποια παραγγελία υπάρχει ένας(ή περισσότεροι) κατεστραμμένος πυροσβεστήρας, θα μπορεί να καταγράφεται κάπου ώστε να το γνωρίζει ο πελάτης αλλά και η βιοτεχνία. 6) Εκτυπώσεις στο πρόγραμμα. Οι εκτύπωση είναι μία λειτουργία στο πρόγραμμα όπου έχει μεγάλη εφαρμογή και μπορεί να χρησιμοποιηθεί αρκετά για την εξυπηρέτηση τόσο των πελατών όσο και του χρήστη. Έτσι σε αρκετές φόρμες του προγράμματος, κρίνεται αναγκαίο να υπάρχει η επιλογή του χρήστη για εκτύπωση. i. Εκτύπωση της λίστας πελατών. ii. Εκτύπωση της λίστας των υλικών της αποθήκης. iii. Εκτύπωση των Εκκρεμών παραγγελιών. iv. Εκτύπωση του Ημερολογίου. 7) Ημερολόγιο του προγράμματος. Το ημερολόγιο είναι μία προσωπική ατζέντα όπου θα μπορούν να καταγραφούν διάφορα επαγγελματικά ραντεβού αλλά και δουλείες όπως η πληρωμή λογαριασμών(τράπεζες, ΔΕΗ, ΟΤΕ, κλπ.). Οι υπενθυμίσεις της ημέρας θα μπορούν να εκτυπώνονται. ΤΕΙ Καβάλας -Σελ. 15 -

2.2 ΠΡΟΔΙΑΓΡΑΦΕΣ ΛΟΓΙΣΜΙΚΟΥ 1) Πελατολόγιο Επεξεργασία δεδομένων πελατών. Υπηρεσία: Επεξεργασία στοιχείων πελατών. Περιγραφή: Θα μπορεί ο χρήστης να εισάγει, να διαγράψει αλλά και να τροποποιήσει τα στοιχεία ενός πελάτη. Είσοδος: Τα στοιχεία του πελάτη θα επεξεργάζονται στην κατάλληλη φόρμα που υπάρχει στο πρόγραμμα. Έξοδος: Με το πέρας της εργασίας η βάση δεδομένων θα ανανεώνεται αμέσως και η ανανέωση θα είναι εμφανής στον χρήστη. Προορισμός: Ο βασικός στόχος του πελατολογίου είναι η βάση δεδομένων του προγράμματος. Προϋπόθεση: Θα πρέπει τα στοιχεία που καταγράφονται να είναι σωστά ώστε να μην υπάρξει πρόβλημα στην λειτουργία του προγράμματος. Απαίτηση: Να υπάρχει πελάτης. Πλευρικά Φαιν.: Να μην καταγραφούν σωστά θα δεδομένα. ΤΕΙ Καβάλας -Σελ. 16 -

2) Πελατολόγιο - Αντιστοίχηση πελατών με παραγγελίες. Υπηρεσία: Αντιστοίχηση πελατών με παραγγελίες. Περιγραφή: Κάθε πελάτης θα μπορεί να αντιστοιχίζεται με μία ή και περισσότερες παραγγελίες. Έτσι θα δημιουργείται μία παραγγελία. Είσοδος: Τα στοιχεία της παραγγελίας του πελάτη. Κωδικός παραγγελίας, Ημερομηνία, Κωδικός πελάτη, Επώνυμο πελάτη, όνομα, τα υλικά της παραγγελίας και το συνολικό κόστος. Έξοδος: Καταγραφή στην βάση δεδομένων όλων των παραπάνω στοιχείων. Προορισμός: Στην βάση δεδομένων του προγράμματος. Προϋπόθεση: Να υπάρχουν σωστά καταχωρημένα τα στοιχεία του πελάτη και της παραγγελίας. Απαίτηση: Να γίνει η αντιστοίχηση του πελάτη με τα υλικά της παραγγελίας. Πλευρικά φαιν.: Λάθος στα δεδομένα εισαγωγής από τον χρήστη. ΤΕΙ Καβάλας -Σελ. 17 -

3) Πελατολόγιο Αναζήτηση πελάτη. Υπηρεσία: Αναζήτηση πελάτη. Περιγραφή: Θα γίνεται αναζήτηση ενός πελάτη με βάση το Επώνυμο ή το Κωδικό ή την Πόλη. Η αναζήτηση θα γίνεται έξυπνα, χωρίς να χρειάζεται να πληκτρολογηθεί όλο το Επώνυμο ή Κωδικός ή Πόλη. Είσοδος: Τα στοιχεία του πελάτη που θα αναζητήσουμε. Έξοδος: Το πλήθος το αποτελεσμάτων της αναζήτησης μέσα στο προκαθορισμένο πίνακα. Προορισμός: Η οθόνη του υπολογιστή. Προϋπόθεση: Να υπάρχει ο πελάτης με τα αντίστοιχα στοιχεία. Απαίτηση: Να εμφανίσει το επιθυμητό αποτέλεσμα. Πλευρικά φαιν.: Να εισαχθούν λάθος δεδομένα από λάθος του χρήστη. ΤΕΙ Καβάλας -Σελ. 18 -

4) Καταγραφή υλικών αποθήκης. Υπηρεσία: Καταγραφή υλικών αποθήκης. Περιγραφή: Όλα τα υλικά της αποθήκης, πρέπει να είναι καταγεγραμμένα μέσα στην βάση δεδομένων ώστε να χρησιμοποιηθούν σε μία παραγγελία. Είσοδος: Τα στοιχεία των υλικών της αποθήκης. Θα καταγράφεται ο κωδικός του υλικού, το είδος, η ποσότητα, η τιμή, και σε περίπτωση που υπάρχουν κάποια σχόλια. Έξοδος: Εμφάνιση στα υλικά της αποθήκης τα στοιχεία του υλικού που επεξεργαστήκαμε. Προορισμός: Η βάση δεδομένων των στοιχείων που καταχωρούνται μέσα στο πρόγραμμα. Προϋπόθεση: Να υπάρχει το αντίστοιχο υλικό που θα πρέπει να εισάγουμε. Απαίτηση: Όταν θα γίνεται μία παραγγελία, θα πρέπει να αφαιρείται και το αντίστοιχο πλήθος των υλικών. Πλευρικά φαιν.: Λάθος στην εισαγωγή των στοιχείων από τον χρήστη. ΤΕΙ Καβάλας -Σελ. 19 -

5) Επεξεργασία υλικών αποθήκης. Υπηρεσία: Επεξεργασία υλικών αποθήκης. Περιγραφή: Θα μπορεί ο χρήστης να εισάγει, να διαγράφει και να επεξεργάζεται τα στοιχεία των υλικών που επιθυμεί. Είσοδος: Τα στοιχεία των υλικών που θα επεξεργαστούν. Έξοδος: Στην βάση δεδομένων του προγράμματος. Προορισμός: Στην οθόνη του υπολογιστή και στην βάση δεδομένων του προγράμματος. Προϋπόθεση: Να υπάρχουν υλικά που θα πρέπει να τροποποιηθούν τα στοιχειά τους. Απαίτηση: Να γίνεται η σωστή επεξεργασία των στοιχείων των υλικών. Πλευρικά φαιν.: Να επεξεργάζονται σωστά τα δεδομένα. ΤΕΙ Καβάλας -Σελ. 20 -

6) Εισαγωγή ορίου ασφαλείας. Υπηρεσία: Εισαγωγή ορίου ασφαλείας. Περιγραφή: Ο χρήστης εισάγει ένα όριο ασφαλείας στα υλικά αποθήκης, ώστε να μπορεί να γνωρίζει σε ποια προϊόντα έχει έλλειψη για να τα παραγγείλει. Είσοδος: Ο αριθμός του ορίου ασφαλείας που κρίνει αναγκαίο ο χρήστης. Έξοδος: Εμφάνιση των προϊόντων που είναι κάτω από το ορισμένο όριο ασφαλείας. Προορισμός: Στον αντίστοιχο πίνακα βλέπουμε τα προϊόντα που έχουν έλλειψη. Προϋπόθεση: Θα πρέπει να υπάρχουν υλικά που είναι κάτω από το όριο για να εμφανιστούν στην λίστα. Απαίτηση: Να εμφανιστούν τα υλικά που είναι κάτω από το όριο. Πλευρικά φαιν.: Να μην γίνει εμφάνιση του αναμενόμενου αποτελέσματος στην οθόνη. ΤΕΙ Καβάλας -Σελ. 21 -

7) Παραγγελίες Αντιστοίχηση πελατών με υλικά αποθήκης. Υπηρεσία: Αντιστοίχηση πελατών με υλικά αποθήκης. Περιγραφή: Κατά την δημιουργία μίας παραγγελίας κάθε πελάτης αντιστοιχίζεται με ένα ή και περισσότερα υλικά που βρίσκονται στην αποθήκη. Είσοδος: Ο κωδικός παραγγελίας, τα υλικά της αποθήκης και τα στοιχεία του πελάτη. Έξοδος: Δημιουργία στην βάση δεδομένων η αντιστοίχηση πελάτη υλικών. Προορισμός: Η βάση δεδομένων του προγράμματος. Προϋπόθεση: Να υπάρχει πελάτης και υλικά μέσα στην αποθήκη. Απαίτηση: Να γίνει η αντιστοίχηση. Πλευρικά φαιν.: Να μην υπάρχουν τα υλικά στην αποθήκη. ΤΕΙ Καβάλας -Σελ. 22 -

8) Αναζήτηση παραγγελιών σε εκκρεμότητα. Υπηρεσία: Εκκρεμμούσες παραγγελίες. Περιγραφή: Με βάση την ημερομηνία στην δημιουργία μίας παραγγελίας, μπορεί ο χρήστης να ενημερωθεί μέτα από ένα χρόνο, ποια παραγγελία εκκρεμεί έτσι ώστε να ενημερώσει τον πελάτη για την αναγόμωση ή ακόμα και για την συντήρηση μίας εγκατάστασης. Είσοδος: Η ημερομηνία που θέλουμε να ελέγξουμε για την παραγγελία. Έξοδος: Εμφάνιση του αποτελέσματος της αναζήτησης. Προορισμός: Στον αντίστοιχο πίνακα της φόρμας. Προϋπόθεση: Να υπάρχει η παραγγελία με την ημερομηνία στην Βάση δεδομένων. Απαίτηση: Εμφάνιση του επιθυμητού αποτελέσματος. Πλευρικά φαιν.: Να μην υπάρχει στην βάση δεδομένων η αντίστοιχη ημερομηνία καταχωρημένη. ΤΕΙ Καβάλας -Σελ. 23 -

9) Έλεγχος αποθεμάτων και Αφαίρεση ποσότητας παραγγελίας. Υπηρεσία: Διαχείριση παραγγελιών. Περιγραφή: Κατά την δημιουργία μίας παραγγελίας γίνεται πρώτα έλεγχος για να δούμε αν υπάρχει το αντίστοιχο απόθεμα στην αποθήκη και στην συνέχεια αφαιρούμε την ποσότητα της παραγγελίας από την αποθήκη. Είσοδος: Η ποσότητα των τεμαχίων που θα παραγγείλουμε. Έξοδος: Εμφάνιση του αποτελέσματος του ελέγχου. Προορισμός: Στον αντίστοιχο πίνακα της φόρμας. Προϋπόθεση: Να υπάρχει το κατάλληλο απόθεμα στην αποθήκη. Απαίτηση: Εμφάνιση του επιθυμητού αποτελέσματος. Πλευρικά φαιν.: Να μην υπάρχει το αντίστοιχο απόθεμα στην βάση. ΤΕΙ Καβάλας -Σελ. 24 -

10) Έλεγχος κατάστασης φιάλης πυροσβεστήρα. Υπηρεσία: Μητρώου ενημέρωσης κατεστραμμένων πυροσβεστήρων. Περιγραφή: Κατά την αναγόμωση των πυροσβεστήρων, γίνεται έλεγχος στο σώμα της φιάλης αλλά και στα υπόλοιπα μέρη για διαπιστωθεί ότι βρίσκονται σε καλή κατάσταση. Ο έλεγχος είναι οπτικός για φθορές, σκουριές αλλά και έλεγχος με υδραυλική δοκιμή. Είσοδος: Ο κωδικός του πυροσβεστήρα, και η αιτιολογία της καταστροφής. Έξοδος: Καταγραφή στην βάση δεδομένων του προγράμματος η αντίστοιχη εγγραφή. Προορισμός: Στην αντίστοιχη φόρμα με τον πελάτη εμφανίζονται οι κωδικοί των πυροσβεστήρων με το πρόβλημά τους. Προϋπόθεση: Η ύπαρξη πυροσβεστήρα με πρόβλημα. Απαίτηση: Να γίνει η καταγραφή του προβλήματος. Πλευρικά φαιν.: Να μην υπάρχει χαλασμένος πυροσβεστήρας. ΤΕΙ Καβάλας -Σελ. 25 -

11) Εκτυπώσεις στο πρόγραμμα. Υπηρεσία: Εκτυπώσεις στο πρόγραμμα. Περιγραφή: Σε όλο το πρόγραμμα σε διάφορες φόρμες, υπάρχει η δυνατότητα εκτύπωσης της απαραίτητης λίστας. Μπορεί η λίστα να είναι με τους πελάτες, τα υλικά της αποθήκης, εκκρεμμούσες παραγγελίες, το ημερολόγιο, παραγγελίες. Είσοδος: Η λίστα με τα στοιχεία που θέλουμε να εκτυπώσουμε στην αντίστοιχη φόρμα. Έξοδος: Η εκτύπωση της λίστας στον εκτυπωτή. Προορισμός: Ο εκτυπωτής του συστήματός μας. Προϋπόθεση: Να έχουμε έναν εκτυπωτή συνδεμένο με το σύστημά μας ώστε να γίνει και ή εκτύπωση. Απαίτηση: Να γίνει η εκτύπωση. Πλευρικά φαιν.: Να μην συνδεδεμένος ο εκτυπωτής ή να μην τον έχουμε τροφοδοτήσει με χαρτιά. ΤΕΙ Καβάλας -Σελ. 26 -

12) Ενημέρωση Ημερολογίου Υποχρεώσεων. Υπηρεσία: Ημερολόγιο ενημέρωσης υποχρεώσεων. Περιγραφή: Το ημερολόγιο, είναι μία φόρμα που έχει χρήση μίας κοινής ατζέντας. Ο χρήστης μπορεί να καταχωρίσει σε όποια ημερομηνία επιθυμεί επαγγελματικά ραντεβού ή ακόμα και δουλείες όπως είναι η πληρωμή λογαριασμών τραπέζης, ΔΕΗ, ΟΤΕ και άλλες. Είσοδος: Η καταγραφή της υποχρέωσης στην ημερομηνία που επιλέγει ο χρήστης. Έξοδος: Καταγραφή στην βάση δεδομένων η αντίστοιχη εγγραφή. Προορισμός: Στην αντίστοιχη φόρμα του προγράμματος. Προϋπόθεση: Να έχει γίνει μία καταγραφή στο ημερολόγιο. Απαίτηση: Να εμφανίσει τις εγγραφές. Πλευρικά φαιν.: Να γίνει μία εγγραφή σε λάθος ημερομηνία. ΤΕΙ Καβάλας -Σελ. 27 -

Διαγράμματα Ροής Δεδομένων ΤΕΙ Καβάλας -Σελ. 28 -

Διαγράμματα Ροής Δεδομένων Χειριστής Η/Υ Στοιχεία Πελάτη Στοιχεία Υλικού Στοιχεία Εκκρεμούσας Διαχείριση Στοιχείων Πελάτη Διαχείριση Υλικών Αποθήκης Διαχείριση Εκκρεμών Παραγγελιών Στοιχεία Πελατών Στοιχεία Πελατών Στοιχεία Υλικών Στοιχεία Υλικών Στοιχεία Εκκρεμών Στοιχεία Εκκρεμών Πελατολόγιο Αποθήκη Εκκρεμούσες Παραγγελίες ΤΕΙ Καβάλας -Σελ. 29 -

Διαγράμματα Ροής Δεδομένων Χειριστής Η/Υ Χειριστής Η/Υ Στοιχεία Ημέρας Στοιχεία Μητρώου Διαχείριση Εγγραφών Ημερολογίου Διαχείριση Μητρώου Στοιχεία Ημέρας Στοιχεία Ημέρας Στοιχεία Μητρώου Στοιχεία Μητρώου Ημερολόγιο Μητρώο Κατεστραμμένων Πυρ/ων ΤΕΙ Καβάλας -Σελ. 30 -

Διαγράμματα Ροής Δεδομένων ΤΕΙ Καβάλας -Σελ. 31 -

3.2 Μοντελοποίηση της Βάσης Δεδομένων του προγράμματος. Ένα σύστημα βάσεως δεδομένων πρέπει να αναπαριστά όλες τις οντότητες (entities) και τις μεταξύ τους σχέσεις (relationships) για τις εφαρμογές που μας ενδιαφέρουν. Το ειδικό μοντέλο που θα πρέπει να κατασκευάσουμε το βλέπουμε παρακάτω και είναι γνωστό ως μοντέλο οντοτήτων συσχετίσεων (ΜΟΣ) της εφαρμογής. Σαν οντότητες θεωρούμε πρόσωπα, αντικείμενα και έννοιες γύρω από τις οποίες θα συγκεντρωθεί και θα αποθηκευθεί πληροφορία. Κάθε οντότητα μπορεί να παρασταθεί, όπως θα δούμε στη συνέχεια. Επειδή οι οντότητες έχουν συχνά κάποιες συσχετίσεις μεταξύ τους πολλές φορές αυτές τις συσχετίσεις(relationships) τις παριστάνουμε είτε με σχέσεις ανάμεσα στους πίνακες των οντοτήτων ή και με ξεχωριστούς πίνακες. Η οργάνωση της βάσης με κύριο στοιχείο τους πίνακες, είναι γνωστή ως σχεσιακή (relational). Με άλλα λόγια, το μοντέλο σχεσιακών βάσεων δεδομένων αναπαριστά τα δεδομένα σαν μία συλλογή από πίνακες. Στη συνέχεια ακολουθεί η Λογική Σχεδίαση της Βάσης Δεδομένων(Μοντέλο Οντοτήτων Συσχετίσεων), Ορισμός Οντοτήτων Συσχετίσεων και ορίζονται τα αντικείμενα και οι ιδιότητες που ενδιαφέρουν να αποθηκευτούν στη βάση. Για την εγγραφή του πελάτη χρειάζονται τα εξής στοιχεία: Το επώνυμο, το όνομα, το πατρώνυμο, το ΑΦΜ, το τηλέφωνο, το κινήτο τηλέφωνο, ο αριθμός δελτίου ταυτότητας, η δουλειά, ο κωδικός περιοχής, η πόλη, ο ταχυδρομικός κώδικας, ο κωδικός του πελάτη. Τα παραπάνω στοιχεία, χρειάζονται για να καταχωρηθεί ο πελάτης. Υποψήφια κλειδιά: Ο κωδικός του πελάτη, το ΑΦΜ και ο αριθμός δελτίου ταυτότητας. Ο κωδικός του πελάτη καλύπτει τις απαιτήσεις για ένα πρωτεύον κλειδί. ΤΕΙ Καβάλας -Σελ. 32 -

Για την παραγγελία τα στοιχεία που ενδιαφέρουν είναι τα εξής: Ο κωδικός της παραγγελίας, ο ξεχωριστός κωδικός της βάσης, το είδος του υλικού, τα τεμάχια, ο κωδικός του πελάτη, η τιμή, η ημερομηνία, η ημερομηνία λήξης, το άθροισμα της παραγγελίας. Υποψήφια κλειδιά: Ο κωδικός παραγγελίας και ο κωδικός της βάσης. Ο κωδικός παραγγελίας, καλύπτει τις απαιτήσεις για ένα πρωτεύον κλειδί. Για την αποθήκη, χρειάζονται τα εξής στοιχεία: Ο κωδικός του είδους, ο κωδικός της βάσης, το είδος, η τιμή, τα τεμάχια και τα διάφορα σχόλια για το υλικό. Υποψήφια κλειδιά: Ο κωδικός του είδους και ο κωδικός της βάσης. Ο κωδικός του είδους της αποθήκης, καλύπτει τις απαιτήσεις για ένα πρωτεύον κλειδί. Για το μητρώο κατεστραμμένων πυροσβεστήρων, χρειάζονται τα παρακάτω στοιχεία: Ο αριθμός σειράς φιάλης, ο κωδικός της βάσης, ο κωδικός του πελάτη, η ημερομηνία και τα σχόλια. Υποψήφια κλειδιά: Ο αριθμός σειράς φιάλης και ο κωδικός της βάσης. Ο αριθμός σειράς φιάλης καλύπτει τις απαιτήσεις για ένα πρωτεύον κλειδί. Λογική Σχεδίαση της Βάσης Δεδομένων - Μοντέλο Οντοτήτων Συσχετίσεων(ΜΟΣ) Από τις απαιτήσεις που δόθηκαν για τη βάση και τους περιορισμούς που ορίστηκαν προέκυψε το διάγραμμα οντοτήτων συσχετίσεων, με το οποίο περιγράφονται οι βασικές οντότητες, οι ιδιότητές τους και οι σχέσεις που τις συνδέουν. ΤΕΙ Καβάλας -Σελ. 33 -

Βιομηχανική afm Πληροφορική ΜΟΝΤΕΛΟ ΟΝΤΟΤΗΤΩΝ job FIRE ΣΥΣΧΕΤΙΣΕΩΝ - X (ΜΟΣ) epwnymo Kwdikos_perioxhs kodpara id onoma polh Μ Ν ΠΕΛΑΤΗΣ ΚΑΝΕΙ ΠΑΡΑΓΓΕΛΙΕΣ kvdikos eidos tk id_pelath kinhto_1 thlefwno patrwnymo adt orio ΟΡΙΟ ΑΣΦΑΛΕΙΑΣ 1 ΕΛΕΓΧΕΙ Μ 1 sum temaxia Id_pelath hmnia hmnialh3hs Μ ΕΝΗΜΕΡΩΣΗ ΕΝΗΜΕΡΩΣΗ _1 N N kvdikos loipa_sxolia temaxia id pelaths ΜΗΤΡΩΟ ΚΑΤΕΣΤΡΑΜΜΕΝΩΝ ΠΥΡΟΣΒΕΣΤΗΡΩΝ kvdikos id ΑΠΟΘΗΚΗ eidos price sxolia hmnia ΤΕΙ Καβάλας -Σελ. 34 -

ΤΕΙ Καβάλας -Σελ. 35 -

3.3 Ορισμός οντοτήτων Από το παραπάνω διάγραμμα, αρχικά περιγράφονται οι βασικές οντότητες που σχεδιάστηκαν. 1. ΠΕΛΑΤΗΣ Όνομα ΠΕΛΑΤΗΣ Τύπος Οντότητα Περιγραφή Δημιουργείται ένας πίνακας, ΠΕΛΑΤΗΣ, που περιέχει όλα τα στοιχεία που περιγράφουν ένα πελάτη. Περιεχόμενα Οι ιδιότητες afm, job, kwdikos_perioxhs, polh, adt, patrwnymo, thlefwno, kinhto_1, id_pelath, tk, onoma, epwnymo. Περιορισμοί To afm, ο adt και το id_pelath πρέπει να είναι μοναδικά. 2. ΠΑΡΑΓΓΕΛΙΕΣ Όνομα Τύπος Περιγραφή Περιεχόμενα Περιορισμοί ΠΑΡΑΓΓΕΛΙΕΣ Οντότητα Δημιουργείται ένας πίνακας, ΠΑΡΑΓΓΕΛΙΕΣ, που περιέχει όλα τα στοιχεία που περιγράφουν μία παραγγελία. Οι ιδιότητες id, kodpara, kvdikos, eidos, temaxia, id_pelath, hmnia, hmnialh3hs, sum To id και ο kodpara πρέπει να είναι μοναδικά. Για να γίνει μία παραγγελία θα πρέπει να έχει γίνει πρώτα η εγγραφή του πελάτη. 3. ΑΠΟΘΗΚΗ Όνομα Τύπος Περιγραφή Περιεχόμενα Περιορισμοί ΑΠΟΘΗΚΗ Οντότητα Δημιουργείται ένας πίνακας, ΑΠΟΘΗΚΗ, που περιέχει όλα τα στοιχεία που περιγράφουν μία αποθήκη. Οι ιδιότητες loipa_sxolia, kvdikos, id, temaxia, price, eidos. Ο kvdikos και το id πρέπει να είναι μοναδικά. ΤΕΙ Καβάλας -Σελ. 35 -

3.4 Ορισμός συσχετίσεων Από το διάγραμμα προκύπτουν κάποιες συσχετίσεις μεταξύ των πινάκων, οι οποίες περιγράφονται στη συνέχεια. Κάποιες από αυτές υλοποιούνται ως πίνακες, σύμφωνα με τη θεωρία, ενώ κάποιες άλλες δανείζουν πληροφορίες στους ήδη υπάρχοντες πίνακες : 1. ΚΑΝΕΙ Όνομα ΚΑΝΕΙ Τύπος Συσχέτιση Περιγραφή Συσχέτιση μεταξύ των πινάκων ΠΕΛΑΤΗΣ και ΠΑΡΑΓΓΕΛΙΕΣ. Ενώνει κάθε πελάτη με μία ή και περισσότερες παραγγελίες. Περιεχόμενα Καμία ιδιότητα. Περιορισμοί Δυαδικός τύπος συσχέτισης Ο κάθε πελάτης μπορεί να κάνει πολλές παραγγελίες Λόγος πληθικότητας Μ : Ν ΠΕΛΑΤΗΣ ΚΑΝΕΙ ΠΑΡΑΓΓΕΛΙΕΣ Παπαδόπουλος, Θεοφανίδης ΚΑΝΕΙ Παραγγελία (αποδεκτό) Θεοφανίδης ΚΑΝΕΙ Παραγγελία (αποδεκτό) Η σχέση είναι τύπου Μ : Ν. 2. ΕΛΕΓΧΕΙ Όνομα Τύπος Περιγραφή Περιεχόμενα Περιορισμοί ΕΛΕΓΧΕΙ Συσχέτιση Όταν γίνεται μία παραγγελία, για να ελέγχουμε πρώτα εάν υπάρχει το αντίστοιχο απόθεμα στην αποθήκη. Orio Δυαδικός τύπος συσχέτισης Όλα τα υλικά έχουν ένα όριο. Λόγος πληθικότητας Μ : 1 ΠΑΡΑΓΓΕΛΙΑ ΕΛΕΓΧΕΙ ΟΡΙΟ ΑΣΦΑΛΕΙΑΣ. Σκόνη, Πυροσβεστήρας ΕΛΕΓΧΕΙ 30 (αποδεκτό) Σκόνη, Πυροσβεστήρας ΕΛΕΓΧΕΙ 30, 35 (απαράδεκτο) Η σχέση είναι τύπου Μ : 1. 3. ΕΝΗΜΕΡΩΣΗ_1 ΤΕΙ Καβάλας -Σελ. 36 -

Όνομα Τύπος Περιγραφή Περιεχόμενα Περιορισμοί ΕΝΗΜΕΡΩΣΗ_1 Συσχέτιση Όταν μία παραγγελία ικανοποιεί το όριο ασφαλείας, τότε γίνονται οι απαραίτητες διαδικασίες για να αφαιρεθούν τα υλικά από την αποθήκη. Καμία ιδιότητα. Δυαδικός τύπος συσχέτισης Τα υλικά που είναι κάτω από το όριο ασφαλείας δεν μπορούν να ενταχθούν σε μία παραγγελία. Λόγος πληθικότητας 1 : Ν ΟΡΙΟ ΑΣΦΑΛΕΙΑΣ ΕΝΗΜΕΡΩΣΗ_1 ΑΠΟΘΗΚΗ. 4. ΕΝΗΜΕΡΩΣΗ Όνομα ΕΝΗΜΕΡΩΣΗ Τύπος Περιγραφή Περιεχόμενα Περιορισμοί Συσχέτιση Για κάθε πελάτη μπορούμε να εγγράψουμε πυροσβεστήρες οι οποίοι δεν τηρούνε τις απαραίτητες προδιαγραφές. Καμία ιδιότητα. Δυαδικός τύπος συσχέτισης Λόγος πληθικότητας 1 : Ν ΠΕΛΑΤΗΣ ΕΝΗΜΕΡΩΣΗ ΜΗΤΡΩΟ ΚΑΤΕΣΤΡΑΜΜΕΝΩΝ ΠΥΡΟΣΒΕΣΤΗΡΩΝ ΤΕΙ Καβάλας -Σελ. 37 -

3.5 Ορισμός ιδιοτήτων Τελευταίο στάδιο αποτελεί η Φυσική σχεδίαση, δηλαδή η αναπαράσταση των δεδομένων. Για κάθε ένα γνώρισμα δίνονται πληροφορίες που το αφορούν σχετικά με τον τύπο του, την τιμή του, τυχόν περιορισμούς κ.α. και καταγράφονται στο λεξικό δεδομένων. Όνομα Id_pelath Περιέχεται Pelaths Περιγραφή Αριθμητικός κωδικός του πελάτη, μοναδικός για τον κάθε ένα. Παίρνει την τιμή του αυξητικά, αυτόματα από το σύστημα. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Epwnymo Περιέχεται Pelaths Περιγραφή Το επώνυμο του πελάτη Τύπος Αλφαριθμητικό Μέγεθος 25 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα onoma Περιέχεται Pelaths Περιγραφή Το όνομα του πελάτη Τύπος Αλφαριθμητικό Μέγεθος 25 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 38 -

Όνομα patrwnymo Περιέχεται Pelaths Περιγραφή Το πατρώνυμο του πελάτη Τύπος Αλφαριθμητικό Μέγεθος 25 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα afm Περιέχεται Pelaths Περιγραφή Το ΑΦΜ του πελάτη Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα adt Περιέχεται Pelaths Περιγραφή Ο Αριθμός Δελτίου Ταυτότητας του πελάτη Τύπος Αλφαριθμητικό Μέγεθος 8 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Job Περιέχεται Pelaths Περιγραφή Η δουλειά του πελάτη. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 39 -

Όνομα Kwdikos_perioxhs Περιέχεται Pelaths Περιγραφή Ο κωδικός περιοχής που μένει ο πελάτης. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα polh Περιέχεται Pelaths Περιγραφή Η πόλη που μένει ο πελάτης. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα odos Περιέχεται Pelaths Περιγραφή Η οδός που μένει ο πελάτης. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι Όνομα tk Περιέχεται Pelaths Περιγραφή Ο Ταχυδρομίκος Κώδικας που διαμένει ο πελάτης. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 40 -

Όνομα thlefwno Περιέχεται Pelaths Περιγραφή Ο τηλεφωνικός αριθμός του πελάτη. Τύπος Αλφαριθμητικό Μέγεθος 10 χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι Όνομα Kinhto_1 Περιέχεται Pelaths Περιγραφή Ο τηλεφωνικός αριθμός του κινητού του πελάτη. Τύπος Αλφαριθμητικό Μέγεθος 10 χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι Όνομα Id Περιέχεται apo8hkh1 Περιγραφή Αριθμητικός κωδικός του υλικού, μοναδικός για τον κάθε ένα. Παίρνει την τιμή του αυξητικά, αυτόματα από το σύστημα. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Kvdikos Περιέχεται apo8hkh1 Περιγραφή Αλφαριθμητικός κωδικός του υλικού, μοναδικός για τον κάθε ένα. Τύπος Αλφαριθμητικό Μέγεθος 20 Χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 41 -

Όνομα eidos Περιέχεται apo8hkh1 Περιγραφή Το είδος του υλικού στην αποθήκη. Τύπος Αλφαριθμητικό Μέγεθος 50 Χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα temaxia Περιέχεται apo8hkh1 Περιγραφή Τα τεμάχια του κάθε υλικού στην αποθήκη. Τύπος Αριθμητικό Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα loipa_sxolia Περιέχεται apo8hkh1 Περιγραφή Διάφορα σχόλια για κάθε υλικό. Τύπος Αλφαριθμητικό Μέγεθος 50 Χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι Όνομα price Περιέχεται apo8hkh1 Περιγραφή Η τιμή του κάθε υλικού στην αποθήκη. Τύπος Αριθμητικό Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 42 -

Όνομα Id Περιέχεται katestramena Περιγραφή Αριθμητικός κωδικός του υλικού, μοναδικός για τον κάθε ένα. Παίρνει την τιμή του αυξητικά, αυτόματα από το σύστημα. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα kwdikos Περιέχεται katestramena Περιγραφή Αριθμητικός κωδικός του υλικού. Τύπος Αλφαριθμητικό Μέγεθος 10 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα idpelath Περιέχεται katestramena Περιγραφή Κωδικός του πελάτη. Τύπος Αλφαριθμητικό Μέγεθος 20 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα pelaths Περιέχεται katestramena Περιγραφή Όνομα του πελάτη. Τύπος Αλφαριθμητικό Μέγεθος 25 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 43 -

Όνομα sxolia Περιέχεται katestramena Περιγραφή Σχόλια για το κατεστραμμένο υλικό. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι Όνομα hmnia Περιέχεται katestramena Περιγραφή Η ημερομηνία καταγραφής του υλικού Τύπος Αλφαριθμητικό Μέγεθος 20 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Id Περιέχεται notes Περιγραφή Αριθμητικός κωδικός του υλικού, μοναδικός για τον κάθε ένα. Παίρνει την τιμή του αυξητικά, αυτόματα από το σύστημα. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα hmnia Περιέχεται notes Περιγραφή Η ημερομηνία καταγραφής του υλικού Τύπος Αλφαριθμητικό Μέγεθος 20 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 44 -

Όνομα sxolia Περιέχεται notes Περιγραφή Σχόλια στην αντίστοιχη ημερομηνία. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Όχι Παραγόμενο Όχι Όνομα orio Περιέχεται orio Περιγραφή Το όριο για τα υλικά της αποθήκης. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Id Περιέχεται paragelia Περιγραφή Αριθμητικός κωδικός του πελάτη, μοναδικός για τον κάθε ένα. Παίρνει την τιμή του αυξητικά, αυτόματα από το σύστημα. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα kodpara Περιέχεται paragelia Περιγραφή Σχόλια για το κατεστραμμένο υλικό. Τύπος Αλφαριθμητικό Μέγεθος 10 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 45 -

Όνομα kvdikos Περιέχεται paragelia Περιγραφή Ο κωδικός της παραγγελίας. Τύπος Αλφαριθμητικό Μέγεθος 20 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα eidos Περιέχεται paragelia Περιγραφή Το είδος που προστίθεται στην παραγγελία. Τύπος Αλφαριθμητικό Μέγεθος 50 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα temaxia Περιέχεται paragelia Περιγραφή Τα τεμάχια του είδους που προστίθεται στην παραγγελία. Τύπος Αλφαριθμητικό Μέγεθος 10 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Id_pelath Περιέχεται paragelia Περιγραφή Ο κωδικός του πελάτη που κάνει την παραγγελία. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 46 -

Όνομα hmnia Περιέχεται paragelia Περιγραφή Η ημερομηνία εκτέλεσης της παραγγελίας. Τύπος Αλφαριθμητικό Μέγεθος 20 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα Hmnialh3hs Περιέχεται paragelia Περιγραφή Η ημερομηνία λήξης της παραγγελίας. Τύπος Αλφαριθμητικό Μέγεθος 20 χαρακτήρες Τιμές - Υποχρεωτικό Ναι Παραγόμενο Όχι Όνομα sum Περιέχεται paragelia Περιγραφή Το άθροισμα της παραγγελίας. Τύπος Ακέραιος αριθμός Μέγεθος 5 ψηφία Τιμές από 1 έως 99999 Υποχρεωτικό Ναι Παραγόμενο Όχι ΤΕΙ Καβάλας -Σελ. 47 -

3.6 Περιγραφή της Βάσης Δεδομένων του προγράμματος Η γλώσσα προγραμματισμού που χρησιμοποιήθηκε για την διαχείριση της βάσης δεδοµένων είναι η SQL (Structured Query Language) σε συνεργασία με το σύστηµα διαχείρισης βάσεων δεδοµένων την Microsoft Access. Η SQL μας επιτρέπει να σχεδιάσουμε και να αποθηκεύσουμε εναλλακτικές εμφανίσεις της ίδιας πληροφορίας στη βάση δεδομένων μας. Οι εμφανίσεις αυτές που λέγονται views είναι ιδεατοί πίνακες, σαν παράθυρα, μέσα από τα οποία βλέπουμε τα δεδομένα που είναι αποθηκευμένα στους πραγματικούς πίνακες. Έτσι έχουμε δημιουργήσει την παρακάτων βάση δεδομένων. Για την αποθήκευση των στοιχείων των πελατών: Στους πίνακες παρατηρούμε ότι μέσα στην βάση μπορούμε να αποθηκεύσουμε: Το επώνυμο, το όνομα, το πατρώνυμο, το ΑΦΜ, τον αριθμό δελτίου ταυτότητας, την εργασία, την πόλη, την οδό, τον ταχυδρομικό κώδικα, τον τηλεφωνικό κωδικό της περιοχής, το τηλέφωνο(σταθερό) το κινητό τηλέφωνο. ΤΕΙ Καβάλας -Σελ. 48 -

Για την αποθήκευση των δεδομένων της παραγγελίας: Στους πίνακες παρατηρούμε ότι μέσα στην βάση μπορούμε να αποθηκεύσουμε: Τον κωδικό της παραγγελίας, Τον δικό μας κωδικό, Το είδος, Τα τεμάχια, Τον κωδικό του πελάτη, Την ημερομηνία, Την ημερομηνία λήξης της παραγγελίας, Το άθροισμα σε ευρό ( ) Για τις σημειώσεις του πελάτη: Στους πίνακες παρατηρούμε ότι μέσα στην βάση μπορούμε να αποθηκεύσουμε: Τον κωδικό, Την ημερομηνία, Την σημείωση. ΤΕΙ Καβάλας -Σελ. 49 -

Τα στοιχεία της αποθήκης: Στους πίνακες παρατηρούμε ότι μέσα στην βάση μπορούμε να αποθηκεύσουμε: Τον κωδικό, Το είδος, Τα τεμάχια, Διάφορα σχόλια, Την τιμή του υλικού. ΤΕΙ Καβάλας -Σελ. 50 -

Το όριο ασφαλείας των υλικών της αποθήκης: Στους πίνακες παρατηρούμε ότι μέσα στην βάση μπορούμε να αποθηκεύσουμε: Το όριο ασφαλείας των υλικών της αποθήκης. Τους κατεστραμένους πυροσβεστήρες: Στους πίνακες παρατηρούμε ότι μέσα στην βάση μπορούμε να αποθηκεύσουμε: Τον κωδικό, Τον κωδικό του πελάτη, Τον πελάτη, Διάφορα σχόλια, Την ημερομηνία. ΤΕΙ Καβάλας -Σελ. 51 -

ΕΝΟΤΗΤΑ 4 4.1 Συμπέράσματα Εν κατά κλείδι, η ανάληψη μίας τέτοιας εργασίας με όλες τις προαναφερθέντες διαδικασίες, βοηθάνε αρκετά στο να καταλάβει οποιοσδήποτε πως η δημιουργία και η υποστήριξη ενός project δεν είναι μία εύκολη υπόθεση. Μέσα από τις δυσκολίες που αντιμετωπίστηκαν, από την πίεση χρόνου και από τους υπόλοιπους εξωτερικούς παράγοντες, καταφέραμε να βγάλουμε εις πέρας την πτυχιακή εργασία. Κατά την διάρκεια των σπουδαστικών εξάμήνων υπήρχαν μαθήματα τα οποία τους διάφορους κανόνες και τους τρόπους με τους οποίους πρέπει να γίνεται η σωστή ανάπτυξη ενός project. Η τήρηση των κανόνων αυτών είναι δύσκολη αλλά βοηθά αρκετά στην επανεξέταση του προγράμματος αλλά και στην εύκολη τροποποίησή του. Αναζητώντας να βρεθούν λύσεις στα προβλήματα βελτιώσαμε τις γνώσεις σε διάφορους τομείς. Όλα αυτά μας δημιουργούν ένα αίσθημα ευθύνης που μας επιβαρύνει και μας προτρέπει να εξακολουθούμε να ερευνούμε και να ασχολούμαστε με τον προγραμματισμό και ειδικά τους τομείς της Βιομηχανικής πληροφορικής. Με την ολοκλήρωση του έργου παρατηρούμε πως ο στόχος επιτεύχθηκε. ΤΕΙ Καβάλας -Σελ. 52 -

ΕΝΟΤΗΤΑ 5 ΤΕΧΝΟΛΟΓΙΚΟ ΕΚΠΑΙΔΕΥΤΙΚΟ ΙΔΡΥΜΑ (Τ.Ε.Ι.) ΚΑΒΑΛΑΣ ΣΧΟΛΗ ΤΕΧΝΟΛΟΓΙΚΩΝ ΕΦΑΡΜΟΓΩΝ ΤΜΗΜΑ ΒΙΟΜΗΧΑΝΙΚΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ Ελεγκτής: Ρίζος Ευθύμιος ΚΟΜΟΤΗΝΗ 18/06/2004 Θέμα Πτυχιακής Εργασίας: «Ανάπτυξη εφαρμογής βάσεως δεδομένων, για Βιοτεχνία αναγόμωσης και Συναρμολόγησης Πυροσβεστήρων» Ακολουθεί το γενικό σχέδιο ελέγχου του προγράμματος, το οποίο περιέχει τις μεθόδους και τις τιμές με τις οποίες θα μπορεί να γίνει ο έλεγχος σταδιακά. Για την αποφυγή λαθών τα οποία θα έχουν ως συνέπεια την αύξηση του χρόνου ολοκλήρωσης του Project, αλλά και την αύξηση του κόστους. Θα πρέπει τα σημεία τα οποία πιστεύουμε ότι είναι ευαίσθητα να τεκμηριώνονται και να περιγράφονται σωστά. Η τήρηση τόσο του χρονοδιαγράμματος και όλων των άλλων παραμέτρων θα έχουν ως συνέπεια την απολαβή του ποθητού αποτελέσματος. Έλεγχος Λογισμικού, είναι η διαδικασία λειτουργίας το λογισμικού με πραγματικά δεδομένα ελέγχοντας τις προδιαγραφές και την αξιοπιστία. Είδη διαδικασιών για τον έλεγχο του λογισμικού: Στατικός έλεγχος: Ελέγχει την απόδοση και την αξιοπιστία του συστήματος σύμφωνα με στατιστικά μεγέθη. Ατελής έλεγχος: Αποκαλύπτει τις καταστάσεις εκείνες που το λογισμικό δεν εκπληρώνει τις προδιαγραφές του(ατέλειες). Εκσφαλμάτωση(debugging): Διόρθωση των ατελειών του λογισμικού. Εντοπισμός σφαλμάτων. Σχεδιασμό διόρθωσης. Διόρθωση σφάλματος. Έλεγχος συστήματος. ΤΕΙ Καβάλας -Σελ. 53 -

Παρακάτω ακολουθεί το πρότυπο σωστής λειτουργίας του προγράμματος και τα αποτελέσματα που πρέπει κάθε φορά να παίρνουμε. 1) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του Επώνυμου του πελάτη, θα πρέπει να εισάγεται με κεφαλαία γράμματα. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αλφαβητικούς χαρακτήρες στα κεφαλαία. Ισοδύναμο έγκυρης εισόδου: ΠΑΠΑΔΟΠΟΥΛΟΣ. Ισοδύναμο άκυρης εισόδου: Λα43ζαρου. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές δεν υπάρχουν, επειδή τιμές που μπορεί να δώσει ο χρήστης είναι απεριόριστες. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή για όνομα αλφαριθμητικούς χαρακτήρες. 3. Εισαγωγή για όνομα χαρακτήρες γραμμένους με πεζά γράμματα. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αλφαβητικούς χαρακτήρες στα κεφαλαία. ΤΕΙ Καβάλας -Σελ. 54 -

2) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του Ονόματος του πελάτη, θα πρέπει να εισάγεται με κεφαλαία γράμματα. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αλφαβητικούς χαρακτήρες στα κεφαλαία. Ισοδύναμο έγκυρης εισόδου: ΓΕΩΡΓΙΟΣ. Ισοδύναμο άκυρης εισόδου: παςχ334λης. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές δεν υπάρχουν, επειδή τιμές που μπορεί να δώσει ο χρήστης είναι απεριόριστες. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή για όνομα αλφαριθμητικούς χαρακτήρες. 3. Εισαγωγή για όνομα χαρακτήρες γραμμένους με πεζά γράμματα. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αλφαβητικούς χαρακτήρες στα κεφαλαία. 3) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του Πατρώνυμου του πελάτη, θα πρέπει να εισάγεται με κεφαλαία γράμματα. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αλφαβητικούς χαρακτήρες στα κεφαλαία. Ισοδύναμο έγκυρης εισόδου: ΑΘΑΝΑΣΙΟΣ. Ισοδύναμο άκυρης εισόδου: αθα34νασιο3ς. ΤΕΙ Καβάλας -Σελ. 55 -

o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές δεν υπάρχουν, επειδή τιμές που μπορεί να δώσει ο χρήστης είναι απεριόριστες. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή για όνομα αλφαριθμητικούς χαρακτήρες. 3. Εισαγωγή για όνομα χαρακτήρες γραμμένους με πεζά γράμματα. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αλφαβητικούς χαρακτήρες στα κεφαλαία. 4) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του Α.Φ.Μ. του πελάτη, θα πρέπει να εισάγεται με αριθμούς. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αριθμητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: 1921123439. Ισοδύναμο άκυρης εισόδου: 321δς22134. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές είναι από 10000000 μέχρι 9999999999, ο χρήστης μπορεί να δώσει εννέα ψηφία. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αριθμητικούς χαρακτήρες εννέα ψηφίων. ΤΕΙ Καβάλας -Σελ. 56 -

5) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του ΑΡΙΘΜΟΥ ΔΕΛΤΙΟΥ ΤΑΥΤΟΤΗΤΑΣ του πελάτη, θα πρέπει να εισάγεται με 8 αλφαριθμητικούς χαρακτήρες. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με 8 αλφαριθμητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: ΑΑ 342332. Ισοδύναμο άκυρης εισόδου: 3213222. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Δεν υπάρχουν οριακές τιμές λόγω αλφαριθμητικών χαρακτήρων. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή λιγότερων των 8 χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αλφαριθμητικούς χαρακτήρες 8 ψηφίων. 6) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του ΕΠΕΓΓΕΛΜΑΤΟΣ του πελάτη, θα πρέπει να εισάγεται με αλφαβιτικούς χαρακτήρες. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αλφαβητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: ΑΓΡΟΤΗΣ. Ισοδύναμο άκυρης εισόδου: 321δς2ΔΔΩ. ΤΕΙ Καβάλας -Σελ. 57 -

o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Δεν υπάρχουν οριακές τιμές λόγω των αλφαβητικών χαρακτήρων. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αλφαριθμητικούς χαρακτήρες. 7) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του Τ.Κ. του πελάτη, θα πρέπει να εισάγεται με αριθμούς. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με έξι αριθμητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: 69100. Ισοδύναμο άκυρης εισόδου: 321δς4. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές είναι από 100000 μέχρι 999999, ο χρήστης μπορεί να δώσει έξι ψηφία. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αριθμητικούς χαρακτήρες έξι ψηφίων. ΤΕΙ Καβάλας -Σελ. 58 -

8) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του ΚΩΔΙΚΟΣ ΠΕΡΙΟΧΗΣ του πελάτη, θα πρέπει να εισάγεται με αριθμούς. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αριθμητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: 22510. Ισοδύναμο άκυρης εισόδου: 232ΚΕ. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές είναι από 10000 μέχρι 99999, ο χρήστης μπορεί να δώσει εννέα ψηφία. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αριθμητικούς χαρακτήρες. 9) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του ΤΗΛΕΦΩΝΟΥ του πελάτη, θα πρέπει να εισάγεται με αριθμούς. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αριθμητικούς χαρακτήρες δέκα ψηφίων το μέγιστο. Ισοδύναμο έγκυρης εισόδου: 5752497. Ισοδύναμο άκυρης εισόδου: 338ρ3δ3ς. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές είναι από 1000000000 μέχρι 9999999999, ο χρήστης μπορεί να δώσει δέκα ψηφία. ΤΕΙ Καβάλας -Σελ. 59 -

Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αριθμητικούς χαρακτήρες δέκα ψηφίων. 10) Στην φόρμα της ΑΠΟΘΗΚΗΣ, κατά την εισαγωγή του ΟΡΙΟΥ ΑΣΦΑΛΕΙΑΣ του πελάτη, θα πρέπει να εισάγεται με αριθμούς. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αριθμητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: 50,25,30. Ισοδύναμο άκυρης εισόδου: ΣΣ, 3Δ,8Θ. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές είναι από 10000 μέχρι 99999.. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αριθμητικούς χαρακτήρες. ΤΕΙ Καβάλας -Σελ. 60 -

11) Στην φόρμα του Πελατολογίου, κατά την εισαγωγή του Α.Φ.Μ. του πελάτη, θα πρέπει να εισάγεται με αριθμούς. Ορισμός Ισοδύναμων Κλάσεων(Equivalent Classes) Έγκυρης και άκυρης εισόδου(ομάδες τιμών). o Έγκυρο πεδίο τιμών: Θα θεωρούσαμε ότι έγκυρο πεδίο τιμών είναι μόνο οι τιμές με αριθμητικούς χαρακτήρες. Ισοδύναμο έγκυρης εισόδου: 1921123439. Ισοδύναμο άκυρης εισόδου: 321δς22134. o Ανάλυση των Οριακών Τιμών(Boundary Analysis) Οι οριακές τιμές είναι από 10000000 μέχρι 9999999999, ο χρήστης μπορεί να δώσει εννέα ψηφία. Εικασίες λαθών: 1. Καμία τιμή(!). 2. Εισαγωγή αλφαριθμητικών χαρακτήρων. Τρόποι Αντιμετώπισης: 1. Επανάληψη εμφάνισης των ορίων των τιμών. 2. Ειδοποίηση ότι αναμένουμε αριθμητικούς χαρακτήρες εννέα ψηφίων. ΤΕΙ Καβάλας -Σελ. 61 -

Έλεγχος: Κλάση «ΠΕΛΑΤΟΛΟΓΙΟ» Έκδοση: Version 1.0 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 17/06/2004 ΑΝΑΦΟΡΑ ΕΛΕΓΧΟΥ Ακολουθεί ο έλεγχος της κλάσης «ΠΕΛΑΤΟΛΟΓΙΟ». Ο έλεγχος πραγματοποιήθηκε με την βοήθεια του Κλειστού Κουτιού(Black Box). Στον έλεγχο που ακολουθεί βρέθηκαν κάποιες παρατυπίες οι οποίες τονίζονται μέσα στον πίνακα που ακολουθεί. Για το πεδίο του ΕΠΩΝΥΜΟΥ: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα Λοιπά Σχόλια ΠΑΠΑΔΟΠΟΥΛΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΚΥΡΙΑΚΟΥ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Επώνυμο > 25 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -1 Για το πεδίο του ΟΝΟΜΑΤΟΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΑΘΑΝΑΣΙΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΓΕΩΡΓΙΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 25 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -2 Για το πεδίο του ΠΑΤΡΩΝΥΜΟ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΙΩΑΝΝΗΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΠΕΤΡΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 25 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -3 ΤΕΙ Καβάλας -Σελ. 62 -

Για το πεδίο του Α.Φ.Μ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 1360342231 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 3424657223 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 2ΣΦ3ΚΓΗ9Ι Το δέχτηκε Δεν έπρεπε να το Λάθος -4 δεχτεί 32Κ2Σ54312 Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -5 Για το πεδίο του Αριθμού Δελτίου Ταυτότητας.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Ρ 960322 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΑΑ342123 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Κ 2232242 Το δέχτηκε Δεν έπρεπε να το Λάθος -6 δεχτεί ΛΛ23115485 Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -7 Για το πεδίο του ΕΠΑΓΓΕΛΜΑ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΑΓΡΟΤΗΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΙΔΙΩΤΙΚΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΥΠΑΛΛΗΛΟΣ Επάγγελμα > 25 χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -8 Για το πεδίο του ΠΟΛΗ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΚΑΒΑΛΑ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΞΑΝΘΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Πόλη > 25 χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -9 ΤΕΙ Καβάλας -Σελ. 63 -

Για το πεδίο του ΟΔΟΣ/ΧΩΡΙΟ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΔΑΓΚΛΗ 34 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΙΕΡΩΝΥΜΟΥ 23 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΚΑΡΒΑΛΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΕΛΕΥΘΕΥΡΟΥΠΟΛΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Οδός/Χωριό > 25 χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -10 Για το πεδίο του Τ.Κ..: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 69100 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 58300 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Τ.Κ. > 7 χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -11 Για το πεδίο του ΚΩΔ. ΠΕΡΙΟΧΗΣ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 25310 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 210 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΕΡ421 Το δέχτηκε Δεν έπρεπε να το Λάθος -12 δεχτεί 342Φ112337 Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -13 Για το πεδίο του ΤΗΛΕΦΩΝΟ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 834258 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 462290 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 832564889 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 5422112337 Το δέχτηκε Δεν έπρεπε να το Λάθος -14 δεχτεί Τηλέφωνο > 10 Ψηφίων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -15 ΤΕΙ Καβάλας -Σελ. 64 -

Για το πεδίο του ΚΙΝΗΤΟ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 6932457424 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 6973386992 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 6942348775 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 69345443667 Το δέχτηκε Δεν έπρεπε να το Λάθος -16 δεχτεί Κινήτο > 10 Ψηφίων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -17 Αναφορά Λαθών: Κατά τον έλεγχο που έγινε στην κλάση του Πελατολογίου, βρέθηκαν 17(δεκαεπτά). Η λειτουργία του προγράμματος, δεν παρουσίασε κανένα πρόβλημα στην ροή κατά την διάρκεια του ελέγχου. Τα λάθη αναλύονται παρακάτω για την καλύτερη κατανόηση και την άμεση διόρθωση τους. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Δέχεται Επώνυμο > των 25 χαρακτήρων Διόρθωση 2 Δέχεται Όνομα > των 25 χαρακτήρων Διόρθωση 3 Δέχεται Πατρώνυμο > των 25 χαρακτήρων Διόρθωση 4 Το ΑΦΜ δέχεται και αλφαβητικούς χαρακτήρες Διόρθωση 5 Το ΑΦΜ δέχεται και αλφαβητικούς χαρακτήρες Διόρθωση 6 Στο Αρ.Δελ.Ταυτ. δέχτηκε τιμή > των 8 χαρακτήρων. Διόρθωση 7 Στο Αρ.Δελ.Ταυτ. δέχτηκε τιμή > των 8 χαρακτήρων. Διόρθωση 8 Στο Επάγγελμα δέχτηκε τιμή > των 25 χαρακτήρων. Διόρθωση 9 Στην Πόλη δέχτηκε τιμή > των 25 χαρακτήρων. Διόρθωση 10 Στο Οδός/Χωριό δέχτηκε τιμή > των 25 χαρακτήρων. Διόρθωση 11 Στο Τ.Κ. δέχτηκε τιμή > των 7 χαρακτήρων. Διόρθωση 12 Στο Κωδικό Περιοχής δέχτηκε αλφαβητικούς χαρακτήρες. Διόρθωση 13 Στο Κωδικό Περιοχής δέχτηκε αλφαβητικούς χαρακτήρες. Διόρθωση 14 Στο Τηλέφωνο δέχτηκε τιμή > των 10 ψηφίων. Διόρθωση 15 Στο Τηλέφωνο δέχτηκε τιμή > των 10 ψηφίων. Διόρθωση 16 Στο Κινητό δέχτηκε τιμή > των 10 ψηφίων. Διόρθωση 17 Στο Κινητό δέχτηκε τιμή > των 10 ψηφίων. Διόρθωση ΤΕΙ Καβάλας -Σελ. 65 -

Έλεγχος: Κλάση «ΠΕΛΑΤΟΛΟΓΙΟ» Έκδοση: Version 1.1 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 25/06/2004 ΑΝΑΦΟΡΑ ΔΙΟΡΘΩΣΗΣ ΛΑΘΩΝ Κατά την διόρθωση της κλάσης «ΠΕΛΑΤΟΛΟΓΙΟ» ο προγραμματιστής διόρθωσε τα λάθη τα οποία ανιχνεύθηκαν από τον έλεγχο. Ο έλεγχος επαναλήφθηκε ώστε να πιστοποιηθεί η διόρθωση. Για το πεδίο του ΕΠΩΝΥΜΟΥ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΓΑΛΑΝΗΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΑΘΑΝΑΣΙΟΥ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Επώνυμο > 25 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΟΝΟΜΑΤΟΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΙΩΑΝΝΗΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΑΝΑΣΤΑΣΙΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 25 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΠΑΤΡΩΝΥΜΟ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΕΥΘΥΜΙΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΔΗΜΗΤΡΙΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 25 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς ΤΕΙ Καβάλας -Σελ. 66 -

Για το πεδίο του Α.Φ.Μ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 1360342231 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 3424657223 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 2ΣΦ3ΚΓΗ9Ι Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί 32Κ2Σ54312 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του Αριθμού Δελτίου Ταυτότητας.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Ρ 960322 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΑΑ342123 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Κ 2232242 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί ΛΛ23115485 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΕΠΑΓΓΕΛΜΑ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΠΥΡΟΣΒΕΣΤΗΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΙΔΙΩΤΙΚΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΥΠΑΛΛΗΛΟΣ Επάγγελμα > 25 χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΠΟΛΗ.: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα Λοιπά Σχόλια ΑΛΕΞΑΝΔΡΟΥΠΟΛΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΚΑΒΑΛΑ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Πόλη > 25 χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς ΤΕΙ Καβάλας -Σελ. 67 -

Για το πεδίο του ΟΔΟΣ/ΧΩΡΙΟ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα ΣΚΡΑ 24 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΦΙΛΙΠΠΟΥ 23 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΣΩΣΤΗΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΙΑΣΜΟΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Οδός/Χωριό > 25 χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του Τ.Κ..: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 62200 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 34200 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Τ.Κ. > 7 χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΚΩΔ. ΠΕΡΙΟΧΗΣ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 2310 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 210 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΕΡ421 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί 342Φ112337 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΤΗΛΕΦΩΝΟ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 834258 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 462290 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 832564889 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 5422112337 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί Τηλέφωνο > 10 Ψηφίων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς ΤΕΙ Καβάλας -Σελ. 68 -

Για το πεδίο του ΚΙΝΗΤΟ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 6932457424 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 6973386992 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 6942348775 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 69345443667 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί Κινήτο > 10 Ψηφίων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Αναφορά Διόρθωσης Λαθών: Μετά τον έλεγχο που πραγματοποιήθηκε για την πιστοποίηση της διόρθωσης των λαθών, αναφέρετε ότι τα λάθη έχουν διορθωθεί και η κλάση «Πελατολόγιο» δεν παρουσιάζει κανένα πρόβλημα. Όλα τα παρακάτω λάθη που βρέθηκαν στον προηγούμενο έλεγχο έχουν εξαλειφθεί. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Δέχεται Επώνυμο > των 25 χαρακτήρων Διορθώθηκε 2 Δέχεται Όνομα > των 25 χαρακτήρων Διορθώθηκε 3 Δέχεται Πατρώνυμο > των 25 χαρακτήρων Διορθώθηκε 4 Το ΑΦΜ δέχεται και αλφαβητικούς χαρακτήρες Διορθώθηκε 5 Το ΑΦΜ δέχεται και αλφαβητικούς χαρακτήρες Διορθώθηκε 6 Στο Αρ.Δελ.Ταυτ. δέχτηκε τιμή > των 8 χαρακτήρων. Διορθώθηκε 7 Στο Αρ.Δελ.Ταυτ. δέχτηκε τιμή > των 8 χαρακτήρων. Διορθώθηκε 8 Στο Επάγγελμα δέχτηκε τιμή > των 25 χαρακτήρων. Διορθώθηκε 9 Στην Πόλη δέχτηκε τιμή > των 25 χαρακτήρων. Διορθώθηκε 10 Στο Οδός/Χωριό δέχτηκε τιμή > των 25 χαρακτήρων. Διορθώθηκε 11 Στο Τ.Κ. δέχτηκε τιμή > των 7 χαρακτήρων. Διορθώθηκε 12 Στο Κωδικό Περιοχής δέχτηκε αλφαβητικούς χαρακτήρες. Διορθώθηκε 13 Στο Κωδικό Περιοχής δέχτηκε αλφαβητικούς χαρακτήρες. Διορθώθηκε 14 Στο Τηλέφωνο δέχτηκε τιμή > των 10 ψηφίων. Διορθώθηκε 15 Στο Τηλέφωνο δέχτηκε τιμή > των 10 ψηφίων. Διορθώθηκε 16 Στο Κινητό δέχτηκε τιμή > των 10 ψηφίων. Διορθώθηκε 17 Στο Κινητό δέχτηκε τιμή > των 10 ψηφίων. Διορθώθηκε ΤΕΙ Καβάλας -Σελ. 69 -

Έλεγχος: Κλάση «ΑΠΟΘΗΚΗ» Έκδοση: Version 1.0 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 27/06/2004 ΑΝΑΦΟΡΑ ΕΛΕΓΧΟΥ Ακολουθεί ο έλεγχος της κλάσης «ΑΠΟΘΗΚΗ». Ο έλεγχος πραγματοποιήθηκε με την βοήθεια του Κλειστού Κουτιού(Black Box). Στον έλεγχο που ακολουθεί βρέθηκαν κάποιες παρατυπίες οι οποίες τονίζονται μέσα στον πίνακα που ακολουθεί. Για το πεδίο του ΟΡΙΟ ΑΣΦΑΛΕΙΑΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 30 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 50 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΛΚ43 Το δέχτηκε Δεν έπρεπε να το Λάθος -1 δεχτεί ΕΔΦΤ Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -2 Για το πεδίο του ID: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα 32 Το δέχτηκε Δεν έπρεπε να το δεχτεί 445 Το δέχτηκε Δεν έπρεπε να το δεχτεί ER32 Το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Λάθος -3 Λάθος -4 Λάθος -5 Για το πεδίο του ΚΩΔΙΚΟΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Π1 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΠΥΡ-32 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 25 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -6 ΤΕΙ Καβάλας -Σελ. 70 -

Για το πεδίο του ΕΙΔΟΣ.: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα Λοιπά Σχόλια ΠΥΡΟΣΒΕΣΤΗΡΑΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΣΚΟΝΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 50 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -7 Για το πεδίο του ΠΟΣΟΤΗΤΑ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 34 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 100 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΔΣΤ5 Το δέχτηκε Δεν έπρεπε να το Λάθος -8 δεχτεί ΞΗ8ΩΩΨΦ Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -9 Για το πεδίο του ΤΙΜΗ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 4 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 2 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΔΦΕ3ΑΑΔ Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -10 Για το πεδίο του ΣΧΟΛΙΑ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα - (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΚΟΜΠΛΕ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Πόλη > 50 χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -11 ΤΕΙ Καβάλας -Σελ. 71 -

Αναφορά Λαθών: Κατά τον έλεγχο που έγινε στην κλάση της ΑΠΟΘΗΚΗΣ, βρέθηκαν 11(έντεκα) λάθη. Η λειτουργία του προγράμματος, δεν παρουσίασε κανένα πρόβλημα στην ροή κατά την διάρκεια του ελέγχου. Τα λάθη αναλύονται παρακάτω για την καλύτερη κατανόηση και την άμεση διόρθωση τους. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Το Οριο ασφαλειας δέχεται και αλφαβητικούς χαρακτήρες Διόρθωση 2 Το Οριο ασφαλειας δέχεται και αλφαβητικούς χαρακτήρες Διόρθωση 3 Το ID δέχεται τιμές από χρήστη. Διόρθωση 4 Το ID δέχεται τιμές από χρήστη. Διόρθωση 5 Το ID δέχεται τιμές από χρήστη. Διόρθωση 6 Στο Κωδικός δέχτηκε τιμή > των 25 χαρακτήρων. Διόρθωση 7 Στο Είδος δέχτηκε τιμή > των 50 χαρακτήρων. Διόρθωση 8 Στο Ποσότητα δέχτηκε αλφαβητικούς χαρακτήρες. Διόρθωση 9 Στο Ποσότητα δέχτηκε αλφαβητικούς χαρακτήρες. Διόρθωση 10 Στο Τιμή δέχτηκε αλφαβητικούς χαρακτήρες. Διόρθωση 11 Στο Σχόλια δέχτηκε τιμή > των 50 χαρακτήρων. Διόρθωση ΤΕΙ Καβάλας -Σελ. 72 -

Έλεγχος: Κλάση «ΑΠΟΘΗΚΗ» Έκδοση: Version 1.1 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 02/06/2004 ΑΝΑΦΟΡΑ ΔΙΟΡΘΩΣΗΣ ΛΑΘΩΝ Κατά την διόρθωση της κλάσης «ΑΠΟΘΗΚΗ» ο προγραμματιστής διόρθωσε τα λάθη τα οποία ανιχνεύθηκαν από τον έλεγχο. Ο έλεγχος επαναλήφθηκε ώστε να πιστοποιηθεί η διόρθωση. Για το πεδίο του ΟΡΙΟ ΑΣΦΑΛΕΙΑΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 30 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 25 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΛΣ43 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί ΕΔΦΤ Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ID: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα 43 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί 23 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Φδρ632 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Καλώς Καλώς Καλώς Για το πεδίο του ΚΩΔΙΚΟΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Π1 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΠΥΡ-32 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 25 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς ΤΕΙ Καβάλας -Σελ. 73 -

Για το πεδίο του ΕΙΔΟΣ.: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα Λοιπά Σχόλια ΠΥΡΟΣΒΕΣΤΗΡΑΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΣΚΟΝΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 50 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΠΟΣΟΤΗΤΑ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 34 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 100 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΔΣΤ5 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί Γγφφ4 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΤΙΜΗ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα 4 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς 2 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Γφ6γ Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του ΣΧΟΛΙΑ.: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα - (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΚΟΜΠΛΕ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Πόλη > 50 χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς ΤΕΙ Καβάλας -Σελ. 74 -

Αναφορά Διόρθωσης Λαθών: Μετά τον έλεγχο που πραγματοποιήθηκε για την πιστοποίηση της διόρθωσης των λαθών, αναφέρετε ότι τα λάθη έχουν διορθωθεί και η κλάση «Αποθήκη» δεν παρουσιάζει κανένα πρόβλημα. Όλα τα παρακάτω λάθη που βρέθηκαν στον προηγούμενο έλεγχο έχουν εξαλειφθεί. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Το Οριο ασφαλειας δέχεται και αλφαβητικούς χαρακτήρες Διορθώθηκε 2 Το Οριο ασφαλειας δέχεται και αλφαβητικούς χαρακτήρες Διορθώθηκε 3 Το ID δέχεται τιμές από χρήστη. Διορθώθηκε 4 Το ID δέχεται τιμές από χρήστη. Διορθώθηκε 5 Το ID δέχεται τιμές από χρήστη. Διορθώθηκε 6 Στο Κωδικός δέχτηκε τιμή > των 25 χαρακτήρων. Διορθώθηκε 7 Στο Είδος δέχτηκε τιμή > των 50 χαρακτήρων. Διορθώθηκε 8 Στο Ποσότητα δέχτηκε αλφαβητικούς χαρακτήρες. Διορθώθηκε 9 Στο Ποσότητα δέχτηκε αλφαβητικούς χαρακτήρες. Διορθώθηκε 10 Στο Τιμή δέχτηκε αλφαβητικούς χαρακτήρες. Διορθώθηκε 11 Στο Σχόλια δέχτηκε τιμή > των 50 χαρακτήρων. Διορθώθηκε ΤΕΙ Καβάλας -Σελ. 75 -

Έλεγχος: Κλάση «ΠΑΡΑΓΓΕΛΙΕΣ» Έκδοση: Version 1.0 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 5/07/2004 ΑΝΑΦΟΡΑ ΕΛΕΓΧΟΥ Ακολουθεί ο έλεγχος της κλάσης «ΠΑΡΑΓΓΕΛΙΕΣ». Ο έλεγχος πραγματοποιήθηκε με την βοήθεια του Κλειστού Κουτιού(Black Box). Στον έλεγχο που ακολουθεί βρέθηκαν κάποιες παρατυπίες οι οποίες τονίζονται μέσα στον πίνακα που ακολουθεί. Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Κωδικός πελάτη: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα 30 Το δέχτηκε Δεν έπρεπε να το δεχτεί 50 Το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Λάθος -1 Λάθος -2 Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Επώνυμο πελάτη: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα ΠΑΠΑΔΟΠΟΥΛΟΣ Το δέχτηκε Δεν έπρεπε να το δεχτεί ΣΔΦΦΕ3ΔΦ3Δ Το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Λάθος -3 Λάθος -4 Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Αρ. Σειράς φιάλης: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Αρ 4563 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Σειρά 43212 Το δέχτηκε Δεν έπρεπε να το Λάθος -5 δεχτεί Όνομα > 10 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -6 ΤΕΙ Καβάλας -Σελ. 76 -

Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Σχόλια: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα Λοιπά Σχόλια ΠΥΡΟΣΒΕΣΤΗΡΑΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 50 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -7 Αναφορά Λαθών: Κατά τον έλεγχο που έγινε στην κλάση της ΠΑΡΑΓΓΕΛΙΑΣ, βρέθηκαν 7(επτά) λάθη. Η λειτουργία του προγράμματος, δεν παρουσίασε κανένα πρόβλημα στην ροή κατά την διάρκεια του ελέγχου. Τα λάθη αναλύονται παρακάτω για την καλύτερη κατανόηση και την άμεση διόρθωση τους. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Το Κωδικός πελάτη δέχεται πληκτρολόγηση. Διόρθωση 2 Το Κωδικός πελάτη δέχεται πληκτρολόγηση. Διόρθωση 3 Το Επώνυμο πελάτη δέχεται πληκτρολόγηση. Διόρθωση 4 Το Επώνυμο πελάτη δέχεται πληκτρολόγηση. Διόρθωση 5 Το Αρ. Σειράς φιάλης δέχτήκε > των 10 χαρακτήρων. Διόρθωση 6 Το Αρ. Σειράς φιάλης δέχτήκε > των 10 χαρακτήρων. Διόρθωση 7 Το Σχόλια δέχτήκε > των 50 χαρακτήρων. Διόρθωση ΤΕΙ Καβάλας -Σελ. 77 -

Έλεγχος: Κλάση «ΠΑΡΑΓΓΕΛΙΕΣ» Έκδοση: Version 1.1 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 10/07/2004 ΑΝΑΦΟΡΑ ΔΙΟΡΘΩΣΗΣ ΛΑΘΩΝ Κατά την διόρθωση της κλάσης «ΠΑΡΑΓΓΕΛΙΕΣ» ο προγραμματιστής διόρθωσε τα λάθη τα οποία ανιχνεύθηκαν από τον έλεγχο. Ο έλεγχος επαναλήφθηκε ώστε να πιστοποιηθεί η διόρθωση. Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Κωδικός πελάτη: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα 30 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί 50 Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Καλώς Καλώς Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Επώνυμο πελάτη: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα ΠΑΠΑΔΟΠΟΥΛΟΣ Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί ΣΔΦΦΕ3ΔΦ3Δ Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Καλώς Καλώς Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Αρ. Σειράς φιάλης: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Αρ 4563 (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Σειρά 43212 Δεν το δέχτηκε Δεν έπρεπε να το Καλώς δεχτεί Όνομα > 10 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς ΤΕΙ Καβάλας -Σελ. 78 -

Για την φόρμα Μητρώο κατεστραμμένων πυροσβεστήρων στο πεδίο Σχόλια: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα Λοιπά Σχόλια ΠΥΡΟΣΒΕΣΤΗΡΑΣ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Όνομα > 50 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Αναφορά Διόρθωσης Λαθών: Μετά τον έλεγχο που πραγματοποιήθηκε για την πιστοποίηση της διόρθωσης των λαθών, αναφέρετε ότι τα λάθη έχουν διορθωθεί και η κλάση «Πελατολόγιο» δεν παρουσιάζει κανένα πρόβλημα. Όλα τα παρακάτω λάθη που βρέθηκαν στον προηγούμενο έλεγχο έχουν εξαλειφθεί. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Το Κωδικός πελάτη δέχεται πληκτρολόγηση. Διορθώθηκε 2 Το Κωδικός πελάτη δέχεται πληκτρολόγηση. Διορθώθηκε 3 Το Επώνυμο πελάτη δέχεται πληκτρολόγηση. Διορθώθηκε 4 Το Επώνυμο πελάτη δέχεται πληκτρολόγηση. Διορθώθηκε 5 Το Αρ. Σειράς φιάλης δέχτήκε > των 10 χαρακτήρων. Διορθώθηκε 6 Το Αρ. Σειράς φιάλης δέχτήκε > των 10 χαρακτήρων. Διορθώθηκε 7 Το Σχόλια δέχτήκε > των 50 χαρακτήρων. Διορθώθηκε ΤΕΙ Καβάλας -Σελ. 79 -

Έλεγχος: Κλάση «ΗΜΕΡΟΛΟΓΙΟ» Έκδοση: Version 1.0 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 15/07/2004 ΑΝΑΦΟΡΑ ΕΛΕΓΧΟΥ Ακολουθεί ο έλεγχος της κλάσης «ΗΜΕΡΟΛΟΓΙΟ». Ο έλεγχος πραγματοποιήθηκε με την βοήθεια του Κλειστού Κουτιού(Black Box). Στον έλεγχο που ακολουθεί βρέθηκαν κάποιες παρατυπίες οι οποίες τονίζονται μέσα στον πίνακα που ακολουθεί. Για το πεδίο του ΣΗΜΕΙΩΣΕΙΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Επιταγές Τράπεζα (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΔΕΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Σημειώσεις > 50 Χαρακτήρων Το δέχτηκε Δεν έπρεπε να το δεχτεί Λάθος -1 Για το πεδίο του Υπενθύμιση Ημέρας: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα ΟΤΕ Το δέχτηκε Δεν έπρεπε να το δεχτεί ΔΕΗ Το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Λάθος -2 Λάθος -3 Αναφορά Λαθών: Κατά τον έλεγχο που έγινε στην κλάση του Πελατολογίου, βρέθηκαν 3(τρία). Η λειτουργία του προγράμματος, δεν παρουσίασε κανένα πρόβλημα στην ροή κατά την διάρκεια του ελέγχου. Τα λάθη αναλύονται παρακάτω για την καλύτερη κατανόηση και την άμεση διόρθωση τους. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Δέχεται Σημείωση > των 50 χαρακτήρων Διόρθωση 2 Δέχεται πληκτρολόγηση στην Υπενθύμιση Ημέρας. Διόρθωση 3 Δέχεται πληκτρολόγηση στην Υπενθύμιση Ημέρας. Διόρθωση ΤΕΙ Καβάλας -Σελ. 80 -

Έλεγχος: Κλάση «ΗΜΕΡΟΛΟΓΙΟ» Έκδοση: Version 1.1 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 22/07/2004 ΑΝΑΦΟΡΑ ΔΙΟΡΘΩΣΗΣ ΛΑΘΩΝ Κατά την διόρθωση της κλάσης «ΗΜΕΡΟΛΟΓΙΟ» ο προγραμματιστής διόρθωσε τα λάθη τα οποία ανιχνεύθηκαν από τον έλεγχο. Ο έλεγχος επαναλήφθηκε ώστε να πιστοποιηθεί η διόρθωση. Για το πεδίο του ΣΗΜΕΙΩΣΕΙΣ: Δοθείσες τιμές Αποτέλεσμα Που Αναμενόμενο Λοιπά Σχόλια Πήραμε Αποτέλεσμα Επιταγές Τράπεζα (Τιμή δεκτή) (Τιμή δεκτή) Καλώς ΔΕΗ (Τιμή δεκτή) (Τιμή δεκτή) Καλώς Σημειώσεις > 50 Χαρακτήρων Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Καλώς Για το πεδίο του Υπενθύμιση Ημέρας: Δοθείσες τιμές Αποτέλεσμα Που Πήραμε Αναμενόμενο Αποτέλεσμα ΟΤΕ Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί ΔΕΗ Δεν το δέχτηκε Δεν έπρεπε να το δεχτεί Λοιπά Σχόλια Καλώς Καλώς Αναφορά Διόρθωσης Λαθών: Μετά τον έλεγχο που πραγματοποιήθηκε για την πιστοποίηση της διόρθωσης των λαθών, αναφέρετε ότι τα λάθη έχουν διορθωθεί και η κλάση «Ημερολόγιο» δεν παρουσιάζει κανένα πρόβλημα. Όλα τα παρακάτω λάθη που βρέθηκαν στον προηγούμενο έλεγχο έχουν εξαλειφθεί. Κωδ. Λάθους Περιγραφή Σημαντικότητα Λάθους 1 Δέχεται Σημείωση > των 50 χαρακτήρων Διορθώθηκε 2 Δέχεται πληκτρολόγηση στην Υπενθύμιση Ημέρας. Διορθώθηκε 3 Δέχεται πληκτρολόγηση στην Υπενθύμιση Ημέρας. Διορθώθηκε ΤΕΙ Καβάλας -Σελ. 81 -

Τελικός Έλεγχος Συνένωσης Προγράμματος Έκδοση: Version 1.2 Ελεγκτής: Ρίζος Ευθύμιος Ημερομηνία: 15/8/2004 Στην παρούσα αναφορά. Θα διατυπωθούν τα αποτελέσματα του ελέγχου του τελικού προγράμματος(v 1.2) Μετά τον λεπτομερή έλεγχο που πραγματοποιήθηκε, παρατηρήθηκε ότι τα προβλήματα που είχαν βρεθεί στην έκδοση V1.1, διορθώθηκαν όλα επιτυχώς. Θα μπορούσαμε να δηλώσουμε με βεβαιότητα, ότι το πρόγραμμα έκδοσης V1.2 καλύπτει τις προδιαγραφές του πελάτη και δεν υπάρχει κανένα πρόβλημα λειτουργίας. Ύστερα από τον έλεγχο λειτουργίας του συστήματος διαπιστώθηκε ότι το σύστημα αυτό, αντέχει και υλοποιεί τις απαιτήσεις που είχαν διατυπωθεί μετά από αρκετές ώρες συνεχούς λειτουργίας και αλλαγής των παραμέτρων. Συγκεκριμένα στο stress που πραγματοποιήθηκε επανελημένα 15 ημέρες για 24ώρες, δεν υπήρξε κανένα πρόβλημα. Συνεπώς το πρόγραμμα γίνεται αποδεκτό. ΤΕΙ Καβάλας -Σελ. 82 -

ΘΕΜΑ: Ανάπτυξη εφαρμογής βάσεως δεδομένων, για Βιοτεχνία αναγόμωσης και Συναρμολόγησης Πυροσβεστήρων. Ημερομηνία: 29-9-2004 Περίληψη Ελέγχου Από τις πρώτες μέρς που ξεκίνησε ο έλεγχος, μέχρι σήμερα, έχουμε βγάλει ορισμένα συμπεράσματα γύρω από την πορεία που είχαμε διαγράψει. Έχουμε ανακαλύψει ορισμένα λάθη στις διάφορες εκδόσεις των κλάσεων(που μας δόθηκαν προς εξέταση). Συνολικά στον έλεγχο που έγινε σε όλο το φάσμα του χρόνου, παρατηρήσαμε ότι βρέθηκαν 38 λάθη. Όλα τα λάθη που έχουμε βρει, αν τα τοποθετήσουμε στο καρτεσιανό επίπεδο, θα πάρουμε το παρακάτω σχέδιο. 20 ΜΕΘΟΔΟΣ ΜΠΑΝΙΕΡΑΣ 15 ΠΛΗΘΟΣ ΛΑΘΩΝ 10 5 0 Γενικά θα μπορούσαμε να δηλώσουμε πως είμαστε ικανοποιημένοι από την πορεία που ακολούθησε ο έλεγχος. Το αποτέλεσμα της συνολικής προσπάθειας έχει ικανοποιήσει τις προσδοκίες μας ΤΕΙ Καβάλας -Σελ. 83 -

«ΗΜΕΡΟΛΟΓΙΟ ΓΕΓΟΝΟΤΩΝ ΚΑΙ ΚΑΤΑΣΤΑΣΕΩΝ ΤΟΥ ΕΛΕΓΚΤΗ» 22/05/2004: Δημιουργήθηκε από τον ελεγκτή το Γενικό Σχέδιο Τεστ. 16/06/2004: Παραδόθηκε στον ελεγκτή η κλάση Πελατολόγιο. 17/06/2004: Εξετάστηκε από τον ελεγκτή και επισημάνθηκαν τα λάθη της κλάσης. 25/06/2004: Διορθώθηκαν τα λάθη της κλάσης. 26/06/2004: Παραδόθηκε στον ελεγκτή η κλάση Αποθήκη. 27/06/2004: Εξετάστηκε από τον ελεγκτή και επισημάνθηκαν τα λάθη της κλάσης. 2/07/2004: Διορθώθηκαν τα λάθη της κλάσης. 4/07/2004: Παραδόθηκε στον ελεγκτή η κλάση Παραγγελίες. 5/07/2004: Εξετάστηκε από τον ελεγκτή και επισημάνθηκαν τα λάθη της κλάσης. 10/07/2004: Διορθώθηκαν τα λάθη της κλάσης. 14/07/2004: Παραδόθηκε στον ελεγκτή η κλάση Ημερολόγιο. 15/07/2004: Εξετάστηκε από τον ελεγκτή και επισημάνθηκαν τα λάθη της κλάσης. 22/07/2004: Διορθώθηκαν τα λάθη της κλάσης. 15/08/2004: Τελικός έλεγχος συνένωσης. 29/09/2004: Περίληψη ελέγχου. ΤΕΙ Καβάλας -Σελ. 84 -

ΕΝΟΤΗΤΑ 6 Βιβλιογραφία Βιβλία Σημειώσεις Μαθημάτων Εισαγωγή στην C++, Kris Jamsa, Εκδόσεις Κλειδάριθμος. Προγραμματισμός με τη γλώσσα C++, Θεόδωρος Αλεβίζος Ph.D, Έκδοση Τ.Ε.Ι. Καβάλας. Τεχνολογία Λογισμικού Ι, Καθ. Σουφλέρης Χρήστος. Τεχνολογία Λογισμικού ΙΙ, Καθ. Σουφλέρης Χρήστος. Τεχνολογία Βιομηχανικού Λογισμικού, Καθ. Ευάγγελος Νικολαρόπουλος. Υλοποίηση Εφαρμογών με Γλώσσα SQL, Έκδοση 1 η Χρήστος Σκουρλάς, Εκδόσεις Νέων Τεχνολογιών. Σχεσιακές Βάσεις Δεδομένων, Χρήστος Π. Σκουρλάς, Εκδόσεις Νέων Τεχνολογιών. Εισαγωγή Στα Συστήματα Βάσεων Δεδομένων, C.J. DATE, Εκδόσεις Κλειδάριθμος. Ηλεκτρονικά Βιβλία E_Books Sams Teach Yourself Borland C++ Builder in 21 Days, Kent Reisdorph, Ken Henderson, Εκδσόσεις Sams (Μάρτιος 11, 1997). Microsoft SQL Server Black Book, Patrick Dalton, Εκδόσεις The Coriolis Group, Ιανουάριος 07 1997. Borland C++ Builder for Dummies, Michael I. Hyman, Εκδόσεις Hungry Minds Inc, (Σεπτέμβριος 29, 1997). Borland C++ Builder: the Definitive C++ Builder Problem Solver, John Miano, Thomas Cabanski, Harold Howe, Εκδόσεις Waite Group Press, (Ιούνιος 17, 1997). C++ Builder 5 Developer's Guide, Jarrod Hollingworth, Dan Butterfield, Bob Swart, Jamie Allsop, Εκδόσεις Sams, (Δεκέμβριος 6, 2000). Borland C++Builder Unleashed, Charlie Calvert's, Εκδόσεις SAM. Borland C++Builder 6 Developer's Guide by Jarrod Hollingworth, Paul Gustavson, Bob Swart, Mark Cashman, Εκδόσεις Sams, (Δεκέμβριος 30, 2002). Borland C++ Builder: The Complete Reference, Herbert Schildt, Greg Guntle, Gregory L. Guntle, Εκδόσεις McGraw-Hill Companies, (Απρίλιος 25, 2001) ΤΕΙ Καβάλας -Σελ. 85 -

ΦΟΡΜΑ :: ΒΙΟΤΕΧΝΙΑ ΑΝΑΓΟΜΩΣΗΣ ΚΑΙ ΣΥΝΑΡΜΟΛΟΓΗΣΗΣ ΠΥΡ/ΣΤΗΡΩΝ Όνομα φόρμας :: main Εδώ βρισκόμαστε στο κεντρικό μενού του προγράμματος. Από το κεντρικό μενού του προγράμματος, μπορούμε να περάσουμε έυκολα και γρήγορα στο: 1. Στο Πελατολόγιο. 2. Στην Αποθήκη. 3. Στις Εκκρεμούσες Παραγγελίες. 4. Στις Παραγγελίες. 5. Στο Ημερολόγιο. #include <vcl.h> #pragma hdrstop USEFORM("Unit1.cpp", main); USEFORM("Unit2.cpp", phone); USEFORM("Unit3.cpp", apothikh); USEFORM("Unit4.cpp", Form4); USEFORM("Unit5.cpp", epe3); ΤΕΙ Καβάλας -Σελ. 86 -

USEFORM("Unit6.cpp", pelatologio); USEFORM("Unit7.cpp", paragelies); USEFORM("dbForm.cpp", db); USEFORM("anazhthshForm.cpp", anazhthsh); USEFORM("orioForm.cpp", orio); USEFORM("dior8oshForm.cpp", dior8osh); USEFORM("katestramenoiForm.cpp", katestramenoi); USEFORM("ekremeisForm.cpp", ekremeis); USEFORM("notesForm.cpp", notes); USEFORM("reportForm.cpp", report); USEFORM("paraprintForm.cpp", paraprint); WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) try Application->Initialize(); Application->CreateForm( classid(tmain), &main); Application->CreateForm( classid(tphone), &phone); Application->CreateForm( classid(tapothikh), &apothikh); Application->CreateForm( classid(tform4), &Form4); Application->CreateForm( classid(tepe3), &epe3); Application->CreateForm( classid(tpelatologio), &pelatologio); Application->CreateForm( classid(tparagelies), &paragelies); Application->CreateForm( classid(tdb), &db); Application->CreateForm( classid(tanazhthsh), &anazhthsh); Application->CreateForm( classid(torio), &orio); Application->CreateForm( classid(tdior8osh), &dior8osh); Application->CreateForm( classid(tkatestramenoi), &katestramenoi); Application->CreateForm( classid(tekremeis), &ekremeis); Application->CreateForm( classid(tnotes), &notes); Application->CreateForm( classid(treport), &report); Application->CreateForm( classid(tparaprint), &paraprint); Application->Run(); catch (Exception &exception) Application->ShowException(&exception); catch (...) try throw Exception(""); ΤΕΙ Καβάλας -Σελ. 87 -

return 0; catch (Exception &exception) Application->ShowException(&exception); Πλήκτρο :: ΠΕΛΑΤΟΛΟΓΙΟ Όνομα πλήκτρου :: pelatologio void fastcall Tmain::Image3Click(TObject *Sender) pelatologio->showmodal(); Πλήκτρο :: ΑΠΟΘΗΚΗ Όνομα πλήκτρου :: apothikh void fastcall Tmain::Image4Click(TObject *Sender) apothikh->showmodal(); Πλήκτρο :: ΕΚΚΡΕΜΟΥΣΕΣ ΠΑΡΑΓΓΕΛΕΙΕΣ Όνομα πλήκτρου :: ekremeis void fastcall Tmain::Image6Click(TObject *Sender) ekremeis->showmodal(); Πλήκτρο :: ΠΑΡΑΓΓΕΛΙΕΣ Όνομα πλήκτρου :: anazhthsh void fastcall Tmain::Image5Click(TObject *Sender) anazhthsh->showmodal(); Πλήκτρο :: ΗΜΕΡΟΛΟΓΙΟ Όνομα πλήκτρου :: notes ΤΕΙ Καβάλας -Σελ. 88 -

void fastcall Tmain::Image7Click(TObject *Sender) notes->showmodal(); Πλήκτρο :: ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ F1 Όνομα πλήκτρου :: Memo1 void fastcall Tmain::N12Click(TObject *Sender) if(checkbox1->checked==false) Memo1->Visible=true; CheckBox1->Checked=true; else Memo1->Visible=false; CheckBox1->Checked=false; void fastcall Tmain::Memo1Click(TObject *Sender) Memo1->Visible=false; CheckBox1->Checked=false; #ifndef Unit1H #define Unit1H #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> #include <ADODB.hpp> #include <DB.hpp> #include <Menus.hpp> class Tmain : public TForm published: // IDE-managed Components ΤΕΙ Καβάλας -Σελ. 89 -

TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TMenuItem *N3; TMenuItem *N4; TMenuItem *N5; TMenuItem *N6; TMenuItem *N7; TMenuItem *N8; TImage *Image1; TImage *Image2; TImage *Image3; TImage *Image4; TImage *Image5; TImage *Image6; TImage *Image7; TTimer *Timer1; TTimer *Timer2; TMenuItem *N11; TMenuItem *N12; TMemo *Memo1; TCheckBox *CheckBox1; TMenuItem *N13; TMenuItem *N14; TMenuItem *N15; TMenuItem *N16; TMenuItem *N17; TLabel *Label1; TLabel *Label2; void fastcall N2Click(TObject *Sender); void fastcall N4Click(TObject *Sender); void fastcall N5Click(TObject *Sender); void fastcall N7Click(TObject *Sender); void fastcall N8Click(TObject *Sender); void fastcall Image3Click(TObject *Sender); void fastcall Image4Click(TObject *Sender); void fastcall Image5Click(TObject *Sender); void fastcall Image6Click(TObject *Sender); void fastcall Timer1Timer(TObject *Sender); void fastcall Timer2Timer(TObject *Sender); void fastcall Memo1Click(TObject *Sender); void fastcall N13Click(TObject *Sender); void fastcall N16Click(TObject *Sender); void fastcall N15Click(TObject *Sender); void fastcall N17Click(TObject *Sender); void fastcall Memo1Change(TObject *Sender); ΤΕΙ Καβάλας -Σελ. 90 -

private: // User declarations public: // User declarations fastcall Tmain(TComponent* Owner); ; extern PACKAGE Tmain *main; ΦΟΡΜΑ :: ΠΕΛΑΤΟΛΟΓΙΟ Όνομα φόρμας :: pelatologio Εδώ βρισκόμαστε στο πελατολόγιο. Από το Πελατολόγιο μπορούμε να κάνουμε μία νέα εγγραφή ενός πελάτη, όπως επίσης και να τροποποιήσουμε μία ήδη καταχωρηθήσα. Πλήκτρο :: ΠΕΛΑΤΟΛΟΓΙΟ Όνομα πλήκτρου :: pelatologio #include <DBGrids.hpp> #include <Grids.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> class Tpelatologio : public TForm ΤΕΙ Καβάλας -Σελ. 91 -

published: // IDE-managed Components TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TDBEdit *DBEdit7; TDBEdit *DBEdit8; TDBEdit *DBEdit9; TDBEdit *DBEdit10; TDBEdit *DBEdit11; TDBEdit *DBEdit12; TDBEdit *DBEdit13; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TLabel *Label5; TLabel *Label6; TLabel *Label7; TLabel *Label8; TLabel *Label9; TLabel *Label10; TLabel *Label11; TLabel *Label12; TLabel *Label13; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBNavigator *DBNavigator1; TMenuItem *N4; TMenuItem *N5; TImage *Image1; TDBNavigator *DBNavigator2; TLabel *Label15; TDBNavigator *DBNavigator3; TDBNavigator *DBNavigator4; TDBNavigator *DBNavigator5; TDBNavigator *DBNavigator6; TDBNavigator *DBNavigator7; TDBNavigator *DBNavigator8; TLabel *Label16; TLabel *Label17; TLabel *Label18; TLabel *Label19; ΤΕΙ Καβάλας -Σελ. 92 -

TLabel *Label20; TLabel *Label21; TLabel *Label22; void fastcall N2Click(TObject *Sender); void fastcall N5Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); void fastcall DBNavigator3Click(TObject *Sender, TNavigateBtn Button); void fastcall DBNavigator8Click(TObject *Sender, TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tpelatologio(TComponent* Owner); ; extern PACKAGE Tpelatologio *pelatologio; #endif #include <vcl.h> #pragma hdrstop #include "Unit6.h" #include "Unit1.h" #include "dbform.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" #include "anazhthshform.h" #pragma package(smart_init) #pragma resource "*.dfm" Tpelatologio *pelatologio; fastcall Tpelatologio::Tpelatologio(TComponent* Owner) : TForm(Owner) void fastcall Tpelatologio::N2Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 93 -

Close(); void fastcall Tpelatologio::N5Click(TObject *Sender) anazhthsh->showmodal(); void fastcall Tpelatologio::DBEdit1Change(TObject *Sender) void fastcall Tpelatologio::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) void fastcall Tpelatologio::DBNavigator3Click(TObject *Sender, TNavigateBtn Button) void fastcall Tpelatologio::DBNavigator8Click(TObject *Sender, TNavigateBtn Button) void fastcall Tpelatologio::Image1Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 94 -

void fastcall Tpelatologio::FormCreate(TObject *Sender) #ifndef Unit6H #define Unit6H #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ADODB.hpp> #include <DB.hpp> #include <DBCtrls.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <DBGrids.hpp> #include <Grids.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> class Tpelatologio : public TForm published: // IDE-managed Components TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TDBEdit *DBEdit7; TDBEdit *DBEdit8; TDBEdit *DBEdit9; TDBEdit *DBEdit10; TDBEdit *DBEdit11; TDBEdit *DBEdit12; TDBEdit *DBEdit13; TLabel *Label1; ΤΕΙ Καβάλας -Σελ. 95 -

TLabel *Label2; TLabel *Label3; TLabel *Label4; TLabel *Label8; TLabel *Label9; TLabel *Label10; TLabel *Label11; TLabel *Label12; TLabel *Label13; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBNavigator *DBNavigator1; TMenuItem *N4; TMenuItem *N5; TImage *Image1; TDBNavigator *DBNavigator2; TLabel *Label15; TDBNavigator *DBNavigator3; TDBNavigator *DBNavigator4; TDBNavigator *DBNavigator5; TDBNavigator *DBNavigator6; TDBNavigator *DBNavigator7; TDBNavigator *DBNavigator8; TLabel *Label16; TLabel *Label17; TLabel *Label18; TLabel *Label19; TLabel *Label20; TLabel *Label21; TLabel *Label22; void fastcall N2Click(TObject *Sender); void fastcall N5Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); void fastcall DBNavigator3Click(TObject *Sender, TNavigateBtn Button); void fastcall DBNavigator8Click(TObject *Sender, TNavigateBtn Button); void fastcall Image1Click(TObject *Sender); void fastcall FormCreate(TObject *Sender); void fastcall DBEdit10Change(TObject *Sender); void fastcall N4Click(TObject *Sender); void fastcall Label20Click(TObject *Sender); void fastcall Label19Click(TObject *Sender); ΤΕΙ Καβάλας -Σελ. 96 -

void fastcall DBNavigator5Click(TObject *Sender, TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tpelatologio(TComponent* Owner); ; extern PACKAGE Tpelatologio *pelatologio; #endif ΦΟΡΜΑ :: ΑΝΑΖΗΤΗΣΗ ΠΕΛΑΤΗ Όνομα φόρμας :: pelatologio Μέσα από την παραπάνω φόρμα μπορούμε να αναζητήσουμε γρήγορα έναν πελάτη αλλά και να δούμε το μητρώο κατεστραμμένων πυροσβεστήρων. Με την βοήθεια του παρακάτω κώδικα κάνουμε την αναζήτηση του πελάτη. #include <vcl.h> #pragma hdrstop #include "anazhthshform.h" #include "dbform.h" #include "Unit1.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" #include "Unit6.h" #include "orioform.h" #include "Unit5.h" #include "Unit7.h" #include "dior8oshform.h" ΤΕΙ Καβάλας -Σελ. 97 -

#include "katestramenoiform.h" #include "reportform.h" #pragma package(smart_init) #pragma resource "*.dfm" Tanazhthsh *anazhthsh; fastcall Tanazhthsh::Tanazhthsh(TComponent* Owner) : TForm(Owner) void fastcall Tanazhthsh::Edit1Change(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); void fastcall N2Click(TObject *Sender); void fastcall N5Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.epwnymo like '%"+Edit1- >Text+"%'"); db->adoquery1->open(); void fastcall Tanazhthsh::FormCreate(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.epwnymo like 'makhspateda'"); db->adoquery1->open(); void fastcall Tanazhthsh::N2Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 98 -

Close(); void fastcall Tanazhthsh::Edit2Change(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.id_pelath like '%"+Edit2- >Text+"%'"); db->adoquery1->open(); void fastcall Tanazhthsh::DBGrid1DblClick(TObject *Sender) paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); paragelies->edit2->text=dbedit1->text; db->adoquery6->close(); db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia,paragelia.hmnialh3hs"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; db->adoquery6->open(); paragelies->edit1->text=""; paragelies->showmodal(); void fastcall Tanazhthsh::Button1Click(TObject *Sender) katestramenoi->dbedit1->text=dbedit1->text; katestramenoi->dbedit2->text=dbedit2->text; katestramenoi->dbedit3->text=""; ΤΕΙ Καβάλας -Σελ. 99 -

katestramenoi->dbedit4->text=""; db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); katestramenoi->showmodal(); void fastcall Tanazhthsh::Edit3Change(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.polh like '%"+Edit3- >Text+"%'"); db->adoquery1->open(); void fastcall Tanazhthsh::N4Click(TObject *Sender) report->quickrep1->preview(); void fastcall Tanazhthsh::Image1Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 100 -

#ifndef anazhthshformh #define anazhthshformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBGrids.hpp> #include <Grids.hpp> #include <Menus.hpp> #include <DBCtrls.hpp> #include <Mask.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> class Tanazhthsh : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TEdit *Edit1; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TLabel *Label1; TEdit *Edit2; TLabel *Label2; TDBEdit *DBEdit1; TButton *Button1; TDBEdit *DBEdit2; TImage *Image1; TEdit *Edit3; TLabel *Label3; TMenuItem *N3; TMenuItem *N4; void fastcall Edit1Change(TObject *Sender); void fastcall FormCreate(TObject *Sender); void fastcall N2Click(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall N4Click(TObject *Sender); void fastcall Image1Click(TObject *Sender); private: // User declarations public: // User declarations fastcall Tanazhthsh(TComponent* Owner); ΤΕΙ Καβάλας -Σελ. 101 -

; extern PACKAGE Tanazhthsh *anazhthsh; #endif Πλήκτρο :: Σύμφωνα με το επώνυμο Όνομα πλήκτρου :: Edit1Change void fastcall Tanazhthsh::Edit1Change(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, void fastcall Edit2Change(TObject *Sender); void fastcall DBGrid1DblClick(TObject *Sender); void fastcall Button1Click(TObject *Sender); pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.epwnymo like '%"+Edit1- >Text+"%'"); db->adoquery1->open(); Πλήκτρο :: Σύμφωνα με κωδικό Όνομα πλήκτρου :: Edit2Change void fastcall Tanazhthsh::FormCreate(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, void fastcall Edit2Change(TObject *Sender); void fastcall DBGrid1DblClick(TObject *Sender); void fastcall Button1Click(TObject *Sender); ΤΕΙ Καβάλας -Σελ. 102 -

pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.epwnymo like 'makhspateda'"); db->adoquery1->open(); Πλήκτρο :: Σύμφωνα με Πόλη Όνομα πλήκτρου :: Edit2Change void fastcall Tanazhthsh::Edit3Change(TObject *Sender) db->adoquery1->close(); db->adoquery1->sql->clear(); db->adoquery1->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma, pelaths.patwnymo, pelaths.afm, pelaths.adt, pelaths.job, pelaths.kwdikos_perioxhs, pelaths.polh, pelaths.odos, pelaths.tk, pelaths.thlefwno, pelaths.kinhto_1"); db->adoquery1->sql->add("from pelaths"); db->adoquery1->sql->add("where pelaths.polh like '%"+Edit3- >Text+"%'"); db->adoquery1->open(); Πλήκτρο :: ΜΗΤΡΩΟ ΚΑΤΕΣΤΡΑΜΜΕΝΩΝ ΠΥΡΟΣΒΕΣΤΗΡΩΝ Όνομα πλήκτρου :: katestramenoi #include <vcl.h> #pragma hdrstop #include "katestramenoiform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit7.h" ΤΕΙ Καβάλας -Σελ. 103 -

#pragma package(smart_init) #pragma resource "*.dfm" Tkatestramenoi *katestramenoi; fastcall Tkatestramenoi::Tkatestramenoi(TComponent* Owner) : TForm(Owner) void fastcall Tkatestramenoi::N2Click(TObject *Sender) Close(); void fastcall Tkatestramenoi::DBEdit1Change(TObject *Sender) /* db->adoquery6->close(); db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; ΤΕΙ Καβάλας -Σελ. 104 -

void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; // #ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tkatestramenoi : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; ΤΕΙ Καβάλας -Σελ. 105 -

TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TEdit *Edit3; TDBEdit *DBEdit7; TImage *Image1; TLabel *Label8; TLabel *Label9; TLabel *Label5; TLabel *Label6; void fastcall N2Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; private: // User declarations public: // User declarations fastcall Tkatestramenoi(TComponent* Owner); ; extern PACKAGE Tkatestramenoi *katestramenoi; ΤΕΙ Καβάλας -Σελ. 106 -

#endif ΦΟΡΜΑ :: ΠΑΡΑΓΓΕΛΙΕΣ Όνομα φόρμας :: paragelies Εδώ βρισκόμαστε στο μενού παραγγελίες. Στις παραγγελίες, μπορούμε να εισάγουμε όποιο υλικό έχουμε στην αποθήκη, αρκεί τα τεμάχια που θα επιλέξουμε να ικανοποιούν το όριο ασφαλείας. ΚΩΔΙΚΑΣ #include <vcl.h> #pragma hdrstop #include "Unit7.h" #include "Unit1.h" #include "anazhthshform.h" #include "dbform.h" #include "Unit2.h" #include "Unit3.h" #include "Unit4.h" ΤΕΙ Καβάλας -Σελ. 107 -

#include "Unit6.h" #include "orioform.h" #include "Unit5.h" //#include "Unit8.h" #include "dior8oshform.h" #include "paraprintform.h" #include "reportform.h" #pragma package(smart_init) #pragma resource "*.dfm" Tparagelies *paragelies; fastcall Tparagelies::Tparagelies(TComponent* Owner) : TForm(Owner) void fastcall Tparagelies::N2Click(TObject *Sender) Close(); void fastcall Tparagelies::Button1Click(TObject *Sender) if(edit4->text!="") ListBox1->Items->Add(DBEdit4->Text); ListBox2->Items->Add(DBEdit1->Text); ListBox4->Items->Add(Edit1->Text); ListBox3->Items->Add(FloatToStr(StrToFloat(Edit1- >Text)*StrToFloat(DBEdit5->Text))); /* float a; a=strtofloat(floattostr(strtofloat(edit1->text)*strtofloat(dbedit5- >Text))); Edit6->Text=FloatToStr(StrToFloat(Edit6->Text)+a); */ double a; a=strtofloat(floattostr(strtofloat(edit1->text)*strtofloat(dbedit5- >Text))); ΤΕΙ Καβάλας -Σελ. 108 -

Edit6->Text=FloatToStr(StrToFloat(Edit6->Text)+a); ADOCommand1->CommandText=""; ADOCommand1->CommandText="INSERT INTO paragelia (kodpara,kvdikos,eidos,temaxia,id_pelath,hmnia,hmnialh3hs) VALUES('"+Edit4->Text+"','"+DBEdit4->Text+"','"+DBEdit1->Text+"','"+Edit1- >Text+"',"+Edit2->Text+",'"+Edit3->Text+"','"+Edit5->Text+"')"; ADOCommand1->Execute(); ADOCommand2->CommandText=""; ADOCommand2->CommandText="UPDATE apo8hkh1 SET apo8hkh1.temaxia = apo8hkh1.temaxia - '"+Edit1->Text+"' WHERE apo8hkh1.kvdikos='"+dbedit4->text+"'"; ADOCommand2->Execute(); db->adotable2->active=false; db->adotable2->active=true; ADOCommand2->CommandText=""; ADOCommand2->CommandText="UPDATE paragelia SET paragelia.sum = '"+Edit6->Text+"' WHERE paragelia.kodpara='"+edit4->text+"'"; ADOCommand2->Execute(); else MessageDlg("", mtinformation,tmsgdlgbuttons() << mbok, 0); void fastcall Tparagelies::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); Edit5->Text=DateToStr(Date()+365); //DateTimePicker1->Date+365; void fastcall Tparagelies::Edit2Change(TObject *Sender) db->adoquery3->close(); db->adoquery3->sql->clear(); db->adoquery3->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma"); ΤΕΙ Καβάλας -Σελ. 109 -

db->adoquery3->sql->add("from pelaths"); db->adoquery3->sql->add("where pelaths.id_pelath="+edit2->text+""); db->adoquery3->open(); dior8osh->showmodal(); void fastcall Tparagelies::Button2Click(TObject *Sender) db->adoquery4->close(); db->adoquery4->sql->clear(); db->adoquery4->sql->add("select paragelia.id,paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia"); db->adoquery4->sql->add("from paragelia"); db->adoquery4->sql->add("where paragelia.kodpara='"+edit4- >Text+"'"); db->adoquery4->open(); void fastcall Tparagelies::Edit4Change(TObject *Sender) paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); Edit6->Text="0,0"; db->adoquery5->close(); db->adoquery5->sql->clear(); db->adoquery5->sql->add("select paragelia.id, paragelia.kodpara"); db->adoquery5->sql->add("from paragelia"); db->adoquery5->sql->add("where paragelia.kodpara='"+edit4- >Text+"'"); db->adoquery5->open(); if(dbedit6->text!="") Label11->Caption="ÕðÜñ åé êáôá ùñçìýíïò"; else Label11->Caption="Äåí õðüñ åé êáôá ùñçìýíïò"; void fastcall Tparagelies::DBLookupListBox4Click(TObject *Sender) if(dbedit7->text!="") ΤΕΙ Καβάλας -Σελ. 110 -

paraprint->edit2->text=dbedit7->text; paraprint->showmodal(); void fastcall Tparagelies::FormCreate(TObject *Sender) #ifndef Unit7H #define Unit7H #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ADODB.hpp> #include <DB.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <ComCtrls.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> class Tparagelies : public TForm published: // IDE-managed Components TDBLookupListBox *DBLookupListBox1; TDBEdit *DBEdit1; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TListBox *ListBox1; TEdit *Edit1; TLabel *Label1; TLabel *Label2; TADOCommand *ADOCommand1; TButton *Button1; TEdit *Edit2; TEdit *Edit3; TDBEdit *DBEdit2; ΤΕΙ Καβάλας -Σελ. 111 -

TDBEdit *DBEdit3; TLabel *Label3; TLabel *Label4; TLabel *Label5; TLabel *Label6; TListBox *ListBox2; TListBox *ListBox3; TDBLookupListBox *DBLookupListBox2; TLabel *Label7; TDBLookupListBox *DBLookupListBox3; TDBEdit *DBEdit4; TDBEdit *DBEdit5; TListBox *ListBox4; TLabel *Label8; TLabel *Label9; TButton *Button2; TEdit *Edit4; TLabel *Label10; TLabel *Label11; TDBEdit *DBEdit6; TDBLookupListBox *DBLookupListBox4; TDBLookupListBox *DBLookupListBox5; TLabel *Label12; TLabel *Label13; TEdit *Edit5; TLabel *Label14; TDBLookupListBox *DBLookupListBox6; TLabel *Label15; TImage *Image1; TDBEdit *DBEdit7; TADOCommand *ADOCommand2; TEdit *Edit6; TLabel *Label16; TLabel *Label17; TLabel *Label18; TLabel *Label19; void fastcall N2Click(TObject *Sender); void fastcall Button1Click(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall Edit2Change(TObject *Sender); void fastcall Button2Click(TObject *Sender); void fastcall Edit4Change(TObject *Sender); void fastcall DBLookupListBox4Click(TObject *Sender); void fastcall FormCreate(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); ΤΕΙ Καβάλας -Σελ. 112 -

void fastcall DBEdit3Change(TObject *Sender); void fastcall DBEdit4Change(TObject *Sender); void fastcall DBEdit5Change(TObject *Sender); void fastcall DBEdit6Change(TObject *Sender); void fastcall DBEdit7Change(TObject *Sender); void fastcall DBLookupListBox1Click(TObject *Sender); void fastcall DBLookupListBox2Click(TObject *Sender); void fastcall DBLookupListBox3Click(TObject *Sender); void fastcall DBLookupListBox5Click(TObject *Sender); void fastcall DBLookupListBox6Click(TObject *Sender); void fastcall Edit1Change(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall Edit5Change(TObject *Sender); void fastcall Edit6Change(TObject *Sender); void fastcall Image1Click(TObject *Sender); void fastcall Label1Click(TObject *Sender); void fastcall Label10Click(TObject *Sender); void fastcall Label11Click(TObject *Sender); void fastcall Label12Click(TObject *Sender); void fastcall Label13Click(TObject *Sender); void fastcall Label14Click(TObject *Sender); void fastcall Label15Click(TObject *Sender); void fastcall Label16Click(TObject *Sender); void fastcall Label17Click(TObject *Sender); void fastcall Label18Click(TObject *Sender); void fastcall Label19Click(TObject *Sender); void fastcall Label2Click(TObject *Sender); void fastcall Label3Click(TObject *Sender); void fastcall Label4Click(TObject *Sender); void fastcall Label5Click(TObject *Sender); void fastcall Label6Click(TObject *Sender); void fastcall ListBox2Click(TObject *Sender); void fastcall ListBox1Click(TObject *Sender); void fastcall ListBox4Click(TObject *Sender); private: // User declarations public: // User declarations fastcall Tparagelies(TComponent* Owner); ; extern PACKAGE Tparagelies *paragelies; #endif ΤΕΙ Καβάλας -Σελ. 113 -

Πλήκτρο :: Εισαγωγή στην λίστα Όνομα πλήκτρου :: Button1 void fastcall Tparagelies::Button1Click(TObject *Sender) if(edit4->text!="") ListBox1->Items->Add(DBEdit4->Text); ListBox2->Items->Add(DBEdit1->Text); ListBox4->Items->Add(Edit1->Text); ListBox3->Items->Add(FloatToStr(StrToFloat(Edit1- >Text)*StrToFloat(DBEdit5->Text))); double a; a=strtofloat(floattostr(strtofloat(edit1->text)*strtofloat(dbedit5- >Text))); Edit6->Text=FloatToStr(StrToFloat(Edit6->Text)+a); ADOCommand1->CommandText=""; ADOCommand1->CommandText="INSERT INTO paragelia (kodpara,kvdikos,eidos,temaxia,id_pelath,hmnia,hmnialh3hs) VALUES('"+Edit4->Text+"','"+DBEdit4->Text+"','"+DBEdit1->Text+"','"+Edit1- >Text+"',"+Edit2->Text+",'"+Edit3->Text+"','"+Edit5->Text+"')"; ADOCommand1->Execute(); ADOCommand2->CommandText=""; ADOCommand2->CommandText="UPDATE apo8hkh1 SET apo8hkh1.temaxia = apo8hkh1.temaxia - '"+Edit1->Text+"' WHERE apo8hkh1.kvdikos='"+dbedit4->text+"'"; ADOCommand2->Execute(); db->adotable2->active=false; db->adotable2->active=true; ADOCommand2->CommandText=""; ADOCommand2->CommandText="UPDATE paragelia SET paragelia.sum = '"+Edit6->Text+"' WHERE paragelia.kodpara='"+edit4->text+"'"; ADOCommand2->Execute(); ΤΕΙ Καβάλας -Σελ. 114 -

else MessageDlg("", mtinformation,tmsgdlgbuttons() << mbok, 0); Πλήκτρο :: Παραγγελίες Όνομα πλήκτρου :: DBLookupListBox4 void fastcall Tparagelies::DBLookupListBox4Click(TObject *Sender) if(dbedit7->text!="") paraprint->edit2->text=dbedit7->text; paraprint->showmodal(); Πλήκτρο :: Κωδικός Πελάτη Όνομα πλήκτρου :: Edit2 void fastcall Tparagelies::Edit2Change(TObject *Sender) db->adoquery3->close(); db->adoquery3->sql->clear(); db->adoquery3->sql->add("select pelaths.id_pelath, pelaths.epwnymo, pelaths.onoma"); db->adoquery3->sql->add("from pelaths"); db->adoquery3->sql->add("where pelaths.id_pelath="+edit2->text+""); db->adoquery3->open(); Πλήκτρο :: ΚΩΔΙΚΟΣ ΠΑΡΑΓΓΕΛΙΑΣ Όνομα πλήκτρου :: Edit4 void fastcall Tparagelies::Edit4Change(TObject *Sender) paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); ΤΕΙ Καβάλας -Σελ. 115 -

Edit6->Text="0,0"; db->adoquery5->close(); db->adoquery5->sql->clear(); db->adoquery5->sql->add("select paragelia.id, paragelia.kodpara"); db->adoquery5->sql->add("from paragelia"); db->adoquery5->sql->add("where paragelia.kodpara='"+edit4- >Text+"'"); db->adoquery5->open(); if(dbedit6->text!="") Label11->Caption=" "; else Label11->Caption=" "; Πλήκτρο :: Διόρθωση και διαγραφή λίστας παραγγελίας Όνομα πλήκτρου :: Button2 void fastcall Tparagelies::Button2Click(TObject *Sender) db->adoquery4->close(); db->adoquery4->sql->clear(); db->adoquery4->sql->add("select paragelia.id,paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia"); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); db->adoquery3->close(); db->adoquery3->sql->clear(); db->adoquery4->sql->add("from paragelia"); db->adoquery4->sql->add("where paragelia.kodpara='"+edit4- >Text+"'"); db->adoquery4->open(); dior8osh->showmodal(); ΤΕΙ Καβάλας -Σελ. 116 -

ΦΟΡΜΑ :: Διόρθωση λίστας παραγγελίας Όνομα φόρμας :: dior8osh Εδώ βρισκόμαστε στο μενού διόρθωση παραγγελίας. Στην παρούσα φόρμα μπορούμε να διορθώσουμε την λίστα μίας παραγγελίας. #include <vcl.h> #pragma hdrstop #include "dior8oshform.h" #include "dbform.h" #include "Unit1.h" #include "Unit7.h" #pragma package(smart_init) #pragma resource "*.dfm" Tdior8osh *dior8osh; fastcall Tdior8osh::Tdior8osh(TComponent* Owner) : TForm(Owner) void fastcall Tdior8osh::N2Click(TObject *Sender) Close(); void fastcall Tdior8osh::Button1Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 117 -

if(dbedit1->text!="") ADOCommand1->CommandText=""; ADOCommand1->CommandText="DELETE paragelia.id, paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia FROM paragelia WHERE paragelia.id="+dbedit1->text+""; ADOCommand1->Execute(); ADOCommand2->CommandText=""; ADOCommand2->CommandText="UPDATE apo8hkh1 SET apo8hkh1.temaxia = apo8hkh1.temaxia + '"+DBEdit2->Text+"' WHERE apo8hkh1.kvdikos='"+dbedit3->text+"'"; ADOCommand2->Execute(); db->adotable2->active=false; db->adotable2->active=true; paragelies->edit6->text=floattostr(strtofloat(paragelies->edit6->text)- StrToFloat(DBEdit4->Text)*StrToFloat(DBEdit2->Text)); //paragelia.id, paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia FROM paragelia db->adoquery4->close(); db->adoquery4->sql->clear(); db->adoquery4->sql->add("select paragelia.id,paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia"); db->adoquery4->sql->add("from paragelia"); db->adoquery4->sql->add("where paragelia.kodpara='"+paragelies- >Edit4->Text+"'"); db->adoquery4->open(); void fastcall Tdior8osh::Button2Click(TObject *Sender) ADOCommand1->CommandText=""; ADOCommand1->CommandText="DELETE * FROM paragelia WHERE paragelia.kodpara='"+paragelies->edit4->text+"'"; ADOCommand1->Execute(); //paragelia.id, paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia db->adoquery4->close(); db->adoquery4->sql->clear(); ΤΕΙ Καβάλας -Σελ. 118 -

paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); db->adoquery4->sql->add("select paragelia.id,paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia"); db->adoquery4->sql->add("from paragelia"); db->adoquery4->sql->add("where paragelia.kodpara='"+paragelies- >Edit4->Text+"'"); db->adoquery4->open(); paragelies->edit6->text="0,0"; //db->adoquery6->close(); //db->adoquery6->sql->clear(); //db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia,paragelia.hmnialh3hs"); //db->adoquery6->sql->add("from paragelia"); //db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); //paragelies->edit4->text=""; void fastcall Tdior8osh::DBGrid1CellClick(TColumn *Column) db->adoquery15->close(); db->adoquery15->sql->clear(); db->adoquery15->sql->add("select apo8hkh1.price"); db->adoquery15->sql->add("from apo8hkh1"); db->adoquery15->sql->add("where apo8hkh1.kvdikos='"+dbedit3- >Text+"'"); db->adoquery15->open(); void fastcall Tdior8osh::FormCreate(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 119 -

Πλήκτρο :: Διαγραφή επιλεγμένου υλικού Όνομα πλήκτρου :: Button1 void fastcall Tdior8osh::Button1Click(TObject *Sender) if(dbedit1->text!="") ADOCommand1->CommandText=""; ADOCommand1->CommandText="DELETE paragelia.id, paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia FROM paragelia WHERE paragelia.id="+dbedit1->text+""; ADOCommand1->Execute(); ADOCommand2->CommandText=""; ADOCommand2->CommandText="UPDATE apo8hkh1 SET apo8hkh1.temaxia = apo8hkh1.temaxia + '"+DBEdit2->Text+"' WHERE apo8hkh1.kvdikos='"+dbedit3->text+"'"; ADOCommand2->Execute(); db->adotable2->active=false; db->adotable2->active=true; paragelies->edit6->text=floattostr(strtofloat(paragelies->edit6->text)- StrToFloat(DBEdit4->Text)*StrToFloat(DBEdit2->Text)); //paragelia.id, paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia FROM paragelia db->adoquery4->close(); db->adoquery4->sql->clear(); db->adoquery4->sql->add("select paragelia.id,paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia"); db->adoquery4->sql->add("from paragelia"); db->adoquery4->sql->add("where paragelia.kodpara='"+paragelies- >Edit4->Text+"'"); db->adoquery4->open(); ΤΕΙ Καβάλας -Σελ. 120 -

Πλήκτρο :: Διαγραφή όλης της λίστας Όνομα πλήκτρου :: Button2 void fastcall Tdior8osh::Button2Click(TObject *Sender) ADOCommand1->CommandText=""; ADOCommand1->CommandText="DELETE * FROM paragelia WHERE paragelia.kodpara='"+paragelies->edit4->text+"'"; ADOCommand1->Execute(); //paragelia.id, paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia db->adoquery4->close(); db->adoquery4->sql->clear(); db->adoquery4->sql->add("select paragelia.id,paragelia.kodpara, paragelia.kvdikos, paragelia.eidos, paragelia.temaxia, paragelia.id_pelath, paragelia.hmnia"); db->adoquery4->sql->add("from paragelia"); db->adoquery4->sql->add("where paragelia.kodpara='"+paragelies- >Edit4->Text+"'"); db->adoquery4->open(); db->adoquery6->close(); db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); paragelies->edit6->text="0,0"; paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); ΤΕΙ Καβάλας -Σελ. 121 -

ΦΟΡΜΑ :: ΜΗΤΡΩΟ ΚΑΤΕΣΤΡΑΜΜΕΝΩΝ ΠΥΡΟΣΒΕΣΤΗΡΩΝ Όνομα φόρμας :: katestramenoi Εδώ βρισκόμαστε στο ΜΗΤΡΩΟ ΚΑΤΕΣΤΡΑΜΜΕΝΩΝ ΠΥΡΟΣΒΕΣΤΗΡΩΝ. Μέσα από το παρόν Μητρώο μπορούμε να κάνουμε εισαγωγή του κωδικού φιάλης ενός κατεστραμμένου πυροσβεστήρα ώστε να το αναζητήσουμε αργότερα. Πλήκτρο :: ΠΡΟΣΘΗΚΗ Όνομα πλήκτρου :: nbinsert #include <vcl.h> #pragma hdrstop #include "katestramenoiform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit7.h" #pragma package(smart_init) #pragma resource "*.dfm" Tkatestramenoi *katestramenoi; fastcall Tkatestramenoi::Tkatestramenoi(TComponent* Owner) : TForm(Owner) ΤΕΙ Καβάλας -Σελ. 122 -

void fastcall Tkatestramenoi::N2Click(TObject *Sender) Close(); void fastcall Tkatestramenoi::DBEdit1Change(TObject *Sender) /* db->adoquery6->close(); db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); ΤΕΙ Καβάλας -Σελ. 123 -

db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; // #ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tkatestramenoi : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TEdit *Edit3; TDBEdit *DBEdit7; TImage *Image1; ΤΕΙ Καβάλας -Σελ. 124 -

TLabel *Label8; TLabel *Label9; TLabel *Label5; TLabel *Label6; void fastcall N2Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tkatestramenoi(TComponent* Owner); ; extern PACKAGE Tkatestramenoi *katestramenoi; #endif Πλήκτρο :: ΔΙΑΓΡΑΦΗ Όνομα πλήκτρου ::nbdelete #include <vcl.h> #pragma hdrstop #include "katestramenoiform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit7.h" #pragma package(smart_init) #pragma resource "*.dfm" Tkatestramenoi *katestramenoi; fastcall Tkatestramenoi::Tkatestramenoi(TComponent* Owner) : TForm(Owner) void fastcall Tkatestramenoi::N2Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 125 -

Close(); void fastcall Tkatestramenoi::DBEdit1Change(TObject *Sender) /* db->adoquery6->close(); db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); ΤΕΙ Καβάλας -Σελ. 126 -

DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; // #ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tkatestramenoi : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TEdit *Edit3; TDBEdit *DBEdit7; TImage *Image1; TLabel *Label8; TLabel *Label9; TLabel *Label5; ΤΕΙ Καβάλας -Σελ. 127 -

TLabel *Label6; void fastcall N2Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tkatestramenoi(TComponent* Owner); ; extern PACKAGE Tkatestramenoi *katestramenoi; #endif Πλήκτρο :: ΕΠΙΚΥΡΩΣΗ Όνομα πλήκτρου :: nbpost #include <vcl.h> #pragma hdrstop #include "katestramenoiform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit7.h" #pragma package(smart_init) #pragma resource "*.dfm" Tkatestramenoi *katestramenoi; fastcall Tkatestramenoi::Tkatestramenoi(TComponent* Owner) : TForm(Owner) void fastcall Tkatestramenoi::N2Click(TObject *Sender) Close(); void fastcall Tkatestramenoi::DBEdit1Change(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 128 -

/* db->adoquery6->close(); db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; ΤΕΙ Καβάλας -Σελ. 129 -

// #ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tkatestramenoi : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TEdit *Edit3; TDBEdit *DBEdit7; TImage *Image1; TLabel *Label8; TLabel *Label9; TLabel *Label5; TLabel *Label6; void fastcall N2Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); ΤΕΙ Καβάλας -Σελ. 130 -

void fastcall FormShow(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tkatestramenoi(TComponent* Owner); ; extern PACKAGE Tkatestramenoi *katestramenoi; #endif Πλήκτρο :: ΑΚΥΡΟ Όνομα πλήκτρου :: nbcancel #include <vcl.h> #pragma hdrstop #include "katestramenoiform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit7.h" #pragma package(smart_init) #pragma resource "*.dfm" Tkatestramenoi *katestramenoi; fastcall Tkatestramenoi::Tkatestramenoi(TComponent* Owner) : TForm(Owner) void fastcall Tkatestramenoi::N2Click(TObject *Sender) Close(); void fastcall Tkatestramenoi::DBEdit1Change(TObject *Sender) /* db->adoquery6->close(); ΤΕΙ Καβάλας -Σελ. 131 -

db->adoquery6->sql->clear(); db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; // ΤΕΙ Καβάλας -Σελ. 132 -

#ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tkatestramenoi : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TEdit *Edit3; TDBEdit *DBEdit7; TImage *Image1; TLabel *Label8; TLabel *Label9; TLabel *Label5; TLabel *Label6; void fastcall N2Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, ΤΕΙ Καβάλας -Σελ. 133 -

TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tkatestramenoi(TComponent* Owner); ; extern PACKAGE Tkatestramenoi *katestramenoi; #endif Πλήκτρο :: ΑΚΥΡΟ Όνομα πλήκτρου :: ΑΚΥΡΟ #include <vcl.h> #pragma hdrstop #include "katestramenoiform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit7.h" #pragma package(smart_init) #pragma resource "*.dfm" Tkatestramenoi *katestramenoi; fastcall Tkatestramenoi::Tkatestramenoi(TComponent* Owner) : TForm(Owner) void fastcall Tkatestramenoi::N2Click(TObject *Sender) Close(); void fastcall Tkatestramenoi::DBEdit1Change(TObject *Sender) /* db->adoquery6->close(); db->adoquery6->sql->clear(); ΤΕΙ Καβάλας -Σελ. 134 -

db->adoquery6->sql->add("select distinct paragelia.kodpara,paragelia.hmnia"); db->adoquery6->sql->add("from paragelia"); db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; db->adoquery6->sql->add("where paragelia.id_pelath="+dbedit1- >Text+""); paragelies->edit4->text=""; */ DBEdit5->Text=DBEdit1->Text; void fastcall Tkatestramenoi::DBEdit2Change(TObject *Sender) DBEdit6->Text=DBEdit2->Text; void fastcall Tkatestramenoi::FormShow(TObject *Sender) Edit3->Text=DateToStr(Date()); void fastcall Tkatestramenoi::Edit3Change(TObject *Sender) DBEdit7->Text=Edit3->Text; ΤΕΙ Καβάλας -Σελ. 135 -

void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; // #ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> void fastcall Tkatestramenoi::DBNavigator1Click(TObject *Sender, TNavigateBtn Button) db->adoquery7->close(); db->adoquery7->sql->clear(); db->adoquery7->sql->add("select katestramena.kwdikos, katestramena.idpelath, katestramena.pelaths, katestramena.sxolia, katestramena.hmnia"); db->adoquery7->sql->add("from katestramena"); db->adoquery7->sql->add("where katestramena.idpelath='"+dbedit1- >Text+"'"); db->adoquery7->open(); DBEdit5->Text=DBEdit1->Text; DBEdit6->Text=DBEdit2->Text; DBEdit7->Text=Edit3->Text; // ΤΕΙ Καβάλας -Σελ. 136 -

#ifndef katestramenoiformh #define katestramenoiformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Mask.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tkatestramenoi : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TDBNavigator *DBNavigator1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TMenuItem *N1; TMenuItem *N2; TDBEdit *DBEdit5; TDBEdit *DBEdit6; TEdit *Edit3; TDBEdit *DBEdit7; TImage *Image1; TLabel *Label8; TLabel *Label9; TLabel *Label5; TLabel *Label6; void fastcall N2Click(TObject *Sender); void fastcall DBEdit1Change(TObject *Sender); void fastcall DBEdit2Change(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall Edit3Change(TObject *Sender); void fastcall DBNavigator1Click(TObject *Sender, TNavigateBtn Button); private: // User declarations public: // User declarations fastcall Tkatestramenoi(TComponent* Owner); ; ΤΕΙ Καβάλας -Σελ. 137 -

extern PACKAGE Tkatestramenoi *katestramenoi; #endif ΦΟΡΜΑ :: ΕΚΤΥΠΩΣΗ ΛΙΣΤΑΣ ΠΕΛΑΤΩΝ Όνομα φόρμας :: print_pelatwn Φόρμα εκτύπωσης Λίστα πελατών. Απο εδώ μπορούμε να δούμε την λίστα την οποία θέλουμε να εκτυπώσουμε. Πλήκτρο :: Λίστα Πελατών Ctrl-P Όνομα πλήκτρου :: ektypwsh_pelatwn #ifndef paraprintformh #define paraprintformh #include <Classes.hpp> ΤΕΙ Καβάλας -Σελ. 138 -

#include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBGrids.hpp> #include <Grids.hpp> #include <Menus.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> #include <DBCtrls.hpp> #include <Mask.hpp> class Tparaprint : public TForm published: // IDE-managed Components TDBGrid *DBGrid1; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TMenuItem *N3; TMenuItem *N4; TEdit *Edit2; TLabel *Label2; TImage *Image1; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; void fastcall N2Click(TObject *Sender); void fastcall Edit2Change(TObject *Sender); void fastcall N4Click(TObject *Sender); private: // User declarations public: // User declarations fastcall Tparaprint(TComponent* Owner); ; extern PACKAGE Tparaprint *paraprint; #endif ΤΕΙ Καβάλας -Σελ. 139 -

ΦΟΡΜΑ :: ΑΠΟΘΗΚΗ Όνομα φόρμας :: main Το μενού της Αποθήκης. Μέσα από το κεντρικό μενού της αποθήκης, μπορούμε να δούμε τα διάφορα υλικά της αποθήκης και τα υλικά που βρίσκονται κάτω από το όριο ασφαλείας. #ifndef Unit3H #define Unit3H #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ADODB.hpp> ΤΕΙ Καβάλας -Σελ. 140 -

#include <DB.hpp> #include <DBCtrls.hpp> #include <DBGrids.hpp> #include <ExtCtrls.hpp> #include <Grids.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tapothikh : public TForm published: // IDE-managed Components TDBNavigator *DBNavigator2; TDBNavigator *DBNavigator1; TButton *Button2; TDBGrid *DBGrid1; TLabel *Label2; TLabel *Label3; TDBNavigator *DBNavigator3; TDBNavigator *DBNavigator4; TLabel *Label4; TLabel *Label5; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBGrid *DBGrid2; TMenuItem *N3; TMenuItem *N4; TImage *Image1; TMenuItem *N5; TMenuItem *N6; TLabel *Label1; void fastcall N2Click(TObject *Sender); void fastcall Button2Click(TObject *Sender); void fastcall N4Click(TObject *Sender); void fastcall FormShow(TObject *Sender); void fastcall N6Click(TObject *Sender); private: // User declarations public: // User declarations fastcall Tapothikh(TComponent* Owner); ; extern PACKAGE Tapothikh *apothikh; #endif #include <vcl.h> ΤΕΙ Καβάλας -Σελ. 141 -

#pragma hdrstop #include "Unit3.h" #include "Unit1.h" #include "Unit2.h" #include "Unit5.h" #include "Unit4.h" #include "anazhthshform.h" #include "dbform.h" #include "Unit6.h" #include "Unit7.h" #include "orioform.h" #include "ekremeisform.h" #include "paraprintform.h" #include "reportform.h" #pragma package(smart_init) #pragma resource "*.dfm" Tapothikh *apothikh; fastcall Tapothikh::Tapothikh(TComponent* Owner) : TForm(Owner) void fastcall Tapothikh::N2Click(TObject *Sender) Close(); void fastcall Tapothikh::Button2Click(TObject *Sender) epe3->showmodal(); ΤΕΙ Καβάλας -Σελ. 142 -

void fastcall Tapothikh::N4Click(TObject *Sender) orio->showmodal(); void fastcall Tapothikh::FormShow(TObject *Sender) db->adoquery2->close(); db->adoquery2->sql->clear(); db->adoquery2->sql->add("select apo8hkh1.id, apo8hkh1.eidos, apo8hkh1.temaxia"); db->adoquery2->sql->add("from apo8hkh1"); db->adoquery2->sql->add("where apo8hkh1.temaxia<"+orio- >DBEdit1->Text+""); db->adoquery2->open(); void fastcall Tapothikh::N6Click(TObject *Sender) db->adoquery13->close(); db->adoquery13->sql->clear(); db->adoquery13->sql->add("select apo8hkh1.id, apo8hkh1.kvdikos, apo8hkh1.eidos, apo8hkh1.temaxia, apo8hkh1.loipa_sxolia, apo8hkh1.price"); db->adoquery13->sql->add("from apo8hkh1"); //db->adoquery13->sql->add("where apo8hkh1.temaxia<"+orio- >DBEdit1->Text+""); db->adoquery13->open(); report->quickrep4->preview(); void fastcall Tapothikh::Image1Click(TObject *Sender) Πλήκτρο :: ΕΠΕΞΕΡΓΑΣΙΑ ΥΛΙΚΩΝ ΑΠΟΘΗΚΗΣ Όνομα πλήκτρου :: epe3 ΤΕΙ Καβάλας -Σελ. 143 -

void fastcall Tapothikh::Button2Click(TObject *Sender) epe3->showmodal(); #ifndef Unit5H #define Unit5H #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <DBCtrls.hpp> #include <Mask.hpp> #include <ExtCtrls.hpp> #include <Menus.hpp> #include <jpeg.hpp> class Tepe3 : public TForm published: // IDE-managed Components TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TDBEdit *DBEdit1; TDBEdit *DBEdit2; TDBEdit *DBEdit3; TDBEdit *DBEdit4; TDBNavigator *DBNavigator1; TDBNavigator *DBNavigator2; TDBNavigator *DBNavigator3; TDBNavigator *DBNavigator4; TDBNavigator *DBNavigator5; TLabel *Label5; TLabel *Label6; TLabel *Label7; TLabel *Label8; TLabel *Label9; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TLabel *Label10; TDBEdit *DBEdit5; TLabel *Label11; ΤΕΙ Καβάλας -Σελ. 144 -

TDBEdit *DBEdit6; TImage *Image1; void fastcall N2Click(TObject *Sender); void fastcall FormClose(TObject *Sender, TCloseAction &Action); private: // User declarations public: // User declarations fastcall Tepe3(TComponent* Owner); ; extern PACKAGE Tepe3 *epe3; #endif Πλήκτρο :: ΛΙΣΤΑ ΥΛΙΚΩΝ Όνομα πλήκτρου :: print_list void fastcall Tapothikh::N6Click(TObject *Sender) db->adoquery13->close(); db->adoquery13->sql->clear(); TDBEdit *DBEdit4; TLabel *Label1; TLabel *Label2; TLabel *Label3; TLabel *Label4; TMainMenu *MainMenu1; db->adoquery13->sql->add("select apo8hkh1.id, apo8hkh1.kvdikos, apo8hkh1.eidos, apo8hkh1.temaxia, apo8hkh1.loipa_sxolia, apo8hkh1.price"); db->adoquery13->sql->add("from apo8hkh1"); //db->adoquery13->sql->add("where apo8hkh1.temaxia<"+orio- >DBEdit1->Text+""); db->adoquery13->open(); report->quickrep4->preview(); Πλήκτρο :: ΌΡΙΟ ΑΣΦΑΛΕΙΑΣ Όνομα πλήκτρου :: orio void fastcall Tapothikh::N4Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 145 -

orio->showmodal(); ΦΟΡΜΑ :: ΕΚΚΡΕΜΟΥΣΕΣ ΠΑΡΑΓΓΕΛΙΕΣ Όνομα φόρμας :: ekremeis Εδώ βρισκόμαστε στο μενού των Εκκρεμών παραγγελιών. Με την παραπάνω φόρμα μπορούμε να προγραμματίσουμε τις παραγγελίες που είναι πιθανόν να γίνούν. Πλήκτρο :: ΗΜΕΡΟΛΟΓΙΟ Όνομα πλήκτρου :: monthcalendar1 #include <vcl.h> #pragma hdrstop #include "ekremeisform.h" #include "anazhthshform.h" #include "dbform.h" #include "dior8oshform.h" #include "katestramenoiform.h" #include "Unit1.h" #include "Unit3.h" #include "Unit4.h" ΤΕΙ Καβάλας -Σελ. 146 -

#include "Unit7.h" #include "paraprintform.h" #include "reportform.h" #pragma package(smart_init) #pragma resource "*.dfm" Tekremeis *ekremeis; fastcall Tekremeis::Tekremeis(TComponent* Owner) : TForm(Owner) void fastcall Tekremeis::N2Click(TObject *Sender) Close(); void fastcall Tekremeis::MonthCalendar1Click(TObject *Sender) db->adoquery8->close(); db->adoquery8->sql->clear(); db->adoquery8->sql->add("select distinct paragelia.kodpara,paragelia.id_pelath,paragelia.hmnia,paragelia.hmnialh3hs, pelaths.epwnymo, pelaths.onoma"); db->adoquery8->sql->add("from paragelia INNER JOIN pelaths ON paragelia.id_pelath = pelaths.id_pelath"); db->adoquery8->sql->add("where paragelia.hmnialh3hs='"+monthcalendar1->date+"'"); db->adoquery8->open(); Edit1->Text=MonthCalendar1->Date; //SELECT pelaths.epwnymo, pelaths.onoma //FROM paragelia INNER JOIN pelaths ON paragelia.id_pelath = pelaths.id_pelath; void fastcall Tekremeis::FormShow(TObject *Sender) MonthCalendar1->Date=DateToStr(Date()); db->adoquery8->close(); db->adoquery8->sql->clear(); ΤΕΙ Καβάλας -Σελ. 147 -

db->adoquery8->sql->add("select distinct paragelia.kodpara,paragelia.id_pelath"); db->adoquery8->sql->add("from paragelia"); db->adoquery8->sql->add("where paragelia.hmnialh3hs='makhs'"); db->adoquery8->open(); void fastcall Tekremeis::DBLookupListBox2Click(TObject *Sender) paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); paragelies->edit4->text=dbedit1->text; paragelies->edit2->text=dbedit2->text; paragelies->showmodal(); void fastcall Tekremeis::N4Click(TObject *Sender) report->qrlabel32->caption=edit1->text; report->quickrep3->preview(); #ifndef ekremeisformh #define ekremeisformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ComCtrls.hpp> #include <DBCtrls.hpp> #include <Menus.hpp> #include <Mask.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> class Tekremeis : public TForm published: // IDE-managed Components TMonthCalendar *MonthCalendar1; TDBLookupListBox *DBLookupListBox1; ΤΕΙ Καβάλας -Σελ. 148 -

TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBLookupListBox *DBLookupListBox2; TLabel *Label1; TLabel *Label2; TDBEdit *DBEdit1; TLabel *Label3; TImage *Image1; TMenuItem *N3; TMenuItem *N4; TEdit *Edit1; TDBEdit *DBEdit2; void fastcall N2Click(TObject *Sender); void fastcall DBLookupListBox2Click(TObject *Sender); void fastcall N4Click(TObject *Sender); private: // User declarations public: // User declarations fastcall Tekremeis(TComponent* Owner); ; extern PACKAGE Tekremeis *ekremeis; #endif Πλήκτρο :: Κωδικός Παραγγελίας Όνομα πλήκτρου ::DbLookupListBox2 void fastcall Tekremeis::DBLookupListBox2Click(TObject *Sender) paragelies->listbox1->clear(); paragelies->listbox2->clear(); paragelies->listbox3->clear(); paragelies->listbox4->clear(); paragelies->edit4->text=dbedit1->text; paragelies->edit2->text=dbedit2->text; paragelies->showmodal(); Πλήκτρο :: Εκτύπωση Εκκρεμών Παραγγελιών Όνομα πλήκτρου :: ekkremeisprint ΤΕΙ Καβάλας -Σελ. 149 -

void fastcall Tekremeis::N4Click(TObject *Sender) report->qrlabel32->caption=edit1->text; report->quickrep3->preview(); ΦΟΡΜΑ :: ΗΜΕΡΟΛΟΓΙΟ Όνομα φόρμας :: notes Εδώ βρισκόμαστε στο ημερολόγιο του προγράμματος. Η παρακάτω φόρμα έχει την χρήση μίας αντζέντας όπου μπορεί ο χρήστης να καταχωρίσει διάφορες προγραμματισμένες εργασίες. #ifndef notesformh #define notesformh #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <ComCtrls.hpp> #include <ADODB.hpp> #include <Menus.hpp> #include <DBCtrls.hpp> #include <ExtCtrls.hpp> #include <jpeg.hpp> class Tnotes : public TForm published: // IDE-managed Components TMonthCalendar *MonthCalendar1; ΤΕΙ Καβάλας -Σελ. 150 -

TButton *Button1; TADOCommand *ADOCommand1; TEdit *Edit1; TEdit *Edit2; TLabel *Label1; TMainMenu *MainMenu1; TMenuItem *N1; TMenuItem *N2; TDBLookupListBox *DBLookupListBox1; TLabel *Label2; TButton *Button2; TImage *Image1; TMenuItem *N3; TMenuItem *N4; void fastcall FormShow(TObject *Sender); void fastcall Button1Click(TObject *Sender); void fastcall MonthCalendar1Click(TObject *Sender); void fastcall N2Click(TObject *Sender); void fastcall Button2Click(TObject *Sender); void fastcall N4Click(TObject *Sender); private: // User declarations public: // User declarations fastcall Tnotes(TComponent* Owner); ; extern PACKAGE Tnotes *notes; #endif Πλήκτρο :: Καταχώριση Όνομα πλήκτρου :: Button1 void fastcall Tnotes::Button1Click(TObject *Sender) ADOCommand1->CommandText=""; ADOCommand1->CommandText="INSERT INTO notes (hmnia,sxolia) VALUES('"+Edit2->Text+"','"+Edit1->Text+"')"; ADOCommand1->Execute(); Πλήκτρο :: Διαγραφή Σημειώσεων ημέρας ΤΕΙ Καβάλας -Σελ. 151 -

Όνομα πλήκτρου :: Button2 void fastcall Tnotes::Button2Click(TObject *Sender) ADOCommand1->CommandText=""; ADOCommand1->CommandText="DELETE * FROM notes WHERE db->adoquery9->sql->clear(); TImage *Image1; TMenuItem *N3; TMenuItem *N4; void fastcall FormShow(TObject *Sender); void fastcall Button1Click(TObject *Sender); void fastcall MonthCalendar1Click(TObject *Sender); void fastcall N2Click(TObject *Sender); void fastcall Button2Click(TObject *Sender); void fastcall N4Click(TObject *Sender); db->adoquery9->sql->add("select notes.id, notes.hmnia, notes.sxolia"); db->adoquery9->sql->add("from notes"); TDBLookupListBox *DBLookupListBox1; TLabel *Label2; TButton *Button2; TImage *Image1; TMenuItem *N3; TMenuItem *N4; void fastcall FormShow(TObject *Sender); db->adoquery9->sql->add("where notes.hmnia='"+edit2->text+"'"); db->adoquery9->open(); Πλήκτρο :: Εκτύπωση Σημειώσεων ημέρας Όνομα πλήκτρου :: notesprint void fastcall Tnotes::N4Click(TObject *Sender) report->qrlabel47->caption=edit2->text; report->quickrep5->preview(); ΤΕΙ Καβάλας -Σελ. 152 -

ΦΟΡΜΑ :: ΟΔΗΓΙΕΣ ΧΡΗΣΗΣ Όνομα φόρμας :: memo1 Εδώ βρισκόμαστε στο μενού βοήθειας του προγράμματος. Στο παραπάνω μενού εμφανίζονται ερωτήσεις με τις αντίστοιχες απαντήσεις. void fastcall Tmain::N12Click(TObject *Sender) ΤΕΙ Καβάλας -Σελ. 153 -

if(checkbox1->checked==false) Memo1->Visible=true; CheckBox1->Checked=true; else Memo1->Visible=false; CheckBox1->Checked=false; void fastcall Tmain::Memo1Click(TObject *Sender) Memo1->Visible=false; CheckBox1->Checked=false; TDBLookupListBox *DBLookupListBox1; TLabel *Label2; TButton *Button2; TImage *Image1; TMenuItem *N3; TMenuItem *N4; void fastcall FormShow(TObject *Sender); void fastcall Tmain::Memo1Change(TObject *Sender) Memo1->Visible=false; CheckBox1->Checked=false; ΤΕΙ Καβάλας -Σελ. 154 -

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΣΗΣ ΤΟΥ ΛΟΓΙΣΜΙΚΟΥ ΤΕΙ Καβάλας -Σελ. 155 - ΚΟΜΟΤΗΝΗ 2004

ΤΕΙ Καβάλας -Σελ. 156 -

Σημείωση Δικαιώματα πνευματικής ιδιοκτησίας του σπουδαστή του τμήματος Βιομηχανικής Πληροφορικής, Ευθύμιο Ρίζο. Μ ε την επιφύλαξη παντός δικαιώματος. Απαγορεύεται η αναπαραγωγή, προσαρμογή, ή μετάφραση αυτού του εγχειριδίου χωρίς προηγούμενη γραπτή άδεια από τον σπουδαστή, εκτός από τις περιπτώσεις όπου επιτρέπεται από τους νόμους της πνευματικής ιδιοκτησίας. Διαβάστε προσεκτικά αυτό το Συμφωνητικό Αδείας πριν προχωρήσετε στη εγκατάσταση του λογισμικού. Τα δικαιώματα προσφέρονται μόνο με τη συνθήκη ότι ο πελάτης συμφωνεί με όλους τους όρους και τις συνθήκες του Συμφωνητικού Αδείας. Η συνέχιση στη λειτουργία του εξοπλισμό υποδεικνύει την αποδοχή σας σε αυτούς του όρους και τις συνθήκες. Οι ακόλουθοι Όροι Αδείας διέπουν τη χρήση του λογισμικού: Χρήση: ο πελάτης μπορεί να χρησιμοποιεί το λογισμικό σε οποιοδήποτε υπολογιστή. Ο πελάτης δεν μπορεί να δικτυώσει το λογισμικό η διαφορετικά να το χρησιμοποιεί σε περισσότερους από έναν υπολογιστές. Ο πελάτες δεν μπορεί να αποκωδικοποιήσει το λογισμικό εκτός αν έχει εξουσιοδότηση από το νόμο. Αντίγραφα και προσαρμογές. Ο πελάτης μπορεί να κάνει αντίγραφα ή προσαρμογές στο λογισμικό για λόγους αρχειοθέτησες ή όταν η αντιγραφή ή η προσαρμογή είναι απαραίτητο βήμα της χρήσης του λογισμικού σε έναν υπολογιστή για όσο διάστημα τα αντίγραφα και οι προσαρμογές δεν χρησιμοποιούνται με άλλο τρόπο. Κυριότητα. Ο πελάτης συμφωνεί ότι αυτός δεν έχει οποιοδήποτε τίτλο κυριότητας στο λογισμικό, διαφορετικό από την κατοχή των φυσικών μέσων. Ο πελάτης αναγνωρίζει ότι και συμφωνεί ότι το λογισμικό είναι κατ οχυρωμένο και προστατεύεται από τους νόμους περί πνευματικής ιδιοκτησίας. Ο πελάτης αναγνωρίζει και συμφωνεί ότι το λογισμικό μπορεί να έχει αναπτυχθεί από έναν τρίτο προμηθευτή λογισμικού, που κατονομάζεται στις σημειώσεις περί πνευματικής ιδιοκτησίας ή παραβίαση αυτού του συμφωνητικού. 1

ΠΕΡΙΕΧΟΜΕΝΑ 1. Εισαγωγή. 2. Η πρώτη επαφή του χρήστη με το πρόγραμμα. 2.1 Μία γρήγορη περιήγηση στο μενού επιλογών. 2.2 Δυνατότητες του χρήστη. 3. Λεπτομερέστατη ανάλυση των επίλογών του χρήστη στο μενού ΠΕΛΑΤΟΛΟΓΙΟ- 3.1 Εισαγωγή ενός πελάτη στην βάση δεδομένων. 3.2 Διαγραφή ενός πελάτη από την βάση δεδομένων. 3.3 Επεξεργασία των στοιχείων ενός πελάτη. 4. Λεπτομερέστατη ανάλυση των επίλογών του χρήστη στο μενού ΑΠΟΘΗΚΗ- 4.1 Εισαγωγή υλικών στην αποθήκη. 4.2 Διαγραφή υλικών από την αποθήκη. 4.3 Επεξεργασία των υλικών της αποθήκης. 4.4 Καθορισμός ορίου ασφαλείας. 4.5 Εμφάνιση υλικών κάτω από το όριο ασφαλείας. 4.6 Εκτύπωση της λίστας των υλικών της αποθήκης. 5. Λεπτομερέστατη ανάλυση των επίλογών του χρήστη στο μενού ΕΚΚΡΕΜΟΥΣΕΣ ΠΑΡΑΓΓΕΛΙΕΣ- 5.1 Εύρεση Ημερομηνίας Εκκρεμών παραγγελιών. 5.2 Εκτύπωση Εκκρεμών Παραγγελιών. 6. Λεπτομερέστατη ανάλυση των επίλογών του χρήστη στο μενού ΠΑΡΑΓΓΕΛΙΕΣ- 6.1 Αναζήτηση πελάτη με βάση το Επώνυμό του. 6.2 Αναζήτηση πελάτη με βάση τον Κωδικό του. 6.3 Αναζήτηση πελάτη με βάση την Πόλη. 6.4 Εύρεση κατεστραμμένων πυροσβεστήρων. 6.5 Δημιουργία παραγγελίας. 6.6 Διόρθωση παραγγελίας. 6.7 Αρχείο παλιών παραγγελιών πελάτη. 6.8 Εκτύπωση Παραγγελίας. 6.9 Εκτύπωση Πελατών με βάση την αναζήτηση. 7. Λεπτομερέστατη ανάλυση των επίλογών του χρήστη στο μενού ΗΜΕΡΟΛΟΓΙΟ- 7.1 Εισαγωγή στοιχείων. 7.2 Διαγραφή στοιχείων. 7.3 Αναζήτηση στοιχείων. 7.4 Εκτύπωση Ημερολογίου. 8. Γρήγορη Βοήθεια. 2

1. ΕΙΣΑΓΩΓΗ Το παρόν εγχειρίδιο χρήσης του λογισμικού Fire-X, δημιουργήθηκε για την εύκολη και γρήγορη εκμάθηση του από κάθε είδους χρήστες. Δεν χρειάζεται ο υποψήφιος χρήστης του προγράμματος να έχει μεγάλη εμπειρία στους υπολογιστές. Απαιτείται μία στοιχειώδη γνώση των βασικών λειτουργιών ενός κοινού ηλεκτρονικού υπολογιστή. Εκτιμάται ότι -μετά από μία έρευνα που έγινε σε χρήστες με ποικιλία γνώσεων πάνω στην χρήση υπολογιστών- ότι ο μέσος όρος του χρόνου που χρειάζεται ένας χρήστης για να μπορέσει να δουλέψει ανεξάρτητος και με άνεση το πρόγραμμα, είναι λιγότερο από Δύο(2) ώρες. Σε αυτό το σημείο βρίσκεται και η επιτυχία του project. Παρακάτω ξεκινάει η αναφορά στο πρόγραμμα. 3

2. Πρώτη επαφή του χρήστη με το πρόγραμμα. 2.1 Μία γρήγορη περιήγηση στο μενού επιλογών. Με την εκτέλεση του προγράμματος, ο χρήστης έρχεται σε επαφή με ένα ευχάριστο, όμορφο και έγχρωμο περιβάλλον, όπου βλέπει μπροστά του το μενού επιλογών(σχήμα 1). Στο μενού υπάρχουν τα κουμπιά, 1. ΠΕΛΑΤΟΛΟΓΙΟ. 2. ΑΠΟΘΗΚΗ. 3. ΕΚΚΡΕΜΟΥΣΕΣ ΠΑΡΑΓΓΕΛΙΕΣ. 4. ΠΑΡΑΓΓΕΛΙΕΣ. 5. ΗΜΕΡΟΛΟΓΙΟ. Επιλέγοντας ένα από τα παραπάνω κουμπιά, μπαίνει στο αντίστοιχο υπομενού. Εκεί μπορεί να κάνει τις όποιες διεργασίες του επιτρέπεται. Σχήμα-1 Το κεντρικό μενού του προγράμματος. 2.2 Δυνατότητες του χρήστη. Ο χρήστης έχει την δυνατότητα να καταγράψει ένα πελάτη μέσα στην βάση δεδομένων, και στην συνέχεια να δημιουργήσει μία παραγγελία στον πελάτη που επιθυμεί. Θα πρέπει πρώτα να εισάγει διάφορα είδη στην αποθήκη με το πλήθος τους και τις τιμές τους. Αφού έχει φτιάξει αρκετές παραγγελίες, μπορεί πάει στις εκκρεμμούσες παραγγελίες και να δει ανάλογα με την ημερομηνία ποιες είναι σε εκκρεμότητα. Στην αποθήκη μπορεί να τροποποιήσει το όριο ασφαλείας ώστε να το προσαρμόσει στις 4

απαιτήσεις του. Σε περίπτωση που κάποιο από το τα υλικά της αποθήκης έχει πέσει κάτω από το όριο ασφαλείας, τότε σε μία λίστα μπορούμε να δούμε το είδος που πρέπει να παραγγείλουμε. Για κάθε πελάτη μπορούμε να δούμε τις παραγγελίες που έχει κάνει. Στο ημερολόγιο του προγράμματος, μπορούμε να καταχωρήσουμε οποιεσδήποτε δουλειές θέλουμε και να ανατρέξουμε αργότερα για να ενημερωθούμε. Σε οποιοδήποτε σημείο του προγράμματος μπορούμε να κάνουμε εκτυπώσεις ώστε να διευκολυνόμαστε στις εργασίες μας. 3. Λεπτομερέστερη ανάλυση των επίλογών του χρήστη στο μενού ΠΕΛΑΤΟΛΟΓΙΟ- Από το κεντρικό μενού επιλογών Σχήμα-2, όταν επιλέξουμε το πελατολόγιο, θα εμφανιστεί μπροστά μας το παρακάτω παράθυρο. Εκεί μπορούμε να εισάγουμε να διαγράψουμε να μετακινηθούμε ανάμεσα στις εγγραφές, αλλά και να ακυρώσουμε κάποιες ενέργειές μας. Σχήμα-2 Το μενού του πελατολογίου. 5

3.1 Εισαγωγή ενός πελάτη στην βάση δεδομένων. Ο χρήστης μπορεί να κάνει εισαγωγή του πελάτη πατώντας το κουμπί +( Σχήμα-3)-. Στην συνέχεια γράφουμε στο αριστερό μέρος της οθόνης τα στοιχεία του πελάτη και στο τέλος για να αποθηκευτούν οι αλλαγές, πατάει το κουμπί ΕΠΙΚΎΡΩΣΗ) (Σχήμα-3)-. Σε περίπτωση λάθους πατάμε το κουμπί ΑΚΥΡΟ (Σχήμα 3)-. Για να βγούμε από το μενού και να επιστρέψουμε πατάμε το πλήκτρο Esc-. Σχήμα-3 Η εισαγωγή πελάτη στην Βάση Δεδομένων. 3.2 Διαγραφή ενός πελάτη από την βάση δεδομένων. Για να διαγράψουμε έναν πελάτη από την βάση δεδομένων, επιλέγουμε τον πελάτη και στην συνέχεια πατάμε το κουμπί -- -(Σχήμα 4)-. Μόλις πατήσουμε το κουμπί, θα εμφανιστεί στην οθόνη ένα πλαίσιο επικύρωσης όπου εμείς θα πρέπει να πατήσουμε το ΟΚ, εάν θέλουμε να συνεχίσουμε την διαγραφή. Για να βγούμε από το μενού και να επιστρέψουμε πατάμε το πλήκτρο Esc-. Σχήμα-4. Επικύρωση Διαγραφής 3.3 Επεξεργασία των στοιχείων ενός πελάτη. Για να επεξεργαστούμε τα στοιχεία ενός πελάτη, απλώς πάμε στο μενού που κάνουμε την εισαγωγή ή την διαγραφή του πελάτη και επιλέγουμε τον πελάτη που θέλουμε να επεξεργαστούμε. Στην κάνουμε την αλλαγή που επιθυμούμε και πατάμε το κουμπί της επικύρωσης. 6

4. Λεπτομερέστερη ανάλυση των επίλογών του χρήστη στο μενού ΑΠΟΘΗΚΗ- 4.1 Εισαγωγή υλικών στην αποθήκη. Για να εισάγουμε υλικά στην αποθήκη, από το μενού ΑΠΟΘΗΚΗ (Σχήμα 5), Σχήμα-5. Τα υλικά της αποθήκης επιλέγουμε ΕΠΕΞΕΡΓΑΣΙΑ ΥΛΙΚΩΝ ΑΠΟΘΗΚΗΣ. Στο μενού που εμφανίζεται(σχήμα-6), επιλέγοντας το κουμπί +, μπορούμε να εισάγουμε τα στοιχεία που επιθυμούμε, και στην συνέχεια πατώντας το κουμπί της επικύρωσης, καταχωρούμε το υλικό. Σε περίπτωση λάθους με το κουμπί Χ, ακυρώνουμε την καταχώρηση. Σχήμα-6. Επεξεργασία Υλικών Αποθήκης 7

4.2 Διαγραφή υλικών από την αποθήκη. Για να διαγράψουμε ένα είδος από την βάση, επιλέγουμε το είδος που θέλουμε να το διαγράψουμε από την αποθήκη και στην συνέχεια πατάμε το κουμπί --. Μόλις γίνει αυτό θα εμφανιστεί ένα πλαίσιο επικύρωσης, εκεί θα επιλέξουμε το ΟΚ για να συνεχίσουμε την διαγραφή(σχήμα-7). Σχήμα-7 Επικύρωση Διαγραφής 4.3 Επεξεργασία των υλικών της αποθήκης. Για να επεξεργαστούμε τα υλικά της αποθήκης, επιλέγουμε το υλικό που θέλουμε να τροποποιήσουμε και αλλάζουμε τα στοιχεία του μέσα στα αντίστοιχα πεδία. Στην συνέχεια επιλέγουμε το κουμπί της επικύρωσης και γίνεται η αλλαγή. 4.4 Καθορισμός ορίου ασφαλείας. Για να καθορίσουμε το όριο ασφαλείας των υλικών της αποθήκης, από την μπάρα επιλογών, επιλέγουμε Επιλογές, Όριο ασφαλείας(σχήμα-8). Σχήμα-8. Επιλογή ορίου ασφαλείας. Θα εμφανιστεί ένα μικρό παράθυρο, στο οποίο μέσα θα πρέπει να συμπληρώσουμε το όριο ασφαλείας. Αφού το συμπληρώσουμε, στην συνέχεια επιλέγουμε το κουμπί της επικύρωσης και καταχωρείται η αλλαγή που κάναμε(σχήμα-9). 8

Σχήμα-9. Καθορισμός ορίου ασφαλείας. 4.5 Εμφάνιση υλικών κάτω από το όριο ασφαλείας. Τα υλικά τα οποία βρίσκονται κάτω από το όριο ασφαλείας, βρίσκονται στο δεξιό μέρος της οθόνης(σχήμα-10) και από εκεί παρακολουθούμε, ποια χρειάζονται να συμπληρωθούν άμεσα. Σχήμα-10 Υλικά κάτω από το όριο ασφαλείας. 4.6 Εκτύπωση της λίστας των υλικών της αποθήκης. Μπορούμε εάν το επιθυμούμε να εκτυπώσουμε την λίστα των υλικών της αποθήκης, για να έχουμε μία καλύτερη άποψη. Για την εκτύπωση πηγαίνουμε στην μπάρα επιλογών και επιλέγουμε Εκτύπωση και στην συνέχεια Λίστα Υλικών(Σχήμα 11 ). Σχήμα-11 Εκτύπωση Λίστας Υλικών. 9

Στην οθόνη μας θα εμφανιστεί η προεπισκόπηση της εκτύπωσης. Επιλέγοντας Print θα εκτυπωθεί στον εκτυπωτή η λίστα των υλικών της αποθήκης(σχήμα-12). Σχήμα-12 Προεπισκόπηση Εκτύπωσης. 10

5. Λεπτομερέστερη ανάλυση των επίλογών του χρήστη στο μενού ΕΚΚΡΕΜΟΥΣΕΣ ΠΑΡΑΓΓΕΛΙΕΣ- 5.1 Εύρεση Ημερομηνίας Εκκρεμών παραγγελιών. Για να δούμε τις εκκρεμμούσες παραγγελίες, δηλαδή τις παραγγελίες που πρόκειται να γίνουν στην αντίστοιχη ημερομηνία, απλώς επιλέγουμε την ημερομηνία που μας ενδιαφέρει και στην συνέχεια στις λίστες που βρίσκονται στο δεξιό μέρος του παραθύρου εμφανίζονται ο κωδικός του πελάτη και ο αντίστοιχος κωδικός της παραγγελίας (Σχήμα 13 ). Σχήμα-13 Εκκρεμμούσες παραγγελίες. Εάν επιλέξουμε έναν κωδικό παραγγελίας, θα εμφανιστεί στην οθόνη μας η συγκεκριμένη παραγγελία και σε εκείνο το σημείο μπορούμε να δούμε τα υλικά που περιείχε η επιλεγμένη παραγγελία. Σχήμα-14 Εκκρεμμούσες παραγγελίες(α) 11

Επιλέγοντας Διόρθωση και Διαγραφή λίστας παραγγελίας, μπορούμε να διαγράψουμε ένα είδος από την παραγγελία και να προσθέσουμε ένα άλλο(σχήμα-14). 5.2 Εκτύπωση Εκκρεμών Παραγγελιών. Τι παραγγελία που έχουμε εάν το επιθυμούμε την εκτυπώνουμε πηγαίνοντας στο μενού επιλογών και στην Εκτύπωση, Εκκρεμμούσες παραγγελίες. Επιλέγοντας Print θα εκτυπωθεί στον εκτυπωτή η λίστα των εκκρεμών παραγγελιών(σχήμα15 ). Σχήμα-15 Προεπισκόπηση εκτύπωσης. 12

6. Λεπτομερέστερη ανάλυση των επίλογών του χρήστη στο μενού ΠΑΡΑΓΓΕΛΙΕΣ- 6.1 Αναζήτηση πελάτη με βάση το Επώνυμό του. Στο κεντρικό μενού επιλογών, επιλέγουμε τις ΠΑΡΑΓΓΕΛΙΕΣ. Στο επόμενο μενού που θα εμφανιστεί, μέσα στο πεδίο επώνυμο, πληκτρολογούμε το επώνυμο του πελάτη που μας ενδιαφέρει. Δεν χρειάζεται να γράψουμε όλο το επώνυμο. Ακόμα και ένα ή δύο γράμματα είναι αρκετά για να βρούμε τον πελάτη μας(σχήμα-16). Όσο μεγαλώνει το πελατολόγιο και αυξάνονται οι πελάτες, τόσα περισσότερα γράμματα θα χρειάζονται για να γίνει πιο σαφής η αναζήτηση. Σχήμα-16 Αναζήτηση πελάτη με βάση το επώνυμο. Στην συνέχεια επιλέγοντας τον πελάτη που θέλουμε, μεταβαίνουμε αυτόματα στο μενού με τις παραγγελίες όπου εκεί μπορούμε να δημιουργήσουμε μία καινούργια παραγγελία. 6.2 Αναζήτηση πελάτη με βάση τον Κωδικό του. Το ίδιο περίπου ισχύει και σε περίπτωση που η αναζήτηση γίνει με βάση τον κωδικό του πελάτη. Μέσα στο πεδίο κωδικός, πληκτρολογούμε το κωδικό του πελάτη που μας ενδιαφέρει. Δεν χρειάζεται να γράψουμε όλο το κωδικό. Ακόμα και ένα ή δύο γράμματα είναι αρκετά για να βρούμε τον πελάτη μας(σχήμα-17). Όσο μεγαλώνει το πελατολόγιο και αυξάνονται οι πελάτες, τόσα περισσότερα γράμματα θα χρειάζονται για να γίνει πιο σαφής η αναζήτηση. 13

Σχήμα- 17 Αναζήτηση πελάτη με βάση το κωδικό. Στην συνέχεια επιλέγοντας τον πελάτη που θέλουμε, μεταβαίνουμε αυτόματα στο μενού με τις παραγγελίες όπου εκεί μπορούμε να δημιουργήσουμε μία καινούργια παραγγελία. 6.3 Αναζήτηση πελάτη με βάση την Πόλη. Ότι ίσχυε στις παραπάνω παραγράφους, το αντίστοιχο ισχύει και στην αναζήτηση του πελάτη με βάση την πόλη. Μέσα στο πεδίο κωδικός, πληκτρολογούμε την πόλη από την οποία είναι ο πελάτης που μας ενδιαφέρει(σχήμα-18). Δεν χρειάζεται να γράψουμε όλο την πόλη. Ακόμα και ένα ή δύο γράμματα είναι αρκετά για να βρούμε τον πελάτη μας. Όσο μεγαλώνει το πελατολόγιο και αυξάνονται οι πελάτες, τόσα περισσότερα γράμματα θα χρειάζονται για να γίνει πιο σαφής η αναζήτηση. Σχήμα-18 Αναζήτηση πελάτη με βάση το κωδικό. Στην συνέχεια επιλέγοντας τον πελάτη που θέλουμε, μεταβαίνουμε αυτόματα στο μενού με τις παραγγελίες όπου εκεί μπορούμε να δημιουργήσουμε μία καινούργια παραγγελία. 14

6.4 Εύρεση κατεστραμμένων πυροσβεστήρων. Σε ορισμένες περιπτώσεις, υπάρχουν πελάτες οι οποίοι κατέχουν πυροσβεστήρες, που δεν τηρούν τις απαραίτητες προδιαγραφές ασφαλείας. Για κάθε πυροσβεστήρα γίνεται σχολαστικός έλεγχος. Σε περίπτωση που ο πυροσβεστήρες κριθεί ακατάλληλο, τότε μεταφέρεται σε έναν ειδικό χώρο φύλαξης και καταγράφεται στην βάση δεδομένων. Από το μενού παραγγελίες επιλέγουμε τον πελάτη που ενδιαφέρει και πατάμε το κουμπί Μητρώο κατεστραμμένων πυροσβεστήρων(σχήμα-19). Σε εκείνο το σημείο μπορούμε να εισάγουμε μία εγγραφή για έναν πυροσβεστήρα, πατώντας το κουμπί ΠΡΟΣΘΗΚΗ, και στην συνέχεια συμπληρώνοντας τα πεδία με τον Αρ. Σειράς φιάλης και διάφορα σχόλια τα οποία υποδουλώνουν τον λόγο για τον οποίο γίνεται η απόσυρση της φιάλης. Σχήμα-19 Μητρώο κατεστραμμένων πυροσβεστήρων. Αφού γίνει η καταχώρηση, στο δεξιό μέρος του παραθύρου, εμφανίζεται η εγγραφή που έχουμε κάνει. Για να διαγράψουμε μία εγγραφή απλώς την επιλέγουμε και πατάμε το κουμπί ΔΙΑΓΡΑΦΗ. Σε περίπτωση λάθους μπορούμε να ακυρώσουμε την διαδικασία εγγραφής πατώντας το κουμπί ΑΚΥΡΟ. 6.5 Δημιουργία παραγγελίας. Για να δημιουργήσουμε μία παραγγελία, επιλέγουμε πρώτα τον πελάτη τον οποίο επιθυμούμε και στην συνέχεια επιλέγουμε τα υλικά τα οποία θέλει να προσθέσει στην παραγγελία(σχήμα-20). Σε κάθε είδος ξεχωριστά γράφουμε το πλήθος των τεμαχίων και πατάμε το κουμπί εισαγωγή στην λίστα. Αμέσως στην δεξιά λίστα εμφανίζεται το είδος που προσθέσαμε στην παραγγελία. Στο κάτω μέρος του παραθύρου βλέπουμε και το κόστος της παραγγελίας το οποίο μεταβάλλεται για κάθε είδος που προσθέτουμε. 15

Σχήμα-20 Δημιουργία παραγγελίας. Όταν συμπληρώσουμε την παραγγελία, η καταχώρησή της γίνεται μόλις βγούμε από το μενού πατώντας το πλήκτρο Esc. 6.6 Διόρθωση παραγγελίας. Κατά την δημιουργία μίας παραγγελίας σε περίπτωση που κάνουμε κάποιο λάθος, μπορούμε να το διορθώσουμε επιλέγοντας την Διόρθωση της παραγγελίας(σχήμα-21). Στο παράθυρο που θα εμφανιστεί, μπορούμε να διαγράψουμε ένα-ένα τα υλικά, ή όλη την λίστα των υλικών μαζί. Σχήμα-21 Διόρθωση λίστας παραγγελίας. 16

6.7 Αρχείο παλιών παραγγελιών πελάτη. Επιλέγοντας τον πελάτη που επιθυμούμε, μπορούμε να δούμε εάν έχει στο παρελθόν κάνει κάποια παραγγελία. Στο δεξιό μέρος της οθόνης εμφανίζονται(εάν υπάρχουν) παλιές παραγγελίες(σχήμα-22). Σχήμα-22 Παλιές παραγγελίες. Επιλέγοντας(κάνοντας απλά ένα click) την παραγγελία που μας ενδιαφέρει, εμφανίζεται ένα παράθυρο που περιέχει την λίστα με την παραγγελία του πελάτη(σχήμα-23). Σχήμα-23 Εμφάνιση λίστας παραγγελίας. 17

6.8 Εκτύπωση Παραγγελίας. Αφού επιλέξουμε τα υλικά που θέλει ο πελάτης στην παραγγελία, μπορούμε να επιλέξουμε να την εκτυπώσουμε έτσι ώστε(σχήμα-24): i) Να την δώσουμε στο τμήμα συναρμολόγησης. ii) Να την στείλουμε με φαξ στον ίδιο τον πελάτη. iii) Να την αρχειοθετήσουμε. Σχήμα-24 Εκτύπωση παραγγελίας. 6.9 Εκτύπωση Πελατών με βάση την αναζήτηση. Αφού επιλέξει ο χρήστης τον πελάτη ή τους πελάτες που τον ενδιαφέρουν, μπορεί εκτός από την προβολή των στοιχείων τους στην οθόνη, να εκτυπώσει και την λίστα πελατών(σχήμα-25). 18

Σχήμα-25 Εκτύπωση λίστας πελατών. 7. Ανάλυση των επίλογών του χρήστη στο μενού ΗΜΕΡΟΛΟΓΙΟ. Το ΗΜΕΡΟΛΟΓΙΟ στο πρόγραμμα είναι ένα είδος «Ατζέντας» για τον προγραμματισμό εργασιών και για την υπενθύμιση διαφόρων υποχρεώσεων(σχήμα-26). Σχήμα-26 Ημερολόγιο. 7.1 Εισαγωγή στοιχείων. Ο χρήστης μπορεί να κάνει εισαγωγή στοιχείων για οποιαδήποτε προγραμματισμένη δραστηριότητα επιθυμεί. Επιλέγει απλά την ημερομηνία που θέλει να κάνει την εισαγωγή, και πλαίσιο των σημειώσεων εισάγει τα στοιχεία που επιθυμεί(σχήμα-27). 19

Σχήμα-27 Καταχώριση στοιχείων στο Ημερολόγιο. Πατώντας τον κουμπί Καταχώριση, γίνεται αυτόματα η εγγραφή στην βάση δεδομένων. 7.2 Διαγραφή στοιχείων. Εφόσον ο χρήστης επιθυμήσει να διαγράψει κάποιες σημειώσεις, μπορεί απλά να ανατρέξει στο ημερολόγιο, στην ημερομηνία που επιθυμεί και να πατήσει το κουμπί Διαγραφή σημειώσεων ημέρας (Σχήμα-28). Σχήμα-28 Διαγραφή στοιχείων στο Ημερολόγιο. 7.3 Αναζήτηση στοιχείων. Ο χρήστης κάθε μέρα μπορεί να ανατρέξει στο ημερολόγιο και να δει τις εργασίες πρέπει να εκτελέσει στην διάρκεια της ημέρας. Έτσι μπορεί να προγραμματίσει και να έχει γνώσιν για τις υποχρεώσεις της ημέρας, 20