Κων/νου Στυλιάδη. Εφαρµογή Βιβλιοθήκης σε Clipper

Σχετικά έγγραφα
Κων/νου Στυλιάδη. Εφαρµογή Video Club στην Access

Κων/νου Στυλιάδη. Έτοιµες Ασκήσεις σε Clipper

Εγχειρίδιο Δανειστικής Βιβλιοθήκης

ηµιουργία Β.. ανειστική Βιβλιοθήκη Μάθηµα 5 Ορισµός σχέσεων - Σύνδεση πινάκων

ΚΟΗΑ ΚΥΚΛΟΦΟΡΙΑ ΥΛΙΚΟΥ

Κων/νου Στυλιάδη. Εφαρµογή Μισθοδοσίας σε Clipper

Κεντρική Βιβλιοθήκη Ε.Μ.Π. Υλικό Σεμιναρίων (για προπτυχιακούς φοιτητές)

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Εργαστήριο Βάσεων Δεδομένων. Triggers

ΣΧΟΛΙΚΟΣ ΒΙΒΛΙΟΦΥΛΑΞ ΟΔΗΓΟΣ ΧΡΗΣΕΩΣ

KOHA ΧΡΗΣΤΕΣ ΜΙΑ ΠΛΟΗΓΗΣΗ ΣΤΗΝ ΟΘΟΝΗ ΤΟΥ ΧΡΗΣΤΗ

ΒΙΒΛΙΟ ΠΑΓΙΩΝ Ο ΗΓΙΕΣ ΧΡΗΣΗΣ ΓΙΑ ΤΟ CALCULUS ULTRA.

Σύντοµος Οδηγός της Qbasic. Πέρδος Αθανάσιος Καθηγητής Πληροφορικής

Ανοικτά Ακαδημαϊκά Μαθήματα

ΗΥ-150 Programming. Assignment 3. HY150 Programming, University of Crete

Η γλώσσα προγραμματισμού Strange

Οδηγός Χρήσης Μαθησιακών Πόρων Βιβλιοθήκης. Εισάγουμε τη σελίδα του Πανεπιστημίου Νεάπολις Πάφου ( ) και μετά επιλέγουμε το MENU

Εισαγωγή και επεξεργασία δεδοµένων

1. Άνοιγμα Και Κλείσιμο Της Εφαρμογής Φυλλομετρητή Ιστού (Internet Explorer)

ΜΗΧΆΝΟΡΓΆΝ^2ΣΗ Σ Δ 0 I I I ΠΡΟΓΡΑΜΜΑ ΔΙΑΧΕΙΡΙΣΗΣ ΒΙΒΛΙΟΘΗΚΗΣ

του και από αυτόν επιλέγουµε το φάκελο εµφανίζεται ένα παράθυρο παρόµοιο µε το ακόλουθο:

ΠΑΝΕΠΙΣΤΗΜΙΟ ΠΕΙΡΑΙΩΣ Τµήµα Ψηφιακών Συστηµάτων Μάθηµα: «Αντικειµενοστρεφής Προγραµµατισµός» 2 ο εξάµηνο, Εαρινή περίοδος

Οδηγίες για smartphone ή tablet με λογισμικό ios

Οδηγός χρήσης ηλεκτρονικού καταλόγου (Sierra)

ΥΠΟΥΡΓΕΙΟ ΟΙΚΟΝΟΜΙΚΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΠΛΗΡΟΦΟΡΙΑΚΩΝ ΣΥΣΤΗΜΑΤΩΝ ΓΕΝΙΚΗ ΓΡΑΜΜΑΤΕΙΑ ΔΗΜΟΣΙΩΝ ΕΣΟΔΩΝ. e-παράβολο

3. Σηµειώσεις Access. # Εισαγωγή ψηφίου ή κενού διαστήµατος. Επιτρέπονται τα ση-

Οδοραµα mobile ΑΠΟΘΗΚΗ

Ανοικτά Ακαδημαϊκά Μαθήματα

Οδηγίες Πρόσβασης στο EndNote Web. Πρόσβαση στο EndNote Web

Γνωριµία µε τη Microsoft Access

Βιβλιοθήκη Γυµνασίου Μαγούλας..Υποστήριξη ΑΒΕΚΤ ( )

Αρχεία Ένα αρχείο αποτελείται από μία σειρά ομοειδών δεδομένων που ονομάζονται λογικές εγγραφές (logical record)

Η εφαρμογή είναι βελτιστοποιημένη για όλες τις συσκευές ios και Android, με ios 9.x ή νεότερη έκδοση και Android 4.4 ή νεότερη έκδοση.

e-παράβολο Οδηγίες χρήσης Διαχείριση από υπαλλήλους Δημόσιου Φορέα - i -

MySQL stored procedures

Εισαγωγή 3D αντικειµένων. 'Εκδοση 7

Βάσεις δεδομένων. (10 ο μάθημα) Ηρακλής Βαρλάμης

Κων/νου Στυλιάδη. Visual Basic στην Access Κλήρωση Εξεταστών Υποψηφίων Οδηγών

Πώς θα χρησιμοποιήσω:

Χρήση του Ηλεκτρονικού Ταχυδροµείου µεαποµακρυσµένη σύνδεση

Οδηγίες εντύπου «Ενιαίο Τέλος Ακινήτων Φυσικών Προσώπων»

Τ.Ε.Ι. ΚΛΒΛΛΛΣ ΣΧΟΛΙΙ ΔΙΟΙΚΙΙΣΗΣ-ΟΙΚΟΝΟΜ1ΑΣ ΤΜΗΜΑ ΛΟΓΙΣΤΙΚΗΣ. Vipeo CLUB ΥΓΙΕΥΘΧΑΘΗΓΗΤΗΣ ΕΙΣΗΓΗΤΗΣ. ΜΕΤΔΑιΝΗΣ ΝΙΚΟΛΑΟΣ ΒΑΛΣΑΜΙΔΗΣ ΣΤΑΥΡΟΣ

ΙΕΥΘΥΝΣΗ ΛΙΜΕΝΙΚΩΝ ΥΠΟ ΟΜΩΝ

Αντικειμενοστρεφής Προγραμματισμός -Python. Κ.Π. Γιαλούρης

Κάθε ένα κελί θα πρέπει να περιέχει ένα μόνο στοιχείο δεδομένων, για παράδειγμα το όνομα σε ένα κελί, το επίθετο σε άλλο κελί.

Υπηρεσία Διανομής Συγγραμμάτων

Κων/νου Στυλιάδη Χρήστου Ιωάννου. Εφαρµογή Αποθήκης σε Pascal

Το Μοντέλο των Οντοτήτων Συσχετίσεων Entity Relationship Model. Νικόλαος Ζ. Ζάχαρης

Η γλώσσα προγραμματισμού EEL

GobiExport: Millennium Orders Γ Ρ Α Φ Ε Ι Ο Δ Ι Α Χ Ε Ι Ρ Ι Σ Η Σ Υ Λ Ι Κ Ο Υ - Τ Μ Η Μ Α Π Α Ρ Α Γ Γ Ε Λ Ι Ω Ν Ε Ν Τ Υ Π Ο Υ Υ Λ Ι Κ Ο Υ

Ο ΗΓΙΕΣ ΗΛΕΚΤΡΟΝΙΚΗΣ ΥΠΟΒΟΛΗΣ

Σεμινάρια Εκπαίδευση Προσωπικού

. Εργαστήριο Βάσεων Δεδομένων. Triggers

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

Συστήματα Αναμονής (Queuing Systems)

Μέρος 2 Κατασκευή Συντακτικού Αναλυτή

MEGASOFT ΤΜΗΜΑ ΥΠΟΣΤΗΡΙΞΗΣ. Οδηγός Ρυθµίσεων Συγχρονισµού PrismaWin Pos Sync

Εργαστήριο «Δίκτυα Υπολογιστών Ι»


ONLINE ΚΑΤΑΛΟΓΟΣ ΒΙΒΛΙΟΘΗΚΩΝ ΤΕΙ ΛΑΡΙΣΑΣ (OPAC) OPAC = Open Public Access Catalogue (Ανοιχτός ηµόσιος Κατάλογος) Ο ΗΓΟΣ ΧΡΗΣΗΣ

ACL Έλεγχος ικαιωµάτων. Σοφία Τζελέπη Σχ. Σύµβουλος Πληροφορικής

ΥΠΟΥΡΓΕΙΟ ΠΑΙ ΕΙΑΣ ΙΑ ΒΙΟΥ ΜΑΘΗΣΗΣ ΚΑΙ ΘΡΗΣΚΕΥΜΑΤΩΝ 1 ο ΓΕΝΙΚΟ ΛΥΚΕΙΟ ΚΟΖΑΝΗΣ ΣΧΟΛΙΚΗ ΒΙΒΛΙΟΘΗΚΗ Εσωτερικός Κανονισµός Μαθητών

Oδηγόs Xρήσης Mαθησιακών Πόρων Βιβλιοθήκης. Βιβλιοθήκη Πανεπιστημίου Νεάπολις

Εισαγωγή στο πρόγραμμα Microsoft word 2003

lab7 PASS -Δεν έχεις καθόλου σχόλια! Διάβασε το φυλλάδιο. PASS -Πολύ καλή εργασία µε σωστά και επεξηγηµατικά σχόλια. -Πρόσεξε την στοίχισή σου!

ΜΑΘΗΜΑ Προσθήκη Κειμένου. 2. Ελληνική Διάταξη Πληκτρολογίου ΣΤΟΧΟΙ:

ΚΟΗΑ ΧΡΗΣΤΕΣ ΑΝΑΖΗΤΗΣΗ/ ΚΑΤΑΧΩΡΙΣΗ/ ΕΠΕΞΕΡΓΑΣΙΑ/ ΑΝΑΝΕΩΣΗ ΚΑΡΤΑΣ/ΙΣΤΟΡΙΚΟ ΔΑΝΕΙΣΜΩΝ ΤΡΟΠΟΠΟΙΗΣΕΩΝ / ΣΤΑΤΙΣΤΙΚΑ

ΑΠΟΤΙΜΗΣΗ ΤΟΥ ΕΡΓΟΥ ΤΟΥ ΤΜΗΜΑΤΟΣ ΣΤΟΧΟΙ ΓΙΑ ΤΗΝ ΠΕΡΙΟΔΟ ΠΑΡΑΡΤΗΜΑ ΧΙ

ΔΗ Μ Ι Ο ΥΡ Γ Ι Α W I K I με τ η χρήση τ η ς υπ ηρεσίας h t t p : / id ot.com /

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

Οδηγίες χρήσης ιστοσελίδας VOLVO

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

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

ΠΛΗΚΤΡΟΛΟΓΙΟ. Η ελληνική διάταξη πλήκτρων είναι η παρακάτω (δεν υπάρχουν άλλες διατάξεις για το ελληνικό αλφάβητο):

Διάλεξη 2. Μεταβλητές - Δομές Δεδομένων - Eίσοδος δεδομένων - Έξοδος: Μορφοποίηση - Συναρτήσεις. Διοργάνωση : ΚΕΛ ΣΑΤΜ

1. Εισαγωγή στο ΟΠΣ - ΠΔΕ

α. Οι συμβολοσειρές είναι μια ακολουθία από χαρακτήρες. Μια συμβολοσειρά μπορεί να αποτελείται από περισσότερες από μία λέξεις.

ΠΕΡΙΕΧΟΜΕΝΑ. Εικονίδια ιαχείρισης Φορολογικών ηλώσεων. ηµιουργία Φορολογούµενου. ηµιουργία και υπολογισµός του εντύπου ΕΣΠ

Εργαστήριο «Τεχνολογία Πολιτισμικού Λογισμικού» Ενότητα. Επεξεργασία πινάκων

Προγραμματισμός ΙI (Θ)

Πώς εκτυπώνουμε μία λίστα εγγραφών από μία Access database (γενικός τρόπος)

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

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

PL/SQL. Κώστας Στεφανίδης

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

Οδηγίες χρήσης για την εφαρµογή Spot4U

2 Τοποθέτηση του τηλεφώνου 3 Γνωρίστε το τηλέφωνό σας

Τμήμα Μηχανολόγων Μηχανικών Πανεπιστήμιο Θεσσαλίας ΠΡΟΓΡΑΜΜΑΤΙΣΜΟΣ Η/Υ. Αρχεία Δεδομένων. Ιωάννης Λυχναρόπουλος Μαθηματικός, MSc, PhD

Αντίρριο, 14/03/2017 Προδιαγραφές Εργαστηριακής Εργασίας για το μάθημα «Μεταγλωττιστές»

ΠΑΝΕΠΙΣΤΗΜΙΟ ΙΩΑΝΝΙΝΩΝ ΤΜΗΜΑ ΜΑΘΗΜΑΤΙΚΩΝ

Ειδικά Θέματα Παραμετροποίησης. Ασφάλεια Εφαρμογής Εναρμόνιση με τον κανονισμό GDRP. Data Communication A.E.

Εγχειρίδιο Χρήσης για την εφαρμογή «Αναλυτική Καταγραφή Δικαιούχων Παραγωγών για τα Ειδικά Μέτρα Στήριξης στα Μικρά Νησιά Αιγαίου Πελάγους»

Βαθμός Σχόλια. lab PASS 1194 PASS 1238 PASS 1239 PASS

Αρχικά, μεταβαίνετε στην ομώνυμη επιλογή της Καρτέλας ΦΟΡΕΙΣ. Επιλέγοντας Βιβλιοθήκη Μονάδας εμφανίζεται η παρακάτω εικόνα «Λίστα βιβλίων».

ΗΜΙΟΥΡΓΙΑ ΙΣΤΟΣΕΛΙ ΑΣ ΣΤΟ MICROSOFT WORD

1. ΔΗΜΙΟΥΡΓΙΑ ΝΕΑΣ ΧΡΗΣΗΣ 2. ΚΑΤΑΡΤΙΣΗ ΠΡΟΫΠΟΛΟΓΙΣΜΟΥ

Βιβλιοθήκη Γυµνασίου Μαγούλας.Υποστήριξη ΑΒΕΚΤ ( )

Εκπαίδευση KOHA ΚΟΗΑ ΠΕΡΙΟΔΙΚΑ ΑΝΑΖΗΤΗΣΗ ΠΕΡΙΟΔΙΚΩΝ / ΠΕΡΙΛΗΨΗ ΑΠΟΚΤΗΜΑΤΩΝ / ΣΥΝΔΡΟΜΕΣ ΠΕΡΙΟΔΙΚΩΝ / ΠΑΡΑΛΑΒΗ ΤΕΥΧΩΝ / ΚΛΕΙΣΤΕΣ ΣΥΝΔΡΟΜΕΣ

Version X. Οδηγίες χρήσης

Ερευνητικό Αποθετήριο ΤΕΙ Ηπείρου. Οδηγίες κατάθεσης δημοσίευσης στο σύστημα Ερευνητικού Αποθετηρίου CRIS

Transcript:

Εφαρµογή Βιβλιοθήκης σε Clipper Φλώρινα, Φεβρουάριος 2000

ΤΑ ΑΡΧΕΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Θα δηµιουργηθεί ένα αρχείο βιβλιοθήκης µε όνοµα library.dbf, µε αρχείο ευρετηρίου (index) ως προς το πεδίο code_book και µε όνοµα αρχείου ευρετηρίου ind_libr.ntx. Το αρχείο αυτό θα περιέχει όλα τα στοιχεία των βιβλίων που βρίσκονται στη βιβλιοθήκη. Θα δηµιουργηθεί ένα αρχείο χρηστών µε όνοµα users.dbf, µε αρχείο ευρετηρίου ως προς το πεδίο code_user και µε όνοµα αρχείου ευρετηρίου ind_user.ntx. Το αρχείο αυτό θα περιέχει όλα τα στοιχεία των χρηστών που δανείζονται βιβλία από τη βιβλιοθήκη. Για να µπορεί να γίνει η παρακολούθηση των χρηστών που δανείστηκαν κάποια βιβλία, θα πρέπει να δηµιουργήσουµε κι ένα αρχείο δανεισµού βιβλίων µε όνοµα book.dbf, µε αρχείο ευρετηρίου ως προς τα πεδία code_book+code_user και µε όνοµα αρχείου ευρετηρίου ind_book.ntx. Τα πεδία που θα πρέπει να περιέχουν τα αρχεία είναι τα εξής : Αρχείο library.dbf Όνοµα Περιγραφή Τύπος Μέγεθος code_book κωδικός βιβλίου N 4 category κωδικός κατ.βιβλίου N 2 title τίτλος βιβλίου C 30 author συγγραφέας C 25 publisher εκδότης C 20 year_publ έτος έκδοσης N 6 ISBN διεθνής κωδικός C 12 price τιµή βιβλίου N 6 thesi θέση στη βιβλιοθήκη C 12 date_katax ηµεροµηνία καταχώρησης D 8 Οι κωδικοί κατηγορίας βιβλίου που θα χρησιµοποιηθούν είναι οι εξής: 01 Πληροφορικής 02 Ιστορικά 03 Κοινωνικά 04 Οικονοµικά 05 Λογοτεχνικά 06 Επιστηµονικά 07 Αυτοκινήτου 08 Λεξικά 09 Εγκυκλοπαίδειες 10 Διάφορα 2

Μόλις δώσουµε τον κωδικό κατηγορίας του βιβλίου, το πρόγραµµα θα εµφανίζει δίπλα την περιγραφή της κατηγορίας, σύµφωνα µε τον παραπάνω πίνακα. Ο διεθνής κωδικός του βιβλίου (ISBN), έχει την εξής µορφή : 900-10-2-500 825-252-3 Η θέση του βιβλίου στη βιβλιοθήκη έχει την εξής µορφή : 01-Α-12-002 03-Β-15-013 όπου τα δύο πρώτα ψηφία δείχνουν τον φοριαµό, το γράµµα την πλευρά, τα δύο επόµενα ψηφία το ράφι και τα τελευταία την αύξουσα αρίθµηση. Αρχείο users.dbf Όνοµα Περιγραφή Τύπος Μέγεθος code_user κωδικός χρήστη N 4 eponymo επώνυµο C 20 onoma όνοµα C 10 address διεύθυνση C 25 tk ΤΚ C 6 poli πόλη C 15 phone τηλέφωνο C 10 adt Αριθµός Δελτίου Ταυτ. C 8 Το πεδίο tk θα έχει την εξής µορφή : 999 99, δηλ. τρία ψηφία, ένας κενός χαρακτήρας και δύο ψηφία. Το πεδίο adt θα έχει την εξής µορφή : Α 999999, δηλ. ένα γράµµα, έ- νας κενός χαρακτήρας και 6 ψηφία. Αρχείο book.dbf Όνοµα Περιγραφή Τύπος Μέγεθος code_book κωδικός βιβλίου N 4 code_user κωδικός χρήστη N 4 date_dan ηµερ/νία δανεισµού D 8 date_retur ηµερ/νία οφειλ. επιστρ. D 8 date_epist ηµερ/νία επιστροφής D 8 Τα πεδία code_book και code_user θα αποτελούν µαζί το πεδίο-κλειδί αυτού του αρχείου, δηλ. δεν θα µπορεί να υπάρχουν δύο ή περισσότερες καταχωρήσεις δανεισµού βιβλίων µε τον ίδιο κωδικό βιβλίου και τον ίδιο κωδικό χρήστη. Μόλις δοθούν οι κωδικοί βιβλίου και χρήστη, το πρόγραµµα θα εµφανίζει τον τίτλο του βιβλίου και το επώνυµο και το όνοµα του χρήστη. 3

Η ΛΕΙΤΟΥΡΓΙΑ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ Το πρόγραµµα θα εµφανίζει αρχικά ένα µενού µε την εξής µορφή : ΒΙΒΛΙΟΘΗΚΗ ΙΕΚ ΦΛΩΡΙΝΑΣ ΒΙΒΛΙΑ ΧΡΗΣΤΕΣ ΔΑΝΕΙΣΜΟΙ ΒΙΒΛΙΩΝ ΕΞΟΔΟΣ Ανάλογα µε την επιλογή που θα κάνουµε, θα εµφανίζεται ένα από τα επόµενα µενού : ΣΤΟΙΧΕΙΑ ΒΙΒΛΙΩΝ ΚΑΤΑΧΩΡΗΣΗ ΒΙΒΛΙΩΝ ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΒΙΒΛΙΩΝ ΕΜΦΑΝΙΣΗ ΒΙΒΛΙΩΝ ΑΝΑ ΚΑΤΗΓΟΡΙΑ ΔΙΑΓΡΑΦΗ ΒΙΒΛΙΩΝ ΕΠΙΣΤΡΟΦΗ ΣΤΟΙΧΕΙΑ ΧΡΗΣΤΩΝ ΚΑΤΑΧΩΡΗΣΗ ΧΡΗΣΤΩΝ ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΧΡΗΣΤΩΝ ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΩΝ ΕΠΙΣΤΡΟΦΗ ΣΤΟΙΧΕΙΑ ΔΑΝΕΙΣΜΕΝΩΝ ΒΙΒΛΙΩΝ ΚΑΤΑΧΩΡΗΣΗ ΔΑΝ. ΒΙΒΛΙΩΝ ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΔΑΝ. ΒΙΒΛΙΩΝ ΔΙΑΓΡΑΦΗ ΔΑΝ. ΒΙΒΛΙΩΝ ΛΙΣΤΑ ΔΑΝ. ΒΙΒΛΙΩΝ ΛΙΣΤΑ ΒΙΒΛΙΩΝ ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΕΠΙΣΤΡΑΦΟΥΝ ΕΠΙΣΤΡΟΦΗ 4

/* Πρόγραµµα menu_lib.prg - το αρχικό µενού της εφαρµογής */ do while.t. /* καθάρισµα της οθόνης */ set bell on /* ενεργοποιεί το καµπανάκι */ set confirm off /* δεν χρειάζεται να πατάµε το <enter> */ set date to british /* στις ηµεροµηνίες εµφανίζεται πρώτα η µέρα */ set wrap on /* τα µενού είναι αναδιπλούµενα */ @ 1,1 say padc("βιβλιοθηκη ΙΕΚ ΦΛΩΡΙΝΑΣ", 80) @ 2,1 say padc(replicate('-', 23), 80) @ 10,20 prompt "ΒΙΒΛΙΑ" @ 11,20 prompt "ΧΡΗΣΤΕΣ" @ 12,20 prompt "ΔΑΝΕΙΣΜΟΙ ΒΙΒΛΙΩΝ" @ 13,20 prompt "ΕΞΟΔΟΣ" menu to menu_choice do case case menu_choice == 1 libr() /* υποµενού βιβλίων */ case menu_choice == 2 users() /* υποµενού χρηστών */ case menu_choice == 3 books() /* υποµενού δανεισµένων βιβλίων */ case menu_choice == 0.or. menu_choice == 4 quit /* τέλος της εφαρµογής */ endcase enddo /* τέλος του menu_lib.prg */ 5

/* το υποµενού για τα βιβλία */ procedure libr() @ 1,1 say padc("στοιχεια ΒΙΒΛΩΝ", 80) @ 2,1 say padc(replicate('-',16), 80) @ 10,20 prompt "ΚΑΤΑΧΩΡΗΣΗ ΒΙΒΛΙΩΝ" @ 11,20 prompt "ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΒΙΒΛΙΩΝ" @ 12,20 prompt "ΕΜΦΑΝΙΣΗ ΒΙΒΛΙΩΝ ΑΝΑ ΚΑΤΗΓΟΡΙΑ" @ 13,20 prompt "ΔΙΑΓΡΑΦΗ ΒΙΒΛΙΩΝ" @ 14,20 prompt "ΕΠΙΣΤΡΟΦΗ" menu to libr_choice do case case libr_choice == 1 do kat_libr /* πρόγραµµα kat_libr.prg */ case libr_choice == 2 do pro_libr /* πρόγραµµα pro_libr.prg */ case libr_choice == 3 do cat_libr /* πρόγραµµα cat_libr.prg */ case libr_choice == 4 do del_libr /* πρόγραµµα del_libr.prg */ case libr_choice == 0.or. libr_choice == 5 return /* επιστροφή στο βασικό µενού */ endcase return /* το υποµενού για τους χρήστες */ procedure users() @ 1,1 say padc("στοιχεια ΧΡΗΣΤΩΝ", 80) @ 1,2 say padc(replicate('-', 16), 80) @ 10,20 prompt "ΚΑΤΑΧΩΡΗΣΗ ΧΡΗΣΤΩΝ" @ 11,20 prompt "ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΧΡΗΣΤΩΝ" @ 12,20 prompt "ΔΙΑΓΡΑΦΗ ΧΡΗΣΤΩΝ" @ 13,20 prompt "ΕΠΙΣΤΡΟΦΗ" menu to user_choice do case case user_choice == 1 do kat_user /* πρόγραµµα kat_user.prg */ case user_choice == 2 do pro_user /* πρόγραµµα pro_user.prg */ case user_choice == 3 do del_user /* πρόγραµµα del_user.prg */ case user_choice == 0.or. user_choice == 4 return /* επιστροφή στο βασικό µενού */ endcase return 6

/* το υποµενού για τους δανεισµούς των βιβλίων */ procedure books() @ 1, 1 say padc("στοιχεια ΔΑΝΕΙΣΜΕΝΩΝ ΒΙΒΛΩΝ", 80) @ 1, 2 say padc(replicate('-', 28), 80) @ 10, 20 prompt "ΚΑΤΑΧΩΡΗΣΗ ΔΑΝ. ΒΙΒΛΙΩΝ" @ 11, 20 prompt "ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΔΑΝ. ΒΙΒΛΙΩΝ" @ 12, 20 prompt "ΔΙΑΓΡΑΦΗ ΔΑΝ. ΒΙΒΛΙΩΝ" @ 13, 20 prompt "ΛΙΣΤΑ ΔΑΝ. ΒΙΒΛΙΩΝ " @ 14, 20 prompt "ΒΙΒΛΙΑ ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΕΠΙΣΤΡΑΦΟΥΝ" @ 15,20 prompt "ΕΠΙΣΤΡΟΦΗ" menu to book_choice do case case book_choice == 1 do kat_book /* πρόγραµµα kat_book.prg */ case book_choice == 2 do pro_book /* πρόγραµµα pro_book.prg */ case book_choice == 3 do del_book /* πρόγραµµα del_book.prg */ case book_choice == 4 do dan_book /* πρόγραµµα dan_bookr.prg */ case book_choice == 5 do of_book /* πρόγραµµα of_book.prg */ case book_choice == 0.or. book_choice == 6 return /* επιστροφή στο βασικό µενού */ endcase return 7

/* Πρόγραµµα kat_libr.prg - καταχώρηση καινούργιων βιβλίων */ set bell on set confirm off set date to british declare KAT[10] KAT[1]="Πληροφορικής" KAT[2]="Ιστορικά" KAT[3]="Κοινωνικά" KAT[4]="Οικονοµικά" KAT[5]="Λογοτεχνικά" KAT[6]="Επιστηµονικά" KAT[7]="Αυτοκινήτου" KAT[8]="Λεξικά" KAT[9]="Εγκυκλοπαίδειες" KAT[10]="Διάφορα" use library /* άνοιγµα του αρχείου των βιβλίων */ index on code_book to ind_libr /* δηµιουργία του αρχείου ευρετηρίου (index) ως προς τον κωδικό βιβλίου */ @ 1, 1 say "ΚΑΤΑΧΩΡΗΣΗ ΒΙΒΛΙΩΝ" m_code_book=0 m_category=0 m_title=space(30) m_author= space(25) m_publisher= space(20) m_year_publ=0 m_isbn= space(15) m_price=0 m_thesi= space(12) m_date_katax=ctod(" / / ") do while.t. @ 4,1 clear to 24,80 /* καθάρισµα παλιών στοιχείων */ @ 3,1 say "Κωδικός Βιβλίου : " get m_code_book picture '9999' seek m_code_book if m_code_book = 9999 exit if found() @ 20,10 say "Ο Κωδικός υπάρχει ήδη" tone(300,50) loop 8

@ 04, 1 say "Κατηγορία : " get m_category picture '99' if m_category <> 0 @ 4, 40 say KAT[m_category] @ 05,1 say "Τίτλος : " get m_title picture '@X' @ 06,1 say "Συγγραφέας : " get m_author picture '@X' @ 07,1 say "Εκδότης : " get m_publisher picture '@X' @ 08,1 say "Έτος Έκδ. : " get m_year_publ picture '9999' @ 09,1 say "ISBN : " get m_isbn picture '@X' @ 10,1 say "Τιµή : " get m_price picture '999999' @ 11,1 say "Θέση : " get m_thesi picture '@X' @ 12,1 say "Ηµ/νία Κατ. : " get m_date_katax append blank replace code_book with m_code_book replace category with m_category replace title with m_title replace author with m_author replace publisher with m_publisher replace year_publ with m_year_publ replace ISBN with m_isbν replace price with m_price replace thesi with m_thesi replace date_katax with m_date_katax enddo close return /* επιστροφή στο πρόγραµµα menu_lib.prg */ /* ο πίνακας ΚΑΤ[10] περιέχει τις περιγραφές των 10 κατηγοριών βιβλίων */ 9

/* Πρόγραµµα pro_libr.prg - προβολή/διόρθωση βιβλίων */ set bell on set confirm off set date to british declare KAT[10] KAT[1]="Πληροφορικής" KAT[2]="Ιστορικά" KAT[3]="Κοινωνικά" KAT[4]="Οικονοµικά" KAT[5]="Λογοτεχνικά" KAT[6]="Επιστηµονικά" KAT[7]="Αυτοκινήτου" KAT[8]="Λεξικά" KAT[9]="Εγκυκλοπαίδειες" KAT[10]="Διάφορα" use library index on code_book to ind_libr @ 1, 1 say "ΠΡΟΒΟΛΗ/ΔΙΟΡΘΩΣΗ ΒΙΒΛΙΩΝ" m_code_book=0 m_category=0 m_title=space(30) m_author= space(25) m_publisher= space(20) m_year_publ=0 m_isbn= space(15) m_price=0 m_thesi= space(12) m_date_katax=ctod(" / / ") do while.t. @ 4,1 clear to 24,80 /* καθάρισµα παλιών στοιχείων */ @ 3,1 say "Κωδικός Βιβλίου : " get m_code_book picture '9999' seek m_code_book if m_code_book = 9999 exit if.not. found() @ 20,10 say "Ο Κωδικός δεν υπάρχει" tone(300, 50) loop 10

m_code_book=code_book m_category=category m_title=title m_author=author m_publisher=publisher m_year_publ=year_publ m_isbn=isbn m_price=price m_thesi=thesi m_date_katax=date_katax @ 04,1 say "Κατηγορία : " get m_category picture '99' @ 04, 33 say KAT[m_category] @ 05,1 say "Τίτλος : " get m_title picture '@X' @ 06,1 say "Συγγραφέας : " get m_author picture '@X' @ 07,1 say "Εκδότης : " get m_publisher picture '@X' @ 08,1 say "Έτος Έκδ. : " get m_year_publ picture '9999' @ 09,1 say "ISBN : " get m_isbn picture '@X' @ 10,1 say "Τιµή : " get m_price picture '999999' @ 11,1 say "Θέση : " get m_thesi picture '@X' @ 12,1 say "Ηµ/νία Κατ. : " get m_date_katax replace code_book with m_code_book replace category with m_category replace title with m_title replace author with m_author replace publisher with m_publisher replace year_publ with m_year_publ replace ISBN with m_isbn replace price with m_price replace thesi with m_thesi replace date_katax with m_date_katax enddo close return /* επιστροφή στο πρόγραµµα menu_lib.prg */ 11

/* Πρόγραµµα del_libr.prg - διαγραφή βιβλίων */ set bell on set confirm off set date to british declare KAT[10] KAT[1]="Πληροφορικής" KAT[2]="Ιστορικά" KAT[3]="Κοινωνικά" KAT[4]="Οικονοµικά" KAT[5]="Λογοτεχνικά" KAT[6]="Επιστηµονικά" KAT[7]="Αυτοκινήτου" KAT[8]="Λεξικά" KAT[9]="Εγκυκλοπαίδειες" KAT[10]="Διάφορα" use library index on code_book to ind_libr @ 1, 1 say "ΔΙΑΓΡΑΦΗ ΒΙΒΛΙΩΝ" m_code_book=0 m_category=0 m_title=space(30) m_author= space(25) m_publisher= space(20) m_year_publ=0 m_isbn= space(15) m_price=0 m_thesi= space(12) m_date_katax=ctod(" / / ") do while.t. @ 4,1 clear to 24,80 /* καθάρισµα παλιών στοιχείων */ @ 3, 1 say "Κωδικός Βιβλίου : " get m_code_book picture '9999' seek m_code_book if m_code_book=9999 exit if.not. found() @ 20,10 say "Ο Κωδικός δεν υπάρχει" tone(300, 50) loop 12

m_code_book=code_book m_category=category m_title=title m_author=author m_publisher=publisher m_year_publ=year_publ m_isbn=isbn m_price=price m_thesi=thesi m_date_katax=date_katax @ 04,1 say "Κατηγορία : " get m_category picture '99' @ 04,33 say KAT[m_category] @ 05,1 say "Τίτλος : " get m_title picture '@X' @ 06,1 say "Συγγραφέας : " get m_author picture '@X' @ 07,1 say "Εκδότης : " get m_publisher picture '@X' @ 08,1 say "Έτος Έκδ. : " get m_year_publ picture '9999' @ 09,1 say "ISBN : " get m_isbn picture '@X' @ 10,1 say "Τιµή : " get m_price picture '999999' @ 11,1 say "Θέση : " get m_thesi picture '@X' @ 12,1 say "Ηµ/νία Κατ. : " get m_date_katax @ 20,5 say "Να διαγραφεί;" apantisi = inkey(0) if apantisi = asc("n").or. apantisi = asc("n").or. apantisi = asc("ν").or. apantisi = asc("ν") replace code_book with 0 replace category with " " replace title with " " replace author with " " replace publisher with " " replace year_publ with " " replace ISBN with 0 replace price with 0 replace thesi with " " replace date_katax with ctod(" / / ") delete /* διαγραφή της τρέχουσας εγγραφής */ enddo close return /* επιστροφή στο πρόγραµµα menu_lib.prg */ 13

/* Πρόγραµµα cat_libr.prg - εµφάνιση βιβλίων ανά κατηγορία */ set bell on set confirm off set date to british declare KAT[10] KAT[1]="Πληροφορικής" KAT[2]="Ιστορικά" KAT[3]="Κοινωνικά" KAT[4]="Οικονοµικά" KAT[5]="Λογοτεχνικά" KAT[6]="Επιστηµονικά" KAT[7]="Αυτοκινήτου" KAT[8]="Λεξικά" KAT[9]="Εγκυκλοπαίδειες" KAT[10]="Διάφορα" use library index on category to libr_cat /* δηµιουργία αρχείου ευρετηρίου (index) ως προς το πεδίο κωδ.κατηγορίας */ old_category = -1 /* η µεταβλητή old_category περιέχει τον κωδικό κατηγορίας της εγγραφής που ήδη εµφανίστηκε και στην αρχή τίθεται ίση µε -1 για να είναι σίγουρα διάφορη από τον κωδικό κατηγορίας της 1 ης εγγραφής - όταν αυτή η µεταβλητη βρεθεί διάφορη της κατηγορίας της τρέχουσας εγγραφής, αυτό θα σηµαίνει ότι αλλάξαµε κατηγορία βιβλίου */ line = 7 /* ο βασικός τίτλος του προγράµµατος και οι άλλοι υπότιτλοι µαζί µε τις υπογραµµίσεις καταλαµβάνουν 6 γραµµές, έτσι η εµφάνιση των στοιχείων των βιβλίων θα αρχίζει από την 7 η γραµµή - η µεταβλητή line είναι ο αριθµός της γραµµής όπου θα τυπωθούν τα στοιχεία του τρέχοντος βιβλίου */ do while.not. eof() /* αν αλλάξει ο κωδικός κατηγορίας του βιβλίου */ if old_category <> category @ 1, 1 say padc("βιβλια ΑΝΑ ΚΑΤΗΓΟΡΙΑ", 80) @ 2, 1 say padc(replicate('_', 31), 80) @ 3,10 say category /* κωδικός κατηγορίας */ @ 3,13 say '-' @ 3, 16 say kat[category] /* περιγραφή κατηγορίας */ @ 4,10 say replicate('_', 15) @ 5, 1 say "ΚΩΔ.ΒΙΒΛΙΟΥ" @ 5,11 say "ΤΙΤΛΟΣ" @ 5,31 say "ΣΥΓΓΡΑΦΕΑΣ" @ 5,41 say "ΕΚΔΟΤΗΣ " 14

@ 6, 1 say replicate('_', 60) line = 7 /* εµφάνιση στοιχείων βιβλίου τρέχουσας εγγραφής */ @ line,1 say code_book @ line,11 say title @ line,31 say author @ line,41 say publisher if line < 24 line = line+1 else /* είµαστε στο κάτω όριο της οθόνης */ wait @ 7, 1 clear to 24, 80 /* καθάρισµα τµήµατος της οθόνης */ line = 7 old_category = category skip /* πάµε στην επόµενη εγγραφή */ if old_category <> category wait /* αναµονή για την αλλαγή της κατηγορίας */ enddo close return /* επιστροφή στο πρόγραµµα menu_lib.prg */ 15

/* Πρόγραµµα kat_user.prg - καταχώρηση στοιχείων χρηστών */ set bell on set confirm off set date to british use users index on code_user to ind_user @ 1, 1 say padc("καταχωρηση ΧΡΗΣΤΩΝ") @ 2, 1 say padc(replicate('_', 18), 80) m_code_user=0 m_eponymo=space(20) m_onoma= space(10) m_address= space(25) m_tk= space(6) m_poli= space(15) m_phone= space(10) m_adt= space(8) do while.t. @ 4, 1 clear to 24, 80 /* καθαρίζει ένα τµήµα της οθόνης */ @ 3, 1 SAY "Κωδικός Χρήστη : " get m_code_user picture '9999' seek m_code_user if m_code_user = 9999 exit if found() @ 20, 10 say "Ο Κωδικός υπάρχει" tone(300, 50) loop @ 4,1 say "Επώνυµο: " get m_eponymo picture '@A' @ 5,1 say "Όνοµα : " get m_onoma picture '@A' @ 6,1 say "Διεύθυνση : " get m_address picture '@X' @ 7,1 say "ΤΚ : " get m_tk picture '999 99' @ 8,1 say "Πόλη : " get m_poli picture '@A' @ 9,1 say "Τηλέφωνο : " get m_phone picture '@X' @10,1 say "ΑΔΤ : " get m_adt picture 'A 999999' 16

append blank replace code_user with m_code_user replace eponymo with m_eponymo replace onoma with m_onoma replace address with m_address replace tk with m_tk replace poli with m_poli replace phone with m_phone replace adt with m_adt enddo close return 17

/* Πρόγραµµα pro_user.prg - προβολή/διόρθωση στοιχείων χρηστών */ set bell on set confirm off set date to british use users index on code_user to ind_user @ 1, 1 say padc("προβολη/διορθωση ΧΡΗΣΤΩΝ", 80) @ 2, 1 say padc(replicate('_', 24), 80) m_code_user=0 m_eponymo=space(20) m_onoma= space(10) m_address= space(25) m_tk= space(6) m_poli= space(15) m_phone= space(10) m_adt= space(8) do while.t. @ 4,1 clear to 24,80 @ 3,1 SAY "Κωδικός Χρήστη : " get m_code_user picture '9999' seek m_code_user if m_code_user=9999 exit if.not. found() @ 20, 10 say "Ο Κωδικός δεν υπάρχει" tone(300, 50) loop m_code_user=code_user m_eponymo=eponymo m_onoma=onoma m_address=address m_tk=tk m_poli=poli m_phone=phone m_adt=adt 18

@ 4,1 say "Επώνυµο: " get m_eponymo picture '@A' @ 5,1 say "Όνοµα : " get m_onoma picture '@A' @ 6,1 say "Διεύθυνση : " get m_address picture '@X' @ 7,1 say "ΤΚ : " get m_tk picture '999 99' @ 8,1 say "Πόλη : " get m_poli picture '@A' @ 9,1 say "Τηλέφωνο : " get m_phone picture '@X' @10,1 say "ΑΔΤ : " get m_adt picture 'A 999999' replace code_user with m_code_user replace eponymo with m_eponymo replace onoma with m_onoma replace address with m_address replace tk with m_tk replace poli with m_poli replace phone with m_phone replace adt with m_adt enddo close return 19

/* Πρόγραµµα del_user.prg - διαγραφή χρηστών */ set bell on set confirm off set date to british use users index on code_user to ind_user @ 1, 1 say padc("διαγραφη ΧΡΗΣΤΩΝ", 80) @ 2, 1 say padc(replicate('_', 16), 80) m_code_user=0 m_eponymo=space(20) m_onoma=space(10) m_address=space(25) m_tk=space(6) m_poli=space(15) m_phone=space(10) m_adt=space(8) do while.t. @ 4, 1 clear to 24, 80 @ 3, 1 say "Κωδικός Χρήστη : " get m_code_user picture '9999' seek m_code_user if m_code_user = 9999 exit if.not. found() @ 20, 10 say "Ο Κωδικός δεν υπάρχει" tone(300, 50) loop m_code_user=code_user m_eponymo=eponymo m_onoma=onoma m_address=address m_tk=tk m_poli=poli m_phone=phone m_adt=adt 20

@ 4,1 say "Επώνυµο: " get m_eponymo picture '@A' @ 5,1 say "Όνοµα : " get m_onoma picture '@A' @ 6,1 say "Διεύθυνση : " get m_address picture '@X' @ 7,1 say "ΤΚ : " get m_tk picture '999 99' @ 8,1 say "Πόλη : " get m_poli picture '@A' @ 9,1 say "Τηλέφωνο : " get m_phone picture '@X' @10,1 say "ΑΔΤ : " get m_adt picture 'A 999999' @ 20,5 say "Να διαγραφεί;" apantisi=inkey(0) if apantisi=asc("n").or. apantisi=asc("n").or. apantisi=asc("ν").or. apantisi=asc("ν") replace code_user with 0 replace eponymo with " " replace onoma with " " replace address with " " replace tk with " " replace poli with " " replace phone with " " replace adt with " " delete enddo close return 21

/* Πρόγραµµα kat_book.prg - καταχώρηση δανεισµού βιβλίων */ set bell on set confirm off set date to british use book index on code_book+code_user to ind_book @ 1, 1 say padc("καταχωρηση ΔΑΝΕΙΣΜΟΥ ΒΙΒΛΙΩΝ", 80) @ 2, 1 say padc(replicate('-', 28), 80) m_code_book=0 m_code_user=0 m_date_dan=date() /* η σηµερινή ηµερ. είναι συνήθως η ηµερ. δαν. */ m_date_retur= ctod(" / / ") /* ηµεροµηνία οφειλ. επιστροφής */ m_date_epist= ctod(" / / ") /* ηµεροµηνία επιστροφής */ do while.t. @ 5, 1 clear to 24, 80 @ 3, 1 say "Κωδικός Βιβλίου : " get m_code_book picture '9999' @ 4, 1 say "Κωδικός Χρήστη : " get m_code_user picture '9999' seek m_code_book+m_code_user /* δύο πεδία για το πεδίο-κλειδί */ if m_code_book = 9999 exit if found() @ 20, 10 say "Ο Κωδικός υπάρχει" tone(300, 50) loop @ 5, 1 say "Ηµ/νία Δανεισµού @ 6, 1 say "Ηµ/νία Οφ. Επιστρ. @ 7, 1 say "Ηµ/νία Επιστροφής : " get m_date_dan : " get m_date_retur : " get m_date_epist append blank replace code_book with m_code_book replace code_user with m_code_user replace date_dan with m_date_dan replace date_retur with m_date_retur replace date_epist with m_date_epist enddo close return 22

/* Πρόγραµµα pro_book.prg - προβολή/διόρθωση δανεισµού βιβλίων */ set bell on set confirm off set date to british use book index on code_book+code_user to ind_book @ 1, 1 say padc("προβολη/διορθωση ΔΑΝΕΙΣΜΟΥ ΒΙΒΛΙΩΝ", 80) @ 2, 1 say padc(replicate('-', 34), 80) m_code_book=0 m_code_user=0 m_date_dan=ctod(" / / ") m_date_retur=ctod(" / / ") m_date_epist=ctod(" / / ") do while.t. @ 5, 1 clear to 24,80 @ 3, 1 say "Κωδικός Βιβλίου @ 4, 1 say "Κωδικός Χρήστη seek m_code_book+m_code_user : " get m_code_book picture '9999' : " get m_code_user picture '9999' if m_code_book = 9999 exit if.not. found() @ 20, 10 say "Ο Κωδικός δεν υπάρχει" tone(300, 50) loop m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist @ 5, 1 SAY "Ηµ/νία Δανεισµού : " get m_date_dan @ 6, 1 SAY "Ηµ/νία Οφ.Επιστρ. : " get m_date_retur @ 7, 1 SAY "Ηµ/νία Επιστροφής : " get m_date_epist replace code_book with m_code_book replace code_user with m_code_user replace date_dan with m_date_dan replace date_retur with m_date_retur replace date_epist with m_date_epist enddo close return 23

/* Πρόγραµµα del_book.prg - διαγραφή δανεισµού βιβλίων */ set bell on set confirm off set date to british use book index on code_book+code_user to ind_book @ 1, 1 say padc( "ΔΙΑΓΡΑΦΗ ΔΑΝΕΙΣΜΟΥ ΒΙΒΛΙΩΝ", 80) @ 2, 1 say padc(replicate('-', 26), 80) m_code_book=0 m_code_user=0 do while.t. @ 5, 1 clear to 24, 80 @ 3, 1 say "Κωδικός Βιβλίου : " get m_code_book picture '9999' @ 4, 1 say "Κωδικός Χρήστη : " get m_code_user picture '9999' seek m_code_book+m_code_user if m_code_book = 9999 exit if.not. found() @ 20, 10 say "Ο Κωδικός δεν υπάρχει" tone(300, 50) loop m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist @ 5, 1 say "Ηµ/νία Δανεισµού : " get m_date_dan @ 6, 1 say "Ηµ/νία Οφ.Επιστρ. : " get m_date_retur @ 7, 1 say "Ηµν/ία Επιστροφής : " get m_date_epist @ 20, 5 say "Να διαγραφεί;" apantisi=inkey(0) if apantisi=asc("n").or. apantisi=asc("n").or. apantisi=asc("ν").or. apantisi=asc("ν") replace code_book with 0 replace code_user with 0 replace date_dan with ctod(" / / ") replace date_retur with ctod(" / / ") replace date_epist with ctod(" / / ") delete enddo close return 24

/* Πρόγραµµα dan_book.prg - λίστα δανεισµένων βιβλίων */ set bell on set confirm off set date to british /* ανοίγουµε και τα τρία αρχεία µαζί µε τα αρχεία ευρετηρίου τους */ use library index on code_book to ind_libr use users new index on code_user to ind_users use book new index on code_book+code_user to ind_book @ 1, 01 say padc("λιστα ΔΑΝΕΙΣΜΕΝΩΝ ΒΙΒΛΙΩΝ", 80) @ 2, 01 say padc(replicate('-', 25), 80) @ 3, 01 say "Κωδ.Βιβλ." @ 3, 11 say "Τίτλος" @ 3, 25 say "Κωδ.Χρ." @ 3, 35 say "Επώνυµο Χρ." @ 3, 50 say "Ηµ/νία Δαν." @ 3, 60 say "Ηµ/νία Επιστρ." @ 4, 01 say replicate( -, 70) select book m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist line = 5 /* η εµφάνιση των στοιχείων αρχίζει από την 5 η γραµµή */ do while.not.eof() @ line, 01 say m_code-book @ line, 11 say m_code_user @ line, 25 say m_date_dan @ line, 35 say m_date_retur /* πάµε στο αρχείο χρηστών για να πάρουµε το επώνυµο του χρήστη */ select users seek m_code_user @ line, 35 say eponymo /* πάµε στο αρχείο βιβλίων για να πάρουµε τον τίτλο του βιβλίου */ select library seek m_code_book @ line, 11 say title 25

/* πρέπει να επιστρέψουµε στο αρχείο δανεισµένων βιβλίων */ select book skip /* πάµε στην επόµενη εγγραφή */ /* διαβάζουµε τις τιµές των πεδίων σε αντίστοιχες µεταβλητές */ m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist line = line + 1 /* πάµε στην επόµενη γραµµή */ /* αν φθάσουµε στο τέλος της οθόνης */ if line = 24 wait /* περιµένει µέχρι να πατήσουµε ένα πλήκτρο */ @ 5, 1 clear to 24, 80 /* καθαρίζουµε ένα µέρος της οθόνης */ line = 5 enddo /* πρέπει να περιµένουµε, σε περίπτωση που ο αριθµός των δανεισµένων βιβλίων είναι µικρότερος του 24 και δεν γεµίσουν µία οθόνη */ wait close return 26

/* Πρόγραµµα of_book.prg - λίστα δανεισµένων βιβλίων που δεν έχουν επιστραφεί, ενώ όφειλαν */ set bell on set confirm off set date to british /* ανοίγουµε και τα τρία αρχεία µαζί µε τα αρχεία ευρετηρίου τους */ use library index on code_book to ind_libr use users new index on code_user to ind_users use book new index on code_book+code_user to ind_book @ 1, 01 say padc("λιστα ΔΑΝΕΙΣΜΕΝΩΝ ΒΙΒΛΙΩΝ ΠΟΥ ΠΡΕΠΕΙ ΝΑ ΕΠΙΣΤΡΑΦΟΥΝ", 80) @ 2, 01 say padc(replicate('-', 49), 80) @ 3, 01 say "Κωδ.Βιβλ." @ 3, 11 say "Τίτλος" @ 3, 25 say "Κωδ.Χρ." @ 3, 35 say "Επώνυµο Χρ." @ 3, 50 say "Ηµ/νία Δαν." @ 3, 60 say "Ηµ/νία Επιστρ." @ 4, 01 say replicate( -, 70) select book m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist line = 5 /* η εµφάνιση των στοιχείων αρχίζει από την 5 η γραµµή */ do while.not.eof() /* αν η ηµεροµηνία οφειλόµενης επιστροφής (date_retur) είναι µικρότερη από τη σηµερινή ηµεροµηνία (date()), πρέπει να εµφανιστούν τα στοιχεία του δανεισµένου βιβλίου και του χρήστη που το δανείστηκε */ if m_date_retur < date() @ line, 01 say m_code-book @ line, 11 say m_code_user @ line, 25 say m_date_dan @ line, 35 say m_date_retur /* πάµε στο αρχείο χρηστών για να πάρουµε το επώνυµο του χρήστη */ select users seek m_code_user @ line, 35 say eponymo 27

/* πάµε στο αρχείο βιβλίων για να πάρουµε τον τίτλο του βιβλίου */ select library seek m_code_book @ line, 11 say title /* πρέπει να επιστρέψουµε στο αρχείο δανεισµένων βιβλίων */ select book skip /* πάµε στην επόµενη εγγραφή */ /* διαβάζουµε τις τιµές των πεδίων σε αντίστοιχες µεταβλητές */ m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist line = line + 1 /* πάµε στην επόµενη γραµµή */ /* αν φθάσουµε στο τέλος της οθόνης */ if line = 24 wait /* περιµένει µέχρι να πατήσουµε ένα πλήκτρο */ @ 5, 1 clear to 24, 80 /* καθαρίζουµε ένα µέρος της οθόνης */ line = 5 /* το else θα εκτελεσθεί σε περίπτωση που η ηµεροµηνία οφειλόµενης επιστροφής είναι µεγαλύτερη από τη σηµερινή ηµεροµηνία */ else skip /* πάµε στην επόµενη εγγραφή */ /* διαβάζουµε τις τιµές των πεδίων σε αντίστοιχες µεταβλητές */ m_code_book=code_book m_code_user=code_user m_date_dan=date_dan m_date_retur=date_retur m_date_epist=date_epist enddo /* πρέπει να περιµένουµε, σε περίπτωση που ο αριθµός των δανεισµένων βιβλίων είναι µικρότερος του 24 και δεν γεµίσουν µία οθόνη */ wait close return 28