Page 1

// // // // //

ΤΡΙΤΗ 9 ΣΕΠΤΕΜΒΡΙΟΥ 1997 --- ΩΡΑ: 09.30 ΑΡΧΗ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ " ΚΑΤΑΛΟΓΟΣ " ---

ΕΚΔ. 1.00

ANNOUNCE CLIPPER501

//

LOCAL MENU1 LOCAL TO,LE,BO,RI

// ΜΕΤΑΒΛΗΤΕΣ ΒΑΣΙΚΗΣ ΟΘΟΝΗΣ ΠΡΟΓΡΑΜΜΑΤΟΣ (ΜΕΝΟΥ) // ΜΕΤΑΒΛΗΤΕΣ ΑΡΧΙΚΗΣ ΟΘΟΝΗΣ (ΜΑΣΚΑ)

PUBLIC EPON,ONOM,PATR PUBLIC MASKA MAIN() PUBLIC NAME1 SIGN() PUBLIC NAME PUBLIC VAR ΣΥΝΘΗΚΕΣ PUBLIC XSCREEN

// ΜΕΤΑΒΛΗΤΕΣ ΑΝΑΖΗΤΗΣΗΣ ΕΓΓΡΑΦΗΣ // ΟΘΟΝΗ ΕΙΣΟΔΟΥ-ΕΞΟΔΟΥ ΑΠΟ ΤΟ ΠΡΟΓΡΑΜΜΑ

PUBLIC FLAG11 PUBLIC FLAG13 DIAGRAFH() PUBLIC FLAG14 AKYRO() PUBLIC FLAG22 PUBLIC FLAG23 PUBLIC FLAG24 PUBLIC FLAG25 PUBLIC FLAG30:=.F. PUBLIC PUBLIC PUBLIC PUBLIC

KEY KEY KEY KEY KEY

TO:=12 LE:=39

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

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

// ΑΚΥΡΩΣΗ ΕΝΕΡΓΩΝ GET // // // // //

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

XNUMBER,XEPONYMO,XONOMA,XATTRIBUTE,XTHLEFONO1,XTHLEFONO2,XTHLEFONO3 XADDRESS1,XADDRESS2,XADDRESS3,XFAX,XNOTES XNUMB,XSER // ΜΕΤΡΗΣΗ ΕΓΓΡΑΦΩΝ ΤΟΥ ΑΡΧΕΙΟΥ ΓΙΑ ΠΡΟΣΘΕΣΗ ΕΓΓΡΑΦΩΝ THLE // ΜΕΤΑΒΛΗΤΗ ΑΝΑΖΗΤΗΣΗΣ ΤΟΥ ΤΗΛΕΦΩΝΟΥ ΤΟΥ ATOMOY

SET SCOREBOARD SET DATE SET MESSAGE SET CURSOR SET CONFIRM GET SET ESCAPE SET EXACT ΑΡΧΕΙΟΥ SET WRAP CLS SET COLOR SET SET SET SET SET

ΧΡΗΣΗ ΤΗΣ WINSHADE ΣΕ ΒΙΒΛΙΟΘΗΚΗ

-1 -2 -3 -4 -9

TO TO TO TO TO

OFF BRITISH TO 23 CENTRE OFF ON

// // // // //

OFF ON

// ΝΑ ΜΗΝ ΕΓΚΑΤΑΛΕΙΠΕΙ GET MEΣΑ ΣΕ WINSHADE // ΓΙΑ ΝΑ ΛΕΙΤΟΥΡΓΕΙ Η ΔΙΑΔΙΚΑΣΙΑ ΕΥΡΕΣΗΣ

ON

// ΕΠΑΝΑΛΗΨΗ ΤΗΣ ΦΩΤΕΙΝΗΣ ΕΠΙΛΟΓΗΣ ΣΤΑ ΜΕΝΟΥ // ΚΑΘΑΡΙΣΜΟΣ ΤΗΣ ΟΘΟΝΗΣ ΣΤΗΝ ΕΝΑΡΞΗ // ΧΡΩΜΑΤΑ ΑΣΠΡΟ-ΜΠΛΕ

TO "W+/B" LISTA SYSTEM AKYRO SCRSAVE ANDREAS

// // // // //

ΝΑ ΜΗΝ ΕΜΦΑΝΙΖΕΙ ΜΥΝΗΜΑΤΑ ΤΗΣ DBASE HMEΡOMHNIA ΜΕ EΛΛHNIΚΗ ΜΟΡΦΗ ΜΥΝΗΜΑΤΑ ΣΤΗΝ ΓΡΑΜΜΗ 23 ΤΗΣ ΟΘΟΝΗΣ ΝΑ ΜΗΝ ΕΜΦΑΝΙΣΤΕΙ Ο ΔΡΟΜΕΑΣ XΡΕΙΑΖΕΤΑΙ (ENTER) ΓΙΑ ΝΑ ΕΚΓAΤΑΛΕΙΨΕΙ ΕΝΑ

ΟΡΙΣΜΟΣ ΚΛΕΙΔΙΩΝ ΒΟΗΘΕΙΑΣ - Fxx ΠΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΟ ΣΥΣΤΗΜA ΤΟΥ Η/Υ AKYΡΩΣΗ GET ΣΕ ΟΠΟΙΑΔΗΠΟΤΕ ΚΑΡΤΑ ΠΡΟΓΡΑΜΜΑ ΠΡΟΣΤΑΣΙΑΣ ΟΘΟΝΗΣ ΦΑΣΗ


BO:=13 RI:=40 //DO WHILE RI <= 80 // @ TO,LE,BO,RI BOX REPLICATE(CHR(177),9) // TO-// BO++ // LE=LE-1 // RI=RI+1 // INKEY(0.01) //ENDDO @ 0,0,24,79 BOX REPLICATE(CHR(177),9) SET COLOR TO "GR+/B" WINSHADE(1,1,4,34,'ON') SET COLOR TO "W+/B" @ 02,02 SAY PADC(" Γουρζής Ι. Στάθης - Φυσικός ",32) @ 03,02 SAY PADC(" Προγραμματιστής Ηλ.Υπολογιστών ",32) SET COLOR TO "GR+/B" WINSHADE(1,39,5,76,'ON') SET COLOR TO "W+/B" @ 02,40 SAY PADC(" Διεύθυνση: Καριώτες - Λευκάδος ",36) @ 03,40 SAY PADC(" Τηλ: 0645 - 71500 Τ.Κ. 31100 ",36) @ 04,40 SAY PADC(" Α.Φ.Μ. 73233654 Δ.Ο.Υ. Λευκάδος ",36) MASKA:=SAVESCREEN(0,0,24,79) SET COLOR TO "GR+/B" WINSHADE(10,11,13,68,'ON') SET COLOR TO "BG+/B" @ 11,12 SAY PADC(" ΚΑΤΑΛΟΓΟΣ ΕΠΑΓΓΕΛΜΑΤΙΩΝ - Εκδοση 1.00 (1997) ",56) @ 12,12 SAY PADC(" Αρχείο διαχείρισης στοιχείων επαγγελματιών ",56) SET COLOR TO "W+/B" HMEROMHNIA() INKEY(0) SET COLOR TO "W+/B" WINSHADE(18,18,20,61,'OFF') WINSHADE(10,11,13,68,'OFF') WINSHADE(1,39,5,76,'OFF') WINSHADE(1,1,4,34,'OFF') SET COLOR TO "GR+/B" WINSHADE(1,1,7,76,'ON') SET COLOR TO "W+/B" DO WHILE .T. @ @ @ @

3,07 3,18 3,32 3,44

PROMPT PROMPT PROMPT PROMPT

" " " "

Αρχείο " Ημερολόγιο " Γενικά " Τόρος "

MESSAGE MESSAGE MESSAGE MESSAGE

" " " "

Γενικό αρχείο επαγγελματιών " Ημερολόγιο όλων των ετών " Πληροφορίες για όλα τα αρχεία " Το πρόγραμμα γραφικών της QBASIC

" @ 3,54 PROMPT " Σημειώσεις " MESSAGE " Γενικές Σημειώσεις " @ 5,05 PROMPT " Υπολογιστής " MESSAGE " Υπολογιστής με τις βασικές πράξεις "


@ 5,20 PROMPT " Ευρετηρίων " @ 5,30 PROMPT " σημειώσεων " @ 5,43 PROMPT " πρόγραμμα " @ 5,56 PROMPT " προγραμματισμού "

Δίσκος "

MESSAGE " Αντίγραφα Αρχείων - Δημιουργία

Εκτυπώσεις "

MESSAGE " Εκτύπωση όλων των πεδίων

Οδηγίες "

MESSAGE " Εμφάνιση βασικών οδηγιών για το

Περί... "

MESSAGE " Σχετικά με τον υπεύθυνο

XSCREEN:=SAVESCREEN(0,0,24,79) MENU TO MENU1 DO CASE CASE MENU1=0 @ 23,0,23,79 BOX REPLICATE(CHR(177),9) SET COLOR TO "GR+/B" WINSHADE(14,14,16,63,'ON') SET COLOR TO "W+/B" @ 15,15 SAY PadC(" Πατήστε (ΕSC) για τερματισμό του προγράμματος. ",48) COLOR "BG+/B" INKEY(0) WINSHADE(14,14,16,63,'OFF') IF LASTKEY()=27 EXIT ENDIF CASE MENU1=1 RESTSCREEN(0,0,24,79,XSCREEN) KATALOGOS() CASE MENU1=2 CALENDAR() CASE MENU1=3 INFO() CASE MENU1=4 TORUS() CASE MENU1=5 STATHIS() CASE MENU1=6 CALC() CASE MENU1=7 ARXEIA() CASE MENU1=8 EKTYP() CASE MENU1=9 HELP() CASE MENU1=10 PERSONAL() ENDCASE RESTSCREEN(0,0,24,79,XSCREEN) ENDDO WINSHADE(1,1,7,76,'OFF') RESTSCREEN(0,0,24,79,MASKA) SET COLOR TO "GR+/B"


WINSHADE(9,11,12,68,'ON') SET COLOR TO "BG+/B" @ 10,12 SAY PADC(" ΚΑΤΑΛΟΓΟΣ ΕΠΑΓΓΕΛΜΑΤΙΩΝ - Εκδοση 1.00 (1997) ",56) @ 11,12 SAY PADC(" Αρχείο διαχείρισης στοιχείων επαγγελματιών ",56) SET COLOR TO "W+/B" HMEROMHN1() SET COLOR TO "GR+/B" WINSHADE(20,26,22,53,'ON') @ 21,27 SAY PadC(" Τέλος εργασιών ",26) COLOR "*W+/B" INKEY(0) WINSHADE(20,26,22,53,'OFF') WINSHADE(15,18,17,61,'OFF') WINSHADE(9,11,12,68,'OFF') TO:=12 LE:=39 BO:=13 RI:=40 //DO WHILE RI <= 80 // @ TO,LE,BO,RI BOX REPLICATE(CHR(32),9) COLOR "N/N" // TO-// BO++ // LE=LE-1 // RI=RI+1 // INKEY(0.01) //ENDDO SET COLOR TO CLS USE QUIT //--------------------------------------------------------------------------EXIT PROCEDURE COPIES RUN COPY *.DB? C:\ARXEIA RUN COPY *.N?? C:\ARXEIA ? ? ? " Τα αρχεία αποθηκεύτηκαν σε αντίγραφα στο C:\ARXEIA.Πατήστε κάποιο πλήκτρο... " INKEY(0) CLS RUN DIR C:\ARXEIA /OD ? ? ? " Αρχεία που βρίσκονται στο C:\ARXEIA,κατά ημερομηνία.Πλήκτρο για έξοδο... " INKEY(0) CLS RETURN //


// // //

ΤΡΙΤΗ 9 ΣΕΠΤΕΜΒΡΙΟΥ 1997 ΑΡΧΕΙΟ ΜΕ ΤΙΣ ΒΑΣΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΟΥ ΓΕΝΙΚΟΥ ΑΡΧΕΙΟΥ ΚΑΤΑΛΟΓΟΥ

#INCLUDE #INCLUDE #INCLUDE #INCLUDE

"INKEY.CH" "MEMOGET.CH" "MGDEF1.CH" "GETEXIT.CH"

//--------------------------------------------------------------------------PROCEDURE KATALOGOS LOCAL PINAKAS,EPILOG,SCREEN1 PINAKAS:={" Εισαγωγή " ," Διόρθωση "," Διαγραφή Αναζήτηση "," Συνωνυμίες "," Ευρετήριο "} USE USE KATALOGO SET COLOR TO "GR+/B" WINSHADE(4,4,12,17,'ON') SET COLOR TO "W+/B" DO WHILE .T. SET KEY 4 TO RIGHT1_ARROW SET KEY 19 TO LEFT1_ARROW EPILOG := ACHOICE(5,5,11,16,PINAKAS) SCREEN1:=SAVESCREEN(0,0,24,79) SET KEY 19 TO SET KEY 4 TO DO CASE CASE EPILOG=0 EXIT CASE EPILOG=1 EISAGOGH() CASE EPILOG=2 DIORTHOSH() CASE EPILOG=3 DIAGRAFH() CASE EPILOG=4 RESTSCREEN(0,0,24,79,XSCREEN) SYNOLO() RESTSCREEN(0,0,24,79,SCREEN1) CASE EPILOG=5 RESTSCREEN(0,0,24,79,XSCREEN) ANAZHTHSH() RESTSCREEN(0,0,24,79,SCREEN1) CASE EPILOG=6 DIADIKASIA() CASE EPILOG=7 INTEX() ENDCASE ENDDO WINSHADE(4,4,12,17,'OFF') USE

","

Σύνολο

","


RETURN //--------------------------------------------------------------------------PROCEDURE EISAGOGH FLAG14:=.F. FLAG11:=.F. FLAG24:=.T.

// ΕΛΕΓΧΟΣ ΑΝ ΠΑΤΗΘΗΚΕ ΤΟ F8 - Η ΑΚΥΡΩΣΗ ΕΙΣΑΓΩΓΗΣ ΣΤΟΙΧΕΙΩΝ // ΑΝ Η ΜΕΤΑΒΛΗΤΗ ΓΙΝΕΙ .Τ. ΤΟΤΕ ΕΧΟΥΜΕ ΑΚΥΡΩΣΗ ΔΙΑΔΙΚΑΣΙΑΣ // ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗΣ ΓΙΑ ΤΗΝ GETAST()-REPLAST()

@ 23,0,23,79 BOX REPLICATE(CHR(177),9)

// ΣΒΗΝΕΙ ΤΟ ΜΥΝΗΜΑ ΤΗΣ MESSAGE

DO WHILE .T. EPON:=SPACE(20) ONOM:=SPACE(12) PATR:=SPACE(12) SET COLOR TO "GR+/B" WINSHADE(17,27,21,68,'ON') SET COLOR TO "W+/B" SET CURSOR ON @ 18,28 SAY " Επώνυμο Ατόμου:" GET EPON VALID KENA1() @ 19,28 SAY " Oνομα Ατόμου:" GET ONOM VALID KENA2() @ 20,28 SAY " Πατρώνυμο Ατόμου:" GET PATR VALID KENA3() READ SET CURSOR OFF WINSHADE(17,27,21,68,'OFF') CLOSE INDEX SET FILTER TO COUNT TO XSER XNUMB:=XSER+1

// // // //

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

SET FILTER TO EPONYMO=EPON INDEX ON EPONYMO+ONOMA+PATRONYMO TO GENIKO INDEX ON ONOMA TO ONOMA FOR ONOMA=ONOM .AND. PATRONYMO=PATR COUNT TO VAR GO TOP // ΓΙΑ ΝΑ ΔΕΙΞΕΙ ΤΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΕΛΑΤΗ ΠΟΥ ΒΡΗΚΕ ΜΙΑ ΦΟΡΑ IF VAR=0 SET COLOR TO "GR+/B" WINSHADE(17,22,21,72,'ON') SET COLOR TO "W+/B" @ 18,23 SAY PADC(" Δεν υπάρχει το Ατόμο με αυτά τα στοιχεία. ",49) COLOR "BG+/B" @ 19,23 SAY PADC(" Θα προσθέσετε νέα εγγραφή ή να επιστρέψω; ",49) @ 20,23 SAY PADC(" (ΕΝΤΕR) ---> Eγγραφή (ESC) ---> Επιστροφή ",49) INKEY(0) WINSHADE(17,22,21,72,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ENDIF ENDIF IF VAR=1 SET COLOR TO "GR+/B" WINSHADE(17,24,22,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Υπάρχει το Ατομο με αυτά τα στοιχεία. ",45) COLOR "BG+/B"


@ 19,27 SAY ALLTRIM(EPONYMO)+" "+ALLTRIM(ONOMA)+" "+ALLTRIM(THLEFONO1) COLOR "G+/B" @ 20,26 SAY " Διεύθυνση: " @ 20,38 SAY ALLTRIM(ADDRESS1) COLOR "G+/B" @ 21,25 SAY PADC(" (ΕΝΤΕR) ---> Eγγραφή (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,22,70,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ENDIF ENDIF IF VAR>1 DOUBLE() SET COLOR TO "GR+/B" WINSHADE(17,24,20,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Θα προσθέσετε νέα εγγραφή ή να επιστρέψω; ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" (ΕΝΤΕR) ---> Eγγραφή (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,20,70,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ENDIF ENDIF SET COLOR TO "GR+/B" WINSHADE(13,1,23,76,'ON') SET COLOR TO "W+/B" PRO() OTHONH() GETAST()

// ΜΗΔΕΝΙΣΜΟΣ ΜΕΤΑΒΛΗΤΩΝ // ΣΧΕΔΙΑΣΜΟΣ ΟΘΟΝΗΣ ΜΕ ΑΝΕΝΕΡΓΑ GET // ΣΥΣΤΗΜA ΕΙΣΑΓΩΓΗΣ ΔΕΔΟΜΕΝΩΝ GET - SET

IF !FLAG14 APPEND BLANK REPLAST() // ANTIKATAΣΤΑΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΕΓΓΡΑΦΗ. ELSE FLAG11:=.T. WINSHADE(13,1,23,76,'OFF') EXIT ENDIF GETASTA() WINSHADE(13,1,23,76,'OFF') SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" H εγγραφή προστέθηκε στο αρχείο. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Θα προσθέσετε νέα εγγραφή ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Eγγραφή (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=13 LOOP


ELSE EXIT ENDIF ENDDO IF FLAG11 SET COLOR TO "G+/B" WINSHADE(18,24,20,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" H εισαγωγή στοιχείων ακυρώθηκε. ",45) COLOR "G+/B" INKEY(0) WINSHADE(18,24,20,70,'OFF') ELSE SET COLOR TO "G+/B" WINSHADE(18,24,20,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" H εισαγωγή στοιχείων ολοκληρώθηκε. ",45) COLOR "G+/B" INKEY(0) WINSHADE(18,24,20,70,'OFF') ENDIF FLAG24:=.F. FLAG14:=.F. FLAG11:=.F. SET FILTER TO CLOSE INDEX RETURN //--------------------------------------------------------------------------PROCEDURE DIORTHOSH FLAG14:=.F. FLAG11:=.F. FLAG23:=.T.

// ΕΛΕΓΧΟΣ ΑΝ ΠΑΤΗΘΗΚE Η ΑΚΥΡΩΣΗ ΕΙΣΑΓΩΓΗΣ ΣΤΟΙΧΕΙΩΝ // ΕΛΕΓΧΟΣ ΑΝ ΑΚΥΡΩΘΗΚΕ Η ΔΙΑΔΙΚΑΣΙΑ ΑΠΟ ΤΟΝ ΧΡΗΣΤΗ // ΔΙΑΔΙΚΑΣΙΑ ΔΙΟΡΘΩΣΗΣ ΣΤΟΙΧΕΙΩΝ ΓΙΑ ΤΙΣ REPLAST()-GETAST()

@ 23,0,23,79 BOX REPLICATE(CHR(177),9) DO WHILE .T. EPON:=SPACE(20) ONOM:=SPACE(12) PATR:=SPACE(12) SET COLOR TO "GR+/B" WINSHADE(17,27,21,68,'ON') SET COLOR TO "W+/B" SET CURSOR ON @ 18,28 SAY " Επώνυμο Ατόμου:" GET EPON VALID KENA1() @ 19,28 SAY " Oνομα Ατόμου:" GET ONOM VALID KENA2() @ 20,28 SAY " Πατρώνυμο Ατόμου:" GET PATR VALID KENA3() READ SET CURSOR OFF WINSHADE(17,27,21,68,'OFF') CLOSE INDEX SET FILTER TO SET FILTER TO EPONYMO=EPON INDEX ON EPONYMO+ONOMA+PATRONYMO TO GENIKO


SEEK EPON IF !FOUND() SET COLOR TO "GR+/B" WINSHADE(17,22,21,72,'ON') SET COLOR TO "W+/B" @ 18,23 SAY PADC(" Δεν υπάρχει Aτομο με αυτά τα στοιχεία. ",49) COLOR "BG+/B" @ 19,23 SAY PADC(" Θα επαναλάβετε τη διόρθωση ή να επιστρέψω; ",49) @ 20,23 SAY PADC(" (ΕΝΤΕR) ---> Διόρθωση (ESC) ---> Επιστροφή ",49) INKEY(0) WINSHADE(17,22,21,72,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ELSE LOOP ENDIF ENDIF INDEX ON ONOMA TO ONOMA FOR ONOMA=ONOM .AND. PATRONYMO=PATR COUNT TO VAR GO TOP // ΓΙΑ ΝΑ ΔΕΙΞΕΙ ΤΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΕΛΑΤΗ ΠΟΥ ΒΡΗΚΕ ΜΙΑ ΦΟΡΑ IF VAR=0 SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Δώσατε λάθος Ονομα ή Πατρώνυμο. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Επαναληψη της διαδικασίας ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Eπανάληψη (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ELSE LOOP ENDIF ENDIF IF VAR>1 DOUBLE() SET COLOR TO "GR+/B" WINSHADE(17,24,20,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Θα κάνετε κάποια διόρθωση ή να επιστρέψω; ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" (ΕΝΤΕR) ---> Διόρθωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,20,70,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ENDIF SYNVNYMA() IF !FOUND() SET COLOR TO "GR+/B" WINSHADE(17,22,21,72,'ON') SET COLOR TO "W+/B" @ 18,23 SAY " Δεν υπάρχει Aτομο με το τηλέφωνο αυτό. " COLOR "BG+/B"


@ 19,23 SAY " Θα επαναλάβετε την αναζήτηση ή να επιστρέψω; " @ 20,23 SAY " (ΕΝΤΕR) ---> Επανάληψη (ESC) ---> Επιστροφή " INKEY(0) WINSHADE(17,22,21,72,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ELSE FLAG25:=.F. LOOP ENDIF ENDIF ENDIF SET COLOR TO "GR+/B" WINSHADE(13,1,23,76,'ON') SET COLOR TO "W+/B" OTHONH() VARAST() SAYAST() GETAST()

// // // //

ΣΧΕΔΙΑΣΜΟΣ ΟΘΟΝΗΣ ΜΕ ΑΝΕΝΕΡΓΑ GET ΑΝΑΚΤΗΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΠΟΥ ΥΠΑΡΧΟΥΝ ΣΤΗΝ ΕΓΓΡΑΦΗ EMΦΑΝΙΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΑΥΤΩΝ ΣΥΣΤΗΜA ΕΙΣΑΓΩΓΗΣ ΚΑΙΝΟΥΡΓΙΩΝ ΔΕΔΟΜΕΝΩΝ GET - SET

IF !FLAG14 REPLAST() // ANTIKATAΣΤΑΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΣΤΗΝ ΕΓΓΡΑΦΗ ELSE FLAG11:=.T. WINSHADE(13,1,23,76,'OFF') EXIT ENDIF GETASTA() WINSHADE(13,1,23,76,'OFF') SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" H εγγραφή διορθώθηκε στο αρχείο. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Θα διορθώσετε άλλη εγγραφή ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Διόρθωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=13 FLAG25:=.F. LOOP ELSE EXIT ENDIF ENDDO IF FLAG11 SET COLOR TO "G+/B" WINSHADE(18,24,20,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" H διόρθωση στοιχείων ακυρώθηκε. ",45) COLOR "G+/B" INKEY(0) WINSHADE(18,24,20,70,'OFF') ELSE


SET COLOR TO "G+/B" WINSHADE(18,24,20,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" H διόρθωση στοιχείων ολοκληρώθηκε. ",45) COLOR "G+/B" INKEY(0) WINSHADE(18,24,20,70,'OFF') ENDIF FLAG23:=.F. FLAG25:=.F. FLAG14:=.F. FLAG11:=.F. SET FILTER TO CLOSE INDEX RETURN //--------------------------------------------------------------------------PROCEDURE DIAGRAFH LOCAL EPILOG FLAG11:=.F.

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

@ 23,0,23,79 BOX REPLICATE(CHR(177),9) DO WHILE .T. FLAG13:=.F.

// ΕΛΕΓΧΟΣ ΑΝ ΕΓΙΝΕ ΔΙΑΓΡΑΦΗ ΕΓΓΡΑΦΗΣ

EPON:=SPACE(20) ONOM:=SPACE(12) PATR:=SPACE(12) SET COLOR TO "GR+/B" WINSHADE(17,27,21,68,'ON') SET COLOR TO "W+/B" SET CURSOR ON @ 18,28 SAY " Επώνυμο Ατόμου:" GET EPON VALID KENA1() @ 19,28 SAY " Oνομα Ατόμου:" GET ONOM VALID KENA2() @ 20,28 SAY " Πατρώνυμο Ατόμου:" GET PATR VALID KENA3() READ SET CURSOR OFF WINSHADE(17,27,21,68,'OFF') CLOSE INDEX SET FILTER TO SET FILTER TO EPONYMO=EPON INDEX ON EPONYMO+ONOMA+PATRONYMO TO GENIKO SEEK EPON IF !FOUND() SET COLOR TO "GR+/B" WINSHADE(17,22,21,72,'ON') SET COLOR TO "W+/B" @ 18,23 SAY PADC(" Δεν υπάρχει Aτομο με αυτά τα στοιχεία. ",49) COLOR "BG+/B" @ 19,23 SAY PADC(" Θα επαναλάβετε τη διαγραφή ή να επιστρέψω; ",49) @ 20,23 SAY PADC(" (ΕΝΤΕR) ---> Διαγραφή (ESC) ---> Επιστροφή ",49) INKEY(0)


WINSHADE(17,22,21,72,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ELSE LOOP ENDIF ENDIF INDEX ON ONOMA TO ONOMA FOR ONOMA=ONOM .AND. PATRONYMO=PATR COUNT TO VAR GO TOP // ΓΙΑ ΝΑ ΔΕΙΞΕΙ ΤΑ ΣΤΟΙΧΕΙΑ ΤΟΥ ΠΕΛΑΤΗ ΠΟΥ ΒΡΗΚΕ ΜΙΑ ΦΟΡΑ IF VAR=0 SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Δώσατε λάθος Ονομα ή Πατρώνυμο. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Επαναληψη της διαδικασίας ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Eπανάληψη (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ELSE LOOP ENDIF ENDIF IF VAR>1 DOUBLE() SET COLOR TO "GR+/B" WINSHADE(17,24,20,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Θα κάνετε κάποια διαγραφή ή να επιστρέψω; ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" (ΕΝΤΕR) ---> Διαγραφή (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,20,70,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ENDIF SYNVNYMA() IF !FOUND() SET COLOR TO "GR+/B" WINSHADE(17,22,21,72,'ON') SET COLOR TO "W+/B" @ 18,23 SAY " Δεν υπάρχει Aτομο με το τηλέφωνο αυτό. " COLOR "BG+/B" @ 19,23 SAY " Θα επαναλάβετε την αναζήτηση ή να επιστρέψω; " @ 20,23 SAY " (ΕΝΤΕR) ---> Επανάληψη (ESC) ---> Επιστροφή " INKEY(0) WINSHADE(17,22,21,72,'OFF') IF LASTKEY()=27 FLAG11:=.T. EXIT ELSE FLAG25:=.F. LOOP ENDIF


ENDIF ENDIF SET COLOR TO "GR+/B" WINSHADE(13,1,23,76,'ON') SET COLOR TO "W+/B" OTHONH() VARAST() SAYAST()

// ΣΧΕΔΙΑΣΜΟΣ ΟΘΟΝΗΣ ΜΕ ΑΝΕΝΕΡΓΑ GET // ΑΝΑΚΤΗΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΠΟΥ ΥΠΑΡΧΟΥΝ ΣΤΗΝ ΕΓΓΡΑΦΗ // EMΦΑΝΙΣΗ ΤΩΝ ΔΕΔΟΜΕΝΩΝ ΑΥΤΩΝ

EPILOG:=ALERT(" Nα διαγραφεί ? ",{"

Ναί

","

Οχι

"})

IF EPILOG=1 DELETE PACK FLAG13:=.T. ELSE WINSHADE(13,1,23,76,'OFF') FLAG11:=.T. EXIT ENDIF WINSHADE(13,1,23,76,'OFF') IF FLAG13 SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" H εγγραφή διαγράφτηκε από το αρχείο. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Θα διαγράψετε άλλη εγγραφή ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Διαγραφή (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=13 FLAG25:=.F. LOOP ELSE FLAG13:=.F. EXIT ENDIF ENDIF ENDDO IF FLAG11 SET COLOR TO "G+/B" WINSHADE(18,24,20,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" H διαγραφή στοιχείων ακυρώθηκε. ",45) COLOR "G+/B" INKEY(0) WINSHADE(18,24,20,70,'OFF') ELSE SET COLOR TO "G+/B" WINSHADE(18,24,20,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" H διαγραφή στοιχείων ολοκληρώθηκε. ",45) COLOR "G+/B" INKEY(0) WINSHADE(18,24,20,70,'OFF') ENDIF


FLAG13:=.F. FLAG11:=.F.

// ΕΛΕΓΧΟΣ ΕΝ ΕΧΕΙ ΓΙΝΕΙ ΚΑΠΟΙΑ ΔΙΑΓΡΑΦΗ

SET FILTER TO CLOSE INDEX RETURN //--------------------------------------------------------------------------PROCEDURE SYNOLO LOCAL LOCAL LOCAL LOCAL

NT:=8,NL:=1,NB:=23,NR:=76 OTBR,DIAL,DIALREC,DIALDEL nKey,lScrlBar,nThumbPos:=NT+3,nRecsSkipped:=1,nRow,nCol COLOR1,COLOR2,COLOR3,lNewRecord:=.F.

CLOSE INDEX SET FILTER TO INDEX ON NUMBER TO NUMBER COLOR1:='N/N' COLOR2:='GR+/N' COLOR3:='W+/B' SET COLOR TO "GR+/B" WINSHADE(NT,NL,NB,NR,'ON') @ 8,6 SAY "╡ Συνολική εμφάνιση των Ατόμων του αρχείου ╞" COLOR "BG+/B" SET COLOR TO "W+/B" lScrlBar := If(LastRec()>((nB-nT)-2),.T.,.F.) OTBR:=TBROWSEDB(NT+1,NL+1,NB-1,NR-1) oTbr:ColSep := " " + CHR(179) + " " oTbr:HeadSep := CHR(205)+CHR(209)+CHR(205) oTbr:ColorSpec:="W+/B,GR+/W,GR+/B" ADDALL(oTbr) oTbr:freeze:=3 IF lScrlBar nThumbPos:=nT+3 SETCOLOR(COLOR1) @ nT+3,nR,nB-1,nR BOX Chr(177) SETCOLOR(COLOR2) @ nThumbPos,nR SAY Chr(178) SETCOLOR(COLOR3) ENDIF SET CURSOR ON DO WHILE .T. DO WHILE .T. DO WHILE !oTbr:stabilize() nKey:=INKEY() IF nKey == 0 EXIT ENDIF ENDDO IF lScrlBar


IF nThumbPos <> Int((nRecsSkipped/LastRec())*((nB-1)-(nT+3))+(nT+3)) nRow:=Row() nCol:=Col() SETCOLOR(COLOR1) @ nThumbPos,nR SAY Chr(177) nThumbPos:=Int((nRecsSkipped/LastRec())*((nB-1)-(nT+3))+(nT+3)) IF nThumbPos < nT+3 nThumbPos:=nT+3 nRecsSkipped:=1 ELSEIF nThumbPos > nB-1 nThumbPos:=nB-1 nRecsSkipped:=LastRec() ENDIF SETCOLOR(COLOR2) @ nThumbPos,nR SAY Chr(178) DevPos(nRow,nCol) SETCOLOR(COLOR3) ENDIF ENDIF IF oTbr:stable IF oTbr:HitTop .AND. !lNewRecord .AND. nKey==K_UP lNewRecord:=.T. nKey:=K_UP ELSE IF oTbr:Hittop SET CURSOR OFF @ 24,2 SAY " Βρισκόσαστε στην κορυφή του αρχείου " COLOR "GR+/B" INKEY(1) SET CURSOR ON SKIA() ELSEIF oTbr:Hitbottom SET CURSOR OFF @ 24,2 SAY " Βρισκόσαστε στο τέλος του αρχείου " COLOR "GR+/B" INKEY(1) SET CURSOR ON SKIA() ENDIF nKey:=INKEY(0) ENDIF ENDIF IF nKey == K_UP .AND. lNewRecord DIALREC:=ALERT(" Προσθήκη εγγραφής ",{" Oχι "," Nαί "}) IF DIALREC=2 APPEND BLANK oTbr:GoTop() nRecsSkipped:=1 lNewRecord:=.F. oTbr:RefreshAll() ENDIF ELSEIF nKey==K_SPACE DIALDEL:=ALERT(" Διαγραφή εγγραφής ",{" Oχι "," Nαί "}) IF DIALDEL=2 DELETE PACK oTbr:Up() nRecsSkipped:=nRecsSkipped-1 oTbr:RefreshAll() ENDIF


ELSEIF nKey==K_DOWN oTbr:Down() lNewRecord:=.F. nRecsSkipped++ ELSEIF nKey == K_UP oTbr:up() lNewRecord:=.F. nRecsSkipped:=nRecsSkipped-1 ELSEIF nKey == K_PGDN oTbr:pageDown() lNewRecord:=.F. nRecsSkipped+=oTbr:RowCount oTbr:RefreshAll() ELSEIF nKey == K_PGUP oTbr:pageUp() lNewRecord:=.F. nRecsSkipped-=oTbr:RowCount oTbr:RefreshAll() ELSEIF nKey == K_CTRL_PGUP oTbr:goTop() nRecsSkipped:=1 lNewRecord:=.F. ELSEIF nKey == K_CTRL_PGDN oTbr:goBottom() nRecsSkipped:=LastRec() lNewRecord:=.F. ELSEIF nKey == K_RIGHT oTbr:right() ELSEIF nKey == K_LEFT oTbr:left() ELSEIF nKey == K_HOME oTbr:home() ELSEIF nKey == K_END oTbr:end() ELSEIF nKey == K_CTRL_LEFT oTbr:panLeft() ELSEIF nKey == K_CTRL_RIGHT oTbr:panRight() ELSEIF nKey == K_CTRL_HOME oTbr:panHome() ELSEIF nKey == K_CTRL_END oTbr:panEnd() ELSEIF nKey == K_INS FldEdit(oTbr) ELSEIF nKey == K_ESC EXIT ELSEIF nKey==K_RETURN GETIT(oTbr) ELSEIF nKey > 223 .AND. nKey < 241 KEYBOARD Chr(nKey) GETIT(oTbr) ELSEIF nKey > 31 .AND. nKey < 176 KEYBOARD Chr(nKey) GETIT(oTbr) ENDIF ENDDO DIAL:=ALERT(" Επιστροφή στο μενού ",{" Ναί "," Οχι "}) IF DIAL==1


EXIT ELSE LOOP ENDIF ENDDO CLOSE INDEX SET FILTER TO SET CURSOR OFF WINSHADE(NT,NL,NB,NR,'OFF') RETURN //-------------------------------------------------------------------------PROCEDURE FldEdit(oTbr) LOCAL bFldGsb, cFval, cOldkey,cNewKey LOCAL nOldRecNo, cNewKeyVal, cOldKeyVal LOCAL lMemoUpdated := .F.,SCREEN1 SCREEN1:=SAVESCREEN(0,0,24,79) cOldKeyVal := &(IndexKey()) bFldGsb := oTbr:getColumn(oTbr:colPos):block cFval := Eval(bFldGsb) IF ValType(cFval) == "C" .AND. cFval == "Memo" RESTSCREEN(0,0,24,79,XSCREEN) SET COLOR TO "GR+/B" WINSHADE(10,1,23,17,'ON') SET COLOR TO "W+/B" @ 10,05 SAY "╡ Aτομο ╞" COLOR "G+/B" @ 11,02 SAY "Αρ.Μητ.: " @ 11,COL() SAY PADL(ALLTRIM(STR(FIELDGET(1),5,0)),6) COLOR "R+/B" @ 12,02 SAY PADL(ALLTRIM(FIELDGET(2)),15) @ 13,02 SAY PADL(ALLTRIM(FIELDGET(3)),15) @ 14,02 SAY PADL(ALLTRIM(FIELDGET(4)),15) @ 15,02 SAY PADL(ALLTRIM(FIELDGET(5)),15) @ 16,02 SAY "Τηλ1:"+PADL(ALLTRIM(FIELDGET(6)),10) COLOR "G+/B" @ 17,02 SAY "Τηλ2:"+PADL(ALLTRIM(FIELDGET(7)),10) COLOR "G+/B" @ 18,02 SAY "Τηλ3:"+PADL(ALLTRIM(FIELDGET(8)),10) @ 19,02 SAY "FAX:"+PADL(ALLTRIM(FIELDGET(9)),11) COLOR "G+/B" @ 20,02 SAY PADL(ALLTRIM(FIELDGET(10)),15) @ 21,02 SAY PADL(ALLTRIM(FIELDGET(11)),15) COLOR "R+/B" @ 22,02 SAY PADL(ALLTRIM(FIELDGET(12)),15) bFldGsb := Eval(bFldGsb, .T.) SET COLOR TO "GR+/B" WINSHADE(8,21,23,76,'ON') SET COLOR TO "W+/B" @ 8,23 SAY "╡ Γενικές Σημειώσεις ╞" COLOR "BG+/B" cFval := MemoEdit(eval(bFldGsb),9,22,22,75,.T.,"WP_UDF") lMemoUpdated := LastKey() == K_CTRL_W WINSHADE(8,21,23,76,'OFF') WINSHADE(10,1,23,17,'OFF') ENDIF IF Updated() .OR. lMemoUpdated


DO WHILE !Rlock() ENDDO Eval(bFldGsb, cFval) UNLOCK cNewKeyVal := &(IndexKey()) IF cOldKeyVal != cNewKeyVal DbStabilize(oTbr) ELSE oTbr:refreshcurrent() ENDIF ENDIF RESTSCREEN(0,0,24,79,SCREEN1) RETURN //------------------------------------------------------------------------PROCEDURE ADDALL(oTbr) LOCAL oTbc,nFieldNum,nFields nFields:=Fcount() FOR

nFieldNum := 1 TO nFields IF NFIELDNUM=1 oTbc := TBColumnNew("Α.A.",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=2 oTbc := TBColumnNew("Επώνυμο",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=3 oTbc := TBColumnNew("Ονομα",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=4 oTbc := TBColumnNew("Πατρώνυμο",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=5 oTbc := TBColumnNew("Ιδιότητα",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=6 oTbc := TBColumnNew("Τηλέφωνο1",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=7 oTbc := TBColumnNew("Τηλέφωνο2",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=8 oTbc := TBColumnNew("Τηλέφωνο3",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=9 oTbc := TBColumnNew(" FAX ",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=10 oTbc := TBColumnNew("Διεύθυνση1",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=11 oTbc := TBColumnNew("Διεύθυνση2",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=12 oTbc := TBColumnNew("Διεύθυνση3",FIELDBLOCK(FIELD(nFieldNum))) ELSEIF NFIELDNUM=13 oTbc := TBColumnNew("Σημειώσεις",MEMOBLOCK(nFieldNum)) ENDIF oTbr:addColumn(oTbc)

NEXT RETURN //--------------------------------------------------------------------------FUNCTION MemoGet(cVar, bBlock, cName,bValid, bWhen, aMemoCoords, cFile) LOCAL oGet := GetNew(Row(), Col(), bBlock, cName)


oGet:postBlock oGet:preBlock oGet:reader oGet:cargo oGet:var oGet:coords oGet:fileName

:= := := := := := :=

bValid bWhen {|oGet| MemoRed(oGet) } Array(MG_NUM_IVARS) cVar aMemoCoords cFile

RETURN oGet //-------------------------------------------------------------------------PROCEDURE MemoRed( oGet ) IF (GetPreValidate(oGet)) oGet:setFocus() WHILE (oGet:exitState == GE_NOEXIT) IF (oGet:typeOut) oGet:exitState := GE_ENTER ENDIF WHILE (oGet:exitState == GE_NOEXIT) GetMemo(oGet,inkey(0)) ENDDO IF (!GetPostValidate(oGet)) oGet:exitState := GE_NOEXIT ENDIF ENDDO oGet:killFocus() ENDIF RETURN //--------------------------------------------------------------------------PROCEDURE GetMemo(oGet, nKey) LOCAL bKeyBlock IF ((bKeyBlock := SetKey(nKey)) <> NIL) GetDoSetKey(bKeyBlock,oGet) RETURN ENDIF DO CASE CASE nKey == K_UP oGet:exitState := GE_UP CASE nKey == K_SH_TAB oGet:exitState := GE_UP CASE nKey == K_DOWN oGet:exitState := GE_DOWN CASE nKey == K_TAB oGet:exitState := GE_DOWN CASE nKey == K_ENTER oGet:exitState := GE_ENTER CASE nKey == K_ESC IF Set(_SET_ESCAPE) oGet:exitState := GE_ESCAPE ENDIF CASE nKey == K_PGUP oGet:exitState := GE_WRITE CASE nKey == K_PGDN oGet:exitState := GE_WRITE CASE nKey == K_CTRL_HOME


oGet:exitState := GE_TOP CASE nKey == K_INS EditMemo(oGet) oGet:exitState := GE_ENTER CASE nKey == K_END KEYBOARD CHR(23) ENDCASE RETURN //-------------------------------------------------------------------------PROCEDURE EditMemo(oGet) LOCAL t,l,b,r,aCoords,cSaveScreen,nRow,nCol aCoords := oGet:coords t := aCoords[1] l := aCoords[2] b := aCoords[3] r := aCoords[4] nRow := Row() nCol := Col() cSaveScreen := SaveScreen(0,0,24,79) RESTSCREEN(0,0,24,79,XSCREEN) SET COLOR TO "GR+/B" WINSHADE(10,1,23,17,'ON') SET COLOR TO "W+/B" @ 10,05 SAY "╡ Aτομο ╞" COLOR "G+/B" @ 11,02 SAY "Αρ.Μητ.: " @ 11,COL() SAY PADL(ALLTRIM(STR(FIELDGET(1),5,0)),6) COLOR "R+/B" @ 12,02 SAY PADL(ALLTRIM(FIELDGET(2)),15) @ 13,02 SAY PADL(ALLTRIM(FIELDGET(3)),15) @ 14,02 SAY PADL(ALLTRIM(FIELDGET(4)),15) @ 15,02 SAY PADL(ALLTRIM(FIELDGET(5)),15) @ 16,02 SAY "Τηλ1:"+PADL(ALLTRIM(FIELDGET(6)),10) COLOR "G+/B" @ 17,02 SAY "Τηλ2:"+PADL(ALLTRIM(FIELDGET(7)),10) COLOR "G+/B" @ 18,02 SAY "Τηλ3:"+PADL(ALLTRIM(FIELDGET(8)),10) @ 19,02 SAY "FAX:"+PADL(ALLTRIM(FIELDGET(9)),11) COLOR "G+/B" @ 20,02 SAY PADL(ALLTRIM(FIELDGET(10)),15) @ 21,02 SAY PADL(ALLTRIM(FIELDGET(11)),15) COLOR "R+/B" @ 22,02 SAY PADL(ALLTRIM(FIELDGET(12)),15) SET COLOR TO "GR+/B" WINSHADE(T,L,B,R,'ON') SET COLOR TO "W+/B" @ 8,23 SAY "╡ Γενικές Σημειώσεις ╞" COLOR "BG+/B" XNOTES := MemoEdit(NOTES,t+1,l+1,b-1,r-1,.T.,"WP_UDF") REPLACE NOTES WITH XNOTES WINSHADE(T,L,B,R,'OFF') WINSHADE(10,1,23,17,'OFF') RestScreen(0,0,24,79,cSaveScreen) DevPos(nRow,nCol) RETURN


//--------------------------------------------------------------------------PROCEDURE ANAZHTHSH LOCAL ARAY,SCREEN1,SCREEN2,SCREEN3,ARAY1 ARAY:={"NUMBER","EPONYMO","ONOMA","PATRONYMO","ATTRIBUTE","ADDRESS1","THLEFONO1" ,"THLEFONO2"} ARAY1:={" Α.Μ. "," ΕΠΩΝΥΜΟ "," ΟΝΟΜΑ "," ΠΑΤΡΩΝΥΜΟ "," ΙΔΙΟΤΗΤΑ "," ΔΙΕΥΘΥΝΣΗ1 "," ΤΗΛΕΦΩΝΟ1 "," ΤΗΛΕΦΩΝΟ2 "} SET EXACT OFF @ 23,0,23,76 BOX REPLICATE(CHR(177),9) @ 24,12 SAY PADC(" Αναζήτηση εγγραφής υπό συνθήκες (Γράμματα ή Εκφράσεις) ",56) COLOR "BG+/B" CLOSE INDEX SET FILTER TO INDEX ON EPONYMO+ONOMA+PATRONYMO TO INTEX1 INDEX ON ONOMA+EPONYMO+PATRONYMO TO INTEX2 INDEX ON PATRONYMO+EPONYMO+ONOMA TO INTEX3 SET INDEX TO INTEX1,INTEX2,INTEX3 DO WHILE LASTKEY() <> 27 SET CURSOR ON EPON=SPACE(20) ONOM=SPACE(12) PATR=SPACE(12) SET COLOR TO "GR+/B" WINSHADE(17,24,21,72,'ON') SET COLOR TO "W+/B" @ 18,25 SAY " Δώστε το Επώνυμο @ 19,25 SAY " Δώστε το Ονομα @ 20,25 SAY " Δώστε το Πατρώνυμο @ 18,50 SAY EPON @ 19,50 SAY ONOM @ 20,50 SAY PATR @ 18,50 GET EPON READ

ή : " ή : " : "

IF UPDATED() EPON=Upperg(ALLTRIM(EPON)) ENDIF IF !EMPTY(EPON) SET ORDER TO 1 SET FILTER TO SET FILTER TO EPONYMO=EPON GO TOP SCREEN1:=SAVESCREEN(0,0,24,79) RESTSCREEN(0,0,24,79,XSCREEN) SET COLOR TO "GR+/B" WINSHADE(8,1,22,76,'ON') SET COLOR TO "W+/B" @ 8,7 SAY "╡ Αναζήτηση εγγραφών υπό συνθήκες επωνύμου ╞" COLOR "BG+/B" DBEDIT(9,2,21,75,ARAY,,,ARAY1) WINSHADE(8,1,22,76,'OFF') RESTSCREEN(0,0,24,79,SCREEN1) ENDIF


IF EMPTY(EPON) .OR. LEN(EPON) != 20 EPON=SPACE(20) @ 18,50 SAY EPON @ 19,50 GET ONOM READ IF UPDATED() ONOM=Upperg(ALLTRIM(ONOM)) ENDIF IF !EMPTY(ONOM) SET ORDER TO 2 SET FILTER TO SET FILTER TO ONOMA=ONOM GO TOP SCREEN2:=SAVESCREEN(0,0,24,79) RESTSCREEN(0,0,24,79,XSCREEN) SET COLOR TO "GR+/B" WINSHADE(8,1,22,76,'ON') SET COLOR TO "W+/B" @ 8,7 SAY "╡ Αναζήτηση εγγραφών υπό συνθήκες ονόματος ╞" COLOR "BG+/B" DBEDIT(9,2,21,75,ARAY,,,ARAY1) WINSHADE(8,1,22,76,'OFF') RESTSCREEN(0,0,24,79,SCREEN2) ENDIF IF EMPTY(ONOM) .OR. LEN(ONOM)!= 12 ONOM=SPACE(12) @ 19,50 SAY ONOM @ 20,50 GET PATR READ IF UPDATED() PATR=Upperg(ALLTRIM(PATR)) ENDIF IF !EMPTY(PATR) SET ORDER TO 3 SET FILTER TO SET FILTER TO PATRONYMO=PATR GO TOP SCREEN3:=SAVESCREEN(0,0,24,79) RESTSCREEN(0,0,24,79,XSCREEN) SET COLOR TO "GR+/B" WINSHADE(8,1,22,76,'ON') SET COLOR TO "W+/B" @ 8,7 SAY "╡ Αναζήτηση εγγραφών υπό συνθήκες πατρώνυμου ╞" COLOR "BG+/B"

DBEDIT(9,2,21,75,ARAY,,,ARAY1) WINSHADE(8,1,22,76,'OFF') RESTSCREEN(0,0,24,79,SCREEN3) ENDIF

ENDIF ENDIF WINSHADE(17,24,21,72,'OFF') SET COLOR TO "GR+/B" WINSHADE(17,24,20,72,'ON')


SET COLOR TO "W+/B" SET CURSOR OFF @ 18,25 SAY PADC(" Θα επαναλάβετε την αναζήτηση ή επιστροφή; ",47) COLOR "BG+/B" @ 19,25 SAY PADC(" (ΕΝΤΕR) ---> Eπανάληψη (ESC) ---> Επιστροφή ",47) INKEY(0) WINSHADE(17,24,20,72,'OFF') IF LASTKEY()=27 EXIT ENDIF ENDDO SET EXACT ON SET FILTER TO CLOSE INDEX RETURN //---------------------------------------------------------------------------PROCEDURE DIADIKASIA LOCAL SCREEN1,VAR

// ΜΕΤΑΒΛΗΤΗ ΜΕΤΡΗΣΗΣ ΕΓΓΡΑΦΩΝ - VAR

SCREEN1:=SAVESCREEN(0,0,24,79) DO WHILE .T. EPON:=SPACE(20) ONOM:=SPACE(12) PATR:=SPACE(12) SET COLOR TO "GR+/B" WINSHADE(17,27,21,68,'ON') SET COLOR TO "W+/B" SET CURSOR ON @ 18,28 SAY " Επώνυμο Ατόμου:" GET EPON VALID KENA1() @ 19,28 SAY " Oνομα Ατόμου:" GET ONOM VALID KENA2() @ 20,28 SAY " Πατρώνυμο Ατόμου:" GET PATR VALID KENA3() READ SET CURSOR OFF WINSHADE(17,27,21,68,'OFF') CLOSE INDEX SET FILTER TO SET FILTER TO EPONYMO=EPON INDEX ON EPONYMO+ONOMA+PATRONYMO TO GENIKO SEEK EPON IF !FOUND() SET COLOR TO "GR+/B" WINSHADE(17,22,21,72,'ON') SET COLOR TO "W+/B" @ 18,23 SAY PADC(" Δεν υπάρχει Aτομο με αυτά τα στοιχεία. ",49) COLOR "BG+/B" @ 19,23 SAY PADC(" Επαναληψη της διαδικασίας ή να επιστρέψω; ",49) @ 20,23 SAY PADC(" (ΕΝΤΕR) ---> Eπανάληψη (ESC) ---> Επιστροφή ",49) INKEY(0)


WINSHADE(17,22,21,72,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF INDEX ON ONOMA TO ONOMA FOR ONOMA=ONOM .AND. PATRONYMO=PATR COUNT TO VAR IF VAR=1 SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Υπάρχει 1 Aτομο με αυτά τα στοιχεία. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Επαναληψη της διαδικασίας ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Eπανάληψη (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF IF VAR=0 SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Δώσατε λάθος Ονομα ή Πατρώνυμο. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Επαναληψη της διαδικασίας ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Eπανάληψη (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF GO TOP CLS ? ? " Εμφάνιση των Ατόμων που έχουν ίδιο Επώνυμο - Ονομα - Πατρώνυμο " ? " ( A.A.E. = Αύξων Αριθμός Εγγραφής ) " ? ? " A.A.E. Ονοματεπώνυμο Τηλέφωνο Διεύθυνση " ? "------------------------------------------------------------------------------" ? LIST EPONYMO+ONOMA+THLEFONO1+" "+ADDRESS1 FOR ONOMA==ONOM .AND. PATRONYMO==PATR ? ? " Θα επαναλάβετε την διαδικασία ή να τερματίσω επιστρέφοντας; (ESC) ---> ΤΕΛΟΣ "


INKEY(0) IF LASTKEY()=27 EXIT ELSE RESTSCREEN(0,0,24,79,SCREEN1) LOOP ENDIF ENDDO RESTSCREEN(0,0,24,79,SCREEN1) SET FILTER TO CLOSE INDEX RETURN //---------------------------------------------------------------------------PROCEDURE INTEX LOCAL SCREEN1 SCREEN1:=SAVESCREEN(0,0,24,79) @ 23,0,23,79 BOX REPLICATE(CHR(177),9) @ 23,15 SAY " Δημιουργία Ευρετηρίου για το αρχείο KATALOGO.DBF "

COLOR "BG+/B"

SINDEX("NUMBER","SYNOLO","Eυρετήριο με Aύξοντα Αριθμό Ατόμου ") RESTSCREEN(0,0,24,79,SCREEN1) RETURN //---------------------------------------------------------------------------PROCEDURE PRO XATTRIBUTE:=SPACE(15) XTHLEFONO1:=SPACE(10) XTHLEFONO2:=SPACE(10) XTHLEFONO3:=SPACE(10) XFAX :=SPACE(11) XADDRESS1 :=SPACE(15) XADDRESS2 :=SPACE(15) XADDRESS3 :=SPACE(15) XNOTES :=SPACE(4) RETURN //---------------------------------------------------------------------------PROCEDURE OTHONH @ 14,02 SAY " Ημερομηνία: ΓΕΝΙΚΑ ΣΤΟΙΧΕIA ΑΤΟΜΟΥ Ωρα: " @ 15,01 SAY "╟──────────────────────────────────────────────────────────────────────────╢" COLOR "GR+/B" @ 16,02 SAY " Αριθμός Μητρώου: Τηλέφωνο-1.: " @ 17,02 SAY " Επώνυμο..: Τηλέφωνο-2.: "


@ " @ " @ " @ " @ "

18,02 SAY

" Ονομα....:

Τηλέφωνο-3.:

19,02 SAY

" Πατρώνυμο:

Διεύθυνση-1:

20,02 SAY

" Ιδιότητα.:

Διεύθυνση-2:

21,02 SAY

"

Διεύθυνση-3:

22,02 SAY

" FAX......:

Σημειώσεις.:

@ 14,15 SAY DATE() COLOR "BG+/B" @ 14,66 SAY TIME() COLOR "BG+/B" RETURN //-------------------------------------------------------------------------PROCEDURE GETAST SET CURSOR ON SET ESCAPE ON IF FLAG24 // ΔΙΑΔΙΚΑΣΙΑ ΕΙΣΑΓΩΓΗΣ - ΑΝΤΙΚΑΤΕΣΤΗΣΕ ΜΕ ΤΟΝ ΑΡΙΘMΟ ΕΓΓΡΑΦΩΝ + ΕΝΑ @ 16,19 SAY XNUMB COLOR "BG+/B" ELSE @ 16,19 SAY NUMBER COLOR "BG+/B" // ΔΙΑΔΙΚΑΣΙΑ ΔΙΟΡΘΩΣΗΣ ή ΔΙΑΓΡΑΦΗΣ ENDIF // ΔΕΙΞΕ ΤΟΝ ΑΡΙΘΜΟ ΕΓΓΡΑΦΗΣ @ @ @ @

17,13 18,13 19,13 20,13

SAY SAY SAY GET

EPON COLOR "GR+/B" ONOM COLOR "GR+/B" PATR COLOR "GR+/B" XATTRIBUTE

@ @ @ @ @ @

16,51 17,51 18,51 19,51 20,51 21,51

GET GET GET GET GET GET

XTHLEFONO1 XTHLEFONO2 XTHLEFONO3 XADDRESS1 XADDRESS2 XADDRESS3

@ 22,13 GET XFAX READ SET CURSOR OFF SET ESCAPE OFF RETURN //-------------------------------------------------------------------------PROCEDURE GETASTA SET CURSOR ON SET ESCAPE ON @ 22,51 GET XNOTES MEMO AT 8,21,23,76 READ SET CURSOR OFF SET ESCAPE OFF RETURN


//---------------------------------------------------------------------------PROCEDURE REPLAST IF FLAG24 REPLACE NUMBER WITH ENDIF REPLACE REPLACE REPLACE REPLACE REPLACE REPLACE REPLACE REPLACE REPLACE REPLACE REPLACE

EPONYMO ONOMA PATRONYMO ATTRIBUTE THLEFONO1 THLEFONO2 THLEFONO3 FAX ADDRESS1 ADDRESS2 ADDRESS3

WITH WITH WITH WITH WITH WITH WITH WITH WITH WITH WITH

XNUMB

// ΜΟΝΟ ΣΤΗΝ ΕΙΣΑΓΩΓΗ ΑΝΤΙΚΑΤΕΣΤΗΣΕ ΤΟΝ ΑΡΙΘΜΟ // ΕΓΓΡΑΦΗΣ ΓΙΑ ΤΟΝ ΔΑΝΕΙΖΟΜΕΝΟ

EPON ONOM PATR XATTRIBUTE XTHLEFONO1 XTHLEFONO2 XTHLEFONO3 XFAX XADDRESS1 XADDRESS2 XADDRESS3

RETURN //---------------------------------------------------------------------------PROCEDURE VARAST XNUMBER :=NUMBER XEPONYMO :=EPON XONOMA :=ONOM XPATRONYMO:=PATR XATTRIBUTE:=ATTRIBUTE XTHLEFONO1:=THLEFONO1 XTHLEFONO2:=THLEFONO2 XTHLEFONO3:=THLEFONO3 XFAX :=FAX XADDRESS1 :=ADDRESS1 XADDRESS2 :=ADDRESS2 XADDRESS3 :=ADDRESS3 RETURN //--------------------------------------------------------------------------PROCEDURE SAYAST @ @ @ @ @ @

16,19 17,13 18,13 19,13 20,13 22,13

SAY SAY SAY SAY SAY SAY

NUMBER COLOR EPON COLOR ONOM COLOR PATR COLOR XATTRIBUTE XFAX

@ @ @ @ @ @ @

16,51 17,51 18,51 19,51 20,51 21,51 22,51

SAY SAY SAY SAY SAY SAY SAY

XTHLEFONO1 XTHLEFONO2 XTHLEFONO3 XADDRESS1 XADDRESS2 XADDRESS3 "Memo"

"BG+/B" "GR+/B" "GR+/B" "GR+/B"

RETURN //---------------------------------------------------------------------------


PROCEDURE DOUBLE LOCAL ARAY,SCREEN1,ARAY1 SCREEN1:=SAVESCREEN(0,0,24,79) ARAY:={"NUMBER","EPONYMO","ONOMA","PATRONYMO","ATTRIBUTE","ADDRESS1","THLEFONO1" } ARAY1:={" Α.Μ. "," ΕΠΩΝΥΜΟ "," ΟΝΟΜΑ ","ΠΑΤΡΩΝΥΜΟ"," ΙΔΙΟΤΗΤΑ "," ΔΙΕΥΘΥΝΣΗ-1 "," ΤΗΛΕΦΩΝΟ-1 "} @ 23,0,23,76 BOX REPLICATE(CHR(177),9) RESTSCREEN(0,0,24,79,XSCREEN) @ 24,10 SAY PADC(" Εμφάνιση Ατόμων με ίδιο Επώνυμο - Ονομα - Πατρώνυμο ",60) COLOR "BG+/B" GO TOP SET COLOR TO "GR+/B" WINSHADE(8,1,22,76,'ON') SET COLOR TO "W+/B" @ 8,7 SAY "╡ Εμφάνιση Ατόμων που είναι Συνώνυμοι ╞" COLOR "BG+/B" DBEDIT(9,2,21,75,ARAY,,,ARAY1) WINSHADE(8,1,22,76,'OFF') RESTSCREEN(0,0,24,79,SCREEN1) RETURN //--------------------------------------------------------------------------PROCEDURE SYNVNYMA FLAG25:=.T. //

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

THLE:=SPACE(10) SET COLOR TO "GR+/B" WINSHADE(18,23,20,70,'ON') SET COLOR TO "W+/B" SET CURSOR ON @ 19,24 SAY " Δώστε μου το τηλέφωνο του Ατόμου:" COLOR "BG+/B" GET THLE VALID KENA4() READ SET CURSOR OFF WINSHADE(18,23,20,70,'OFF') CLOSE INDEX INDEX ON THLEFONO1 TO THLEFONO SEEK THLE RETURN //--------------------------------------------------------------------------FUNCTION KENA4() IF THLE < '!' ALERT(" Μη δίνετε κενά... ",{" Επιστροφή "}) RETURN .F.


ENDIF RETURN .T.

// // // //

ΠΑΡΑΣΚΕΥΗ 18 ΙΟΥΛΙΟΥ 1997 ΑΡΧΕΙΟ ΓΕΝΙΚΩΝ ΕΡΓΑΣΙΩΝ ΣΤΟ ΠΡΟΓΡΑΜΜΑ ΒΙΒΛΙΟΘΗΚΗΣ

//--------------------------------------------------------------------------PROCEDURE ARXEIA LOCAL PINAKAS,EPILOG,SCREEN1 PINAKAS:={" Αντίγραφα

"," Σημειώσεις "," Ενημέρωση

"," Διαγραφή Μ "}

SET COLOR TO "GR+/B" WINSHADE(06,17,11,30,'ON') SET COLOR TO "W+/B" DO WHILE .T. SET KEY 4 TO RIGHT_ARROW SET KEY 19 TO LEFT1_ARROW EPILOG := ACHOICE(07,18,10,29,PINAKAS) SCREEN1:=SAVESCREEN(0,0,24,79) SET KEY 19 TO SET KEY 4 TO DO CASE CASE EPILOG=0 WINSHADE(06,17,11,30,'OFF') RETURN CASE EPILOG=1 ANTIGRAFA() CASE EPILOG=2 SIGN() CASE EPILOG=3 ENHMERVSH() CASE EPILOG=4 KEIMENA() ENDCASE RESTSCREEN(0,0,24,79,SCREEN1) ENDDO RETURN //--------------------------------------------------------------------------PROCEDURE ANTIGRAFA LOCAL MENU1,SCREEN1 SET COLOR TO "GR+/B" WINSHADE(15,35,19,66,'ON') SET COLOR TO "W+/B" DO WHILE .T.


@ @ @ @ @ @

16,36 16,52 17,36 17,52 18,36 18,52

SAY " Αντίγραφα στο " COLOR "G+/B" PROMPT " C:\KATALOGO " SAY " Αντίγραφα στο " COLOR "G+/B" PROMPT " C:\ARXEIA " SAY " Αντίγραφα στο " COLOR "BG+/B" PROMPT " A:\ "

SCREEN1:=SAVESCREEN(0,0,24,79) MENU TO MENU1 DO CASE CASE MENU1=0 EXIT CASE MENU1=1 CLS RUN COPY *.DB? C:\KATALOGO RUN COPY *.NTX C:\KATALOGO ? ? ? " Τα αρχεία αποθηκεύτηκαν σε αντίγραφα στο C:\KATALOGO.Πατήστε κάποιο πλήκτρο... " INKEY(0) CASE MENU1=2 CLS RUN COPY *.DB? C:\ARXEIA RUN COPY *.NTX C:\ARXEIA ? ? ? " Τα αρχεία αποθηκεύτηκαν σε αντίγραφα στο C:\ARXEIA.Πατήστε κάποιο πλήκτρο... " INKEY(0) CASE MENU1=3 CLS RUN COPY *.DB? A: RUN COPY *.NTX A: ? ? ? " Τα αρχεία αποθηκεύτηκαν σε αντίγραφα στο A:\.Πατήστε κάποιο πλήκτρο... " INKEY(0) ENDCASE RESTSCREEN(0,0,24,79,SCREEN1) ENDDO WINSHADE(15,35,19,66,'OFF') RETURN //--------------------------------------------------------------------------PROCEDURE ENHMERVSH SET DELETED ON SET COLOR TO "GR+/B" WINSHADE(15,39,18,70,'ON')


SET COLOR TO "W+/B" @ 16,40 SAY " Ενημέρωση του αρχείου BASEIS " COLOR "BG+/B" @ 17,40 SAY " με όλες τις βάσεις δεδομένων " INKEY(0) WINSHADE(15,39,18,70,'OFF') USE USE BASEIS ZAP // ΧΑΝΟΝΤΑΙ ΟΜΩΣ ΚΑΙ ΟΛΑ ΤΑ ΑΡΧΕΙΑ ΚΕΙΜΕΝΟΥ ΓΙΑ ΤΙΣ ΒΑΣΕΙΣ ΔΕΔΟΜΕΝΩΝ AEVAL(DIRECTORY("*.DBF"),{|ITEM| DBAPPEND(),RECADD(ITEM)}) SET COLOR TO "GR+/B" WINSHADE(15,40,19,69,'ON') SET COLOR TO "W+/B" @ 16,41 SAY PADC(" Ολοκληρώθηκε η ενημέρωση ",28) COLOR "BG+/B" @ 17,41 SAY PADC("Θα δείτε το αρχείο; ",28) @ 18,41 SAY PADC(" (ESC) ---> Επιστροφή ",28) INKEY(0) WINSHADE(15,40,19,69,'OFF') IF LASTKEY()=27 USE RETURN ENDIF SIGN() SET DELETED OFF RETURN //--------------------------------------------------------------------------PROCEDURE SIGN LOCAL HEADER HEADER:={} AADD(HEADER," AADD(HEADER," AADD(HEADER," AADD(HEADER," AADD(HEADER,"

Ονομα αρχείου ") Μέγεθος ") Ημερομηνία ") Ωρα ") Σημειώσεις ")

USE USE BASEIS INDEX ON NAMEFILE TO NAMEFILE SET COLOR TO "GR+/B" WINSHADE(10,4,20,76,'ON') SET COLOR TO "W+/B" DBEDIT(11,5,19,75,,"KEYS",,HEADER) WINSHADE(10,4,20,76,'OFF') USE RETURN


//-------------------------------------------------------------------------PROCEDURE KEIMENA PARAMETERS XFILE,XFILE1,XFILE2,XFILE3 LOCAL CHOICE,FILES,SCREEN1 @ 23,0,23,79 BOX REPLICATE(CHR(177),9) @ 24,13 SAY " Επιλέξτε αρχείο για να συμπτύξετε τα πεδία κειμένου " COLOR "BG+/B" SET COLOR TO "GR+/B" WINSHADE(11,31,22,46,'ON') SET COLOR TO "W+/B" DO WHILE .T. FILES:={} AEVAL(DIRECTORY("*.DBF"),{|ITEM| AADD(FILES,ITEM[1])}) NAME1:=SPACE(12) IF !EMPTY(CHOICE:=ACHOICE(12,33,21,44,FILES)) NAME1:=ALLTRIM(FILES[CHOICE]) ELSE EXIT ENDIF XFILE:=LEFT(NAME1,LEN(NAME1)-1) XFILE1:=XFILE+"T" XFILE2:=XFILE+"F" XFILE3:=LEFT(NAME1,LEN(NAME1)-4) USE &XFILE3 COPY TO NAME USE ERASE &XFILE2 ERASE &XFILE1 RENAME NAME.DBF TO &XFILE2 RENAME NAME.DBT TO &XFILE1 SCREEN1:=SAVESCREEN(0,0,24,79) CLS USE &XFILE2 DBEDIT(2,2,22,77) USE CLS RUN DIR *.DBF /OD INKEY(0) RUN DIR *.DBT /OD INKEY(0) RESTSCREEN(0,0,24,79,SCREEN1) ENDDO @ 24,0,24,79 BOX REPLICATE(CHR(177),9) WINSHADE(11,31,22,46,'OFF')


RETURN //-------------------------------------------------------------------------PROCEDURE RECADD(AREC) AEVAL(AREC,{|ELEM,POSIT| FIELDPUT(POSIT,IF(ELEM==NIL,"",ELEM))}) RETURN //-------------------------------------------------------------------------FUNCTION KEYS(MODE,COL) LOCAL RET:=1,NKEY:=LASTKEY(),SCREEN1,VAR DO CASE CASE MODE==1 .OR. MODE==2 KEYBOARD CHR(IF(MODE==2,31,30)) CASE MODE==3 WINSHADE(20,10,22,69,'ON') @ 21,11 SAY PADC(" Δεν υπάρχουν αρχεία στη βάση δεδομένων ", 58) COLOR "BG+/B" INKEY(0) WINSHADE(20,10,22,69,'OFF') RET:=0 OTHERWISE DO CASE CASE NKEY==27 RET:=0 CASE NKEY==22 IF VALTYPE(&(FIELD(COL)))=="M" SCREEN1:=SAVESCREEN(0,0,24,79) SET COLOR TO "G+/B" WINSHADE(12,7,22,76,'ON') @ 12,10 SAY "╡ Σημειώσεις για το αρχείo βάσης δεδομένων ╞" COLOR "BG+/B" SET COLOR TO "W+/B" SET CURSOR ON VAR:=MEMOEDIT(NOTES,13,8,21,75,.T.) SET CURSOR OFF WINSHADE(12,7,22,76,'OFF') REPLACE NOTES WITH VAR RESTSCREEN(0,0,24,79,SCREEN1) ENDIF ENDCASE ENDCASE RETURN (RET) // // // // //

ΑΡΧΕΙΟ ΓΙΑ ΤΙΣ ΕΚΤΥΠΩΣΕΙΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ "ΒΙΒΛΙΟΘΗΚΗ" - (1.00) ΤΡΙΤΗ 2 ΣΕΠΤΕΜΒΡΙΟΥ 1997

//--------------------------------------------------------------------------PROCEDURE EKTYP LOCAL PINAKAS,EPILOG PINAKAS:={" Κατάλογος

","Γ.Σημειώσεις","

Αρχείο

"}


@ 23,0,23,79 BOX REPLICATE(CHR(177),9) SET COLOR TO "GR+/B" WINSHADE(6,29,10,42,'ON') SET COLOR TO "W+/B" DO WHILE .T. SET KEY 19 TO LEFT_ARROW SET KEY 4 TO RIGHT1_ARROW EPILOG := ACHOICE(7,30,9,41,PINAKAS) SET KEY 4 TO SET KEY 19 TO DO CASE CASE EPILOG=0 WINSHADE(6,29,10,42,'OFF') RETURN CASE EPILOG=1 FLAG30:=.T. EKTYPVSH1() FLAG30:=.F. CASE EPILOG=2 EKTYPVSH1() CASE EPILOG=3 EKTYPVSH2() ENDCASE SET COLOR TO "GR+/B" WINSHADE(18,24,21,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" Θα εκτυπώσετε άλλο πεδίο ή να επιστρέψω; ",45) COLOR "BG+/B" @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Eκτύπωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(18,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDDO WINSHADE(6,29,10,42,'OFF') RETURN //--------------------------------------------------------------------------PROCEDURE EKTYPVSH1 USE IF FLAG30 USE KATALOGO INDEX ON NUMBER TO NUMBER EKTYPVSH()


ELSE USE SHMEIVS DO WHILE .T. IF ISPRINTER() SET COLOR TO "GR+/B" WINSHADE(18,51,20,71,'ON') SET COLOR TO "W+/B" @ 19,52 SAY PADC(" Εκτυπώση πεδίου ",19) COLOR "BG+/B" SET DEVICE TO PRINT LINES:=MLCOUNT(NOTES,71) MEMOTRAN(NOTES) FYSIKO() KART() FOR I:=1 TO LINES TEMP:=MEMOLINE(NOTES,71,I) @ PROW()+1,5 SAY TEMP NEXT @ PROW()+1,1 SAY " " @ PROW()+1,1 SAY " " @ PROW()+1,53 SAY HMERA()+' '+STR(DAY(DATE()),2)+' '+MHNAS()+' '+STR(YEAR(DATE()),4) EJECT SET DEVICE TO SCREEN INKEY(0) WINSHADE(18,51,20,71,'OFF') SET COLOR TO "GR+/B" WINSHADE(18,24,21,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" Θα επαναλάβετε την εκτύπωση ή να επιστρέψω; ",45) COLOR "BG+/B" @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Εκτύπωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(18,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ELSE

"BG+/B"

SET COLOR TO "GR+/B" WINSHADE(17,11,21,57,'ON') SET COLOR TO "W+/B" @ 18,12 SAY PADC(" O Eκτυπωτής είναι εκτός λειτουργίας.

",45) COLOR

@ 19,12 SAY PADC(" Ανοίξτε τον Εκτυπωτή ή βάλτε την ενδεικτική ",45) @ 20,12 SAY PADC(" λυχνία στη θέση ON LINE.(ESC) --> Επιστροφή ",45) INKEY(0)


WINSHADE(17,11,21,57,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF ENDDO ENDIF USE RETURN //--------------------------------------------------------------------------PROCEDURE EKTYPVSH DO WHILE .T. NAME:=SPACE(5) SET COLOR TO "GR+/B" WINSHADE(17,24,19,58,'ON') SET COLOR TO "W+/B" SET CURSOR ON @ 18,25 SAY " Αριθμός Μητρώου Ατόμου : " COLOR "BG+/B" GET NAME READ SET CURSOR OFF WINSHADE(17,24,19,58,'OFF') SEEK &NAME IF !FOUND() SET COLOR TO "GR+/B" WINSHADE(17,24,21,70,'ON') SET COLOR TO "W+/B" @ 18,25 SAY PADC(" Δεν υπάρχει εγγραφή με αυτά τα στοιχεία. ",45) COLOR "BG+/B" @ 19,25 SAY PADC(" Θα επαναλάβετε την εκτύπωση ή να επιστρέψω; ",45) @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Εκτύπωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(17,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF IF ISPRINTER() SET COLOR TO "GR+/B" WINSHADE(18,51,20,71,'ON') SET COLOR TO "W+/B" @ 19,52 SAY PADC(" Εκτυπώση πεδίου ",19) COLOR "BG+/B" SET DEVICE TO PRINT


LINES:=MLCOUNT(NOTES,71) MEMOTRAN(NOTES) FYSIKO() KART() FOR I:=1 TO LINES TEMP:=MEMOLINE(NOTES,71,I) @ PROW()+1,5 SAY TEMP NEXT @ PROW()+1,1 SAY " " @ PROW()+1,1 SAY " " @ PROW()+1,53 SAY HMERA()+' '+STR(DAY(DATE()),2)+' '+MHNAS()+' '+STR(YEAR(DATE()),4) EJECT SET DEVICE TO SCREEN INKEY(0) WINSHADE(18,51,20,71,'OFF') SET COLOR TO "GR+/B" WINSHADE(18,24,21,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" Θα επαναλάβετε την εκτύπωση ή να επιστρέψω; ",45) COLOR "BG+/B" @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Εκτύπωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(18,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ELSE SET COLOR TO "GR+/B" WINSHADE(17,11,21,57,'ON') SET COLOR TO "W+/B" @ 18,12 SAY PADC(" O Eκτυπωτής είναι εκτός λειτουργίας. ",45) COLOR "BG+/B" @ 19,12 SAY PADC(" Ανοίξτε τον Εκτυπωτή ή βάλτε την ενδεικτική ",45) @ 20,12 SAY PADC(" λυχνία στη θέση ON LINE.(ESC) --> Επιστροφή ",45) INKEY(0) WINSHADE(17,11,21,57,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF ENDDO USE RETURN


//--------------------------------------------------------------------------PROCEDURE KART @ 07,03 SAY "┌────────────────────────────────────────────────────────────────────────┐" @ 08,03 SAY "│" IF FLAG30=.T. @ 08,04 SAY PADC(" Σημειώσεις για τον επαγγελματία ",72)+"│" @ 09,03 SAY "├────────────┬───────────────────────────────────────────────────────────┤" @ 10,03 SAY "│ Αρ.Μητρώου │ "+PADR(TRIM(STR(NUMBER,5,0)),58)+"│" @ 11,03 SAY "│ Eπώνυμο │ "+PADR(TRIM(EPONYMO),58) +"│" @ 12,03 SAY "│ Oνομα │ "+PADR(TRIM(ONOMA),58) +"│" @ 13,03 SAY "│ Πατρώνυμο │ "+PADR(TRIM(PATRONYMO),58) +"│" @ 14,03 SAY "│ Επάγγελμα │ "+PADR(TRIM(ATTRIBUTE),58) +"│" @ 15,03 SAY "│ Διεύθυνση │ "+PADR(TRIM(ADDRESS1),58) +"│" @ 16,03 SAY "│ Τηλέφωνο1 │ "+PADR(TRIM(THLEFONO1),58) +"│" @ 17,03 SAY "│ Τηλέφωνο2 │ "+PADR(TRIM(THLEFONO2),58) +"│" @ 18,03 SAY "│ Ωρα │ "+PADR(TIME(),58) +"│" @ 19,03 SAY "└────────────┴───────────────────────────────────────────────────────────┘" @ 20,00 SAY " " @ 21,00 SAY " " ELSE @ 08,04 SAY PADC(" Γενικές Σημειώσεις Καταλόγου ",72)+"│" @ 09,03 SAY "└────────────────────────────────────────────────────────────────────────┘" @ 10,00 SAY " " @ 11,00 SAY " " ENDIF RETURN //--------------------------------------------------------------------------PROCEDURE FYSIKO @ 00,03 SAY "┌────────────────────────────────────────────────────────────────────────┐" @ 01,03 SAY "│ │" @ 02,03 SAY "│ KAΤΑΛΟΓΟΣ ΕΠΑΓΓΕΛΜΑΤΙΩΝ - ΓΕΝΙΚΕΣ ΣΗΜΕΙΩΣΕΙΣ │" @ 03,03 SAY "│ │" @ 04,03 SAY "└────────────────────────────────────────────────────────────────────────┘" @ 05,00 SAY " " RETURN //--------------------------------------------------------------------------PROCEDURE FYSIKO1 @ 00,03 SAY "┌────────────────────────────────────────────────────────────────────────┐" @ 01,03 SAY "│ │" @ 02,03 SAY "│ KAΤΑΛΟΓΟΣ ΕΠΑΓΓΕΛΜΑΤΙΩΝ │"


@ 03,03 SAY "│ │" @ 04,03 SAY "└────────────────────────────────────────────────────────────────────────┘" @ 05,00 SAY " " RETURN //--------------------------------------------------------------------------PROCEDURE EKTYPVSH2 USE USE KATALOGO INDEX ON NUMBER TO NUMBER DO WHILE .T. IF ISPRINTER() SET COLOR TO "GR+/B" WINSHADE(18,51,20,71,'ON') SET COLOR TO "W+/B" @ 19,52 SAY PADC(" Εκτυπώση αρχείου ",19) COLOR "BG+/B" SET DEVICE TO PRINT SET CONSOLE OFF FYSIKO1() LIST NUMBER,EPONYMO,ONOMA,ATTRIBUTE,THLEFONO1 TO PRINTER OFF @ PROW()+1,1 SAY " " @ PROW()+1,1 SAY " " @ PROW()+1,53 SAY HMERA()+' '+STR(DAY(DATE()),2)+' '+MHNAS()+' '+STR(YEAR(DATE()),4) EJECT SET DEVICE TO SCREEN SET CONSOLE ON INKEY(0) WINSHADE(18,51,20,71,'OFF') SET COLOR TO "GR+/B" WINSHADE(18,24,21,70,'ON') SET COLOR TO "W+/B" @ 19,25 SAY PADC(" Θα επαναλάβετε την εκτύπωση ή να επιστρέψω; ",45) COLOR "BG+/B" @ 20,25 SAY PADC(" (ΕΝΤΕR) ---> Εκτύπωση (ESC) ---> Επιστροφή ",45) INKEY(0) WINSHADE(18,24,21,70,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ELSE SET COLOR TO "GR+/B"


WINSHADE(17,11,21,57,'ON') SET COLOR TO "W+/B" @ 18,12 SAY PADC(" O Eκτυπωτής είναι εκτός λειτουργίας. ",45) COLOR "BG+/B" @ 19,12 SAY PADC(" Ανοίξτε τον Εκτυπωτή ή βάλτε την ενδεικτική ",45) @ 20,12 SAY PADC(" λυχνία στη θέση ON LINE.(ESC) --> Επιστροφή ",45) INKEY(0) WINSHADE(17,11,21,57,'OFF') IF LASTKEY()=27 EXIT ELSE LOOP ENDIF ENDIF ENDDO USE RETURN // // // //

ΤΕΤΑΡΤΗ 25/6/1997 ΑΡΧΕΙΟ ΜΕ ΒΟΗΘΗΤΙΚΕΣ ΛΕΙΤΟΥΡΓΙΕΣ ΤΟΥ ΠΡΟΓΡΑΜΜΑΤΟΣ

#INCLUDE #INCLUDE #INCLUDE #INCLUDE

"INKEY.CH" "MEMOGET1.CH" "MGDEF1.CH" "GETEXIT.CH"

#INCLUDE #INCLUDE #INCLUDE #INCLUDE

"MEMOEDIT.CH" "SETCURS.CH" "SET.CH" "DEBUG.CH"

// ΑΠΟ ΤΟ ΑΝΤΙΚΕΙΜΕΝΟ TBROWSE // ΓΙΑ ΤΑ ΜΕΜΟ ΠΕΔΙΑ ΣΤΙΣ ΚΑΡΤΕΣ // ΑΡΧΕΙΑ ΓΙΑ ΤΟ ΗΜΕΡΟΛΟΓΙΟ (ΜΑΛΛΟΝ)

#DEFINE pLINE REPLICATE(CHR(196),4) // ΕΝΤΟΛΕΣ ΓΙΑ ΤΟ ΗΜΕΡΟΛΟΓΙΟ #DEFINE pSPACES REPLICATE(CHR(32),4) #DEFINE LEN_COL_STR 20 #DEFINE LEN_VID_STK_ENTRY LEN_COL_STR + 3 #XCOMMAND UNTIL <EXP> => IF <EXP> ; EXIT ; END ; END #XTRANSLATE SAY(<R>,<C>,<EXP>) =>(DEVPOS(<R>,<C>),DEVOUT(<EXP>)) //---------------------------------------------------------------------------PROCEDURE SCRSAVE LOCAL SCREEN1 SET CURSOR OFF SCREEN1:=SAVESCREEN(0,0,24,79) RUN ART RESTSCREEN(0,0,24,79,SCREEN1) RETURN //---------------------------------------------------------------------------PROCEDURE TORUS LOCAL SCREEN1


SET CURSOR OFF SCREEN1:=SAVESCREEN(0,0,24,79) RUN TORUS RESTSCREEN(0,0,24,79,SCREEN1) RETURN //--------------------------------------------------------------------------PROCEDURE AKYRO CLEAR GETS FLAG14:=.T. RETURN //--------------------------------------------------------------------------PROCEDURE LISTA SET COLOR TO "GR+/B" WINSHADE(10,15,18,62,'ON') SET CURSOR OFF @ 10,30 SAY "╡ Function Keys ╞" COLOR "BG+/B" @ 11,16 SAY " ΠΛΗΚΤΡΟ ΛΕΙΤΟΥΡΓΙΑ " COLOR "BG+/B" @ 12,15 SAY "╟──────────────────────────────────────────────╢" SET COLOR TO "W+/B" @ 13,16 SAY " F1" COLOR "G+/B" @ 13,COL() SAY " - Γενικές οδηγίες για το πρόγραμμα " @ 14,16 SAY " F2" COLOR "G+/B" @ 14,COL() SAY " - Λειτουργίες των Function Keys " @ 15,16 SAY " F3" COLOR "G+/B" @ 15,COL() SAY " - Γενικές πληροφορίες για τον Η/Υ " @ 16,16 SAY " F4" COLOR "G+/B " @ 16,COL() SAY " - Ακύρωση της εισαγωγής στοιχείων " @ 17,16 SAY " F5" COLOR "G+/B" @ 17,COL() SAY " - Ενεργοποίηση του ScreenSaver ART " INKEY(0) WINSHADE(10,15,18,62,'OFF') RETURN //-------------------------------------------------------------------------PROCEDURE CALENDAR LOCAL SCREEN1 SCREEN1:=SAVESCREEN(0,0,24,79) @ 8,0,24,79 BOX REPLICATE(CHR(177),9) SET CURSOR OFF SET EXACT OFF SET DATE AMERICAN CALENDA(,DATE()) SET DATE BRITISH SET EXACT ON RESTSCREEN(0,0,24,79,SCREEN1) RETURN //---------------------------------------------------------------------------


PROCEDURE CALENDA(ASTRUC,DDATE,BACT) LOCAL NROW,NCOL,CCOLOR,CSCREEN NROW:=ROW() NCOL:=COL() CCOLOR:=SETCOLOR() CSCREEN:=SAVESCREEN(0,0,24,79) ASTRUC:={} BACT:={|| .T.} IF EMPTY(LEN(ASTRUC)) ASTRUC:={8,41,MONTH(DATE()),YEAR(DATE()),SETCOLOR(),DATE(),{|X,Y| CALENDARKEYS(X,Y,BACT)}} ENDIF ASTRUC[7]:=IF(VALTYPE(ASTRUC[7])="B",ASTRUC[7],{|| .T.}) IF DDATE != NIL ASTRUC[6] := DDATE ENDIF DO WHILE .T. SETCOLOR(ASTRUC[5]) DISPBEGIN() DISPBOX(ASTRUC[1],ASTRUC[2],ASTRUC[1]+16,ASTRUC[2]+35,SPACE(9)) SET COLOR TO "GR+/B" SAY(ASTRUC[1]+1,ASTRUC[2]+2,PADR(SAYDATE(ASTRUC[3],ASTRUC[4]),30)) SET COLOR TO "W+/B" SAY(ASTRUC[1]+2,ASTRUC[2],CHR(195)+REPLICATE(CHR(196),34)+CHR(180)) SET COLOR TO "G+/B" SAY(ASTRUC[1]+3,ASTRUC[2]+1,"Κυρ Δευ Τρι Τετ Πεμ Παρ Σαβ") SET COLOR TO "W+/B" SAY(ASTRUC[1]+4,ASTRUC[2],CHR(195)+REPLICATE(CHR(196),34)+CHR(180)) SAY(ASTRUC[1]+4,ASTRUC[2]+1,REPLICATE(pLINE+CHR(194),6)) SAY(ASTRUC[1]+5,ASTRUC[2]+1,REPLICATE(pSPACES+CHR(179),6)) SAY(ASTRUC[1]+6,ASTRUC[2],CHR(195)+REPLICATE(pLINE+CHR(197),6)+pLINE+CHR(180)) SAY(ASTRUC[1]+7,ASTRUC[2]+1,REPLICATE(pSPACES+CHR(179),6)) SAY(ASTRUC[1]+8,ASTRUC[2],CHR(195)+REPLICATE(pLINE+CHR(197),6)+pLINE+CHR(180)) SAY(ASTRUC[1]+9,ASTRUC[2]+1,REPLICATE(pSPACES+CHR(179),6)) SAY(ASTRUC[1]+10,ASTRUC[2],CHR(195)+REPLICATE(pLINE+CHR(197),6)+pLINE+CHR(180)) SAY(ASTRUC[1]+11,ASTRUC[2]+1,REPLICATE(pSPACES+CHR(179),6)) SAY(ASTRUC[1]+12,ASTRUC[2],CHR(195)+REPLICATE(pLINE+CHR(197),6)+pLINE+CHR(180)) SAY(ASTRUC[1]+13,ASTRUC[2]+1,REPLICATE(pSPACES+CHR(179),6)) SAY(ASTRUC[1]+14,ASTRUC[2],CHR(195)+REPLICATE(pLINE+CHR(197),6)+pLINE+CHR(180)) SAY(ASTRUC[1]+15,ASTRUC[2]+1,REPLICATE(pSPACES+CHR(179),6)) SAY(ASTRUC[1]+16,ASTRUC[2]+1,REPLICATE(pLINE+CHR(193),6)) SET COLOR TO "GR+/B" DISPBOX(ASTRUC[1],ASTRUC[2],ASTRUC[1]+16,ASTRUC[2]+35,2) @ 24,41 SAY "╚════╧════╧════╧════╧════╧════╧════╝" SET COLOR TO "W+/B"


DISPDATES(CTOD(STR(ASTRUC[3],2)+"/01/"+RIGHT(STR(ASTRUC[4],4),2)),ASTRUC[1],ASTR UC[2],ASTRUC[6]) DISPEND() UNTIL EVAL(ASTRUC[7],INKEY(0),ASTRUC) SETPOS(NROW,NCOL) SETCOLOR(CCOLOR) RESTSCREEN(0,0,24,79,CSCREEN) RETURN //-------------------------------------------------------------------------FUNCTION CALENDARKEYS(NKEY,AARRAY,BKEYVAL) LOCAL LRET,CSCREEN LRET:=.F. IF (EVAL(BKEYVAL,NKEY,AARRAY[6])) DO CASE CASE NKEY==-1 DISPBEGIN() CSCREEN:=SAVESCREEN(0,0,24,79) SCROLL(8,1,20,38) SET COLOR TO "GR+/B" DISPBOX(8,1,20,38,2) SET COLOR TO "G+/B" SAY(9,2," Πλήκτρα λειτουργιών Ημερολογίου ") SET COLOR TO "GR+/B" SAY(10,1,"╟────────────────────────────────────╢") SET COLOR TO "W+/B" SAY(11,2," F2 : Αυτή η οθόνη οδηγιών ") SAY(12,2," + : Aύξηση της ημερομηνίας ") SAY(13,2," : Μείωση της ημερομηνίας ") SAY(14,2," Α.Βέλος : Eπόμενος μήνας ") SAY(15,2," Κ.Βέλος : Προηγούμενος μήνας ") SAY(16,2," Home : Ο Ιανουάριος του έτους ") SAY(17,2," End : Ο Δεκέμβριος του έτους ") SAY(18,2," PageUp : 1 Eτος μετά,ίδιος μήνας ") SAY(19,2," PageDown : 1 Ετος πριν,ίδιος μήνας ") DISPEND() INKEY(0) RESTSCREEN(0,0,24,79,CSCREEN) CASE NKEY==ASC("+") AARRAY[3]:=MONTH(++AARRAY[6]) AARRAY[4]:=YEAR(AARRAY[6]) CASE NKEY==ASC("-") AARRAY[3]:=MONTH(--AARRAY[6]) AARRAY[4]:=YEAR(AARRAY[6]) CASE NKEY==5 AARRAY[4] += IF(++AARRAY[3] > 12,(AARRAY[3]:=1,1),0) CASE NKEY==24 AARRAY[4] -= IF(--AARRAY[3] < 1,(AARRAY[3]:=12,1),0) CASE NKEY==1 AARRAY[3]:=1 CASE NKEY==6 AARRAY[3]:=12 CASE NKEY==3


AARRAY[4]-CASE NKEY==18 AARRAY[4]++ CASE NKEY==27 LRET:=.T. ENDCASE ENDIF RETURN (LRET) //-------------------------------------------------------------------------PROCEDURE DISPDATES(DBEGIN,NROW,NCOL,THEDATE) LOCAL DBEG,OFFSETCOL,OFFSETROW,NEWDATE,CCOLOR OFFSETROW:=5 NEWDATE:=DBEGIN CCOLOR:=SETCOLOR() DO WHILE .T. DBEG:=DOW(NEWDATE) OFFSETCOL:=(5*DBEG)-4 OFFSETROW+=IF(DBEG=1,2,0) IF THEDATE==NEWDATE SET COLOR TO "N/W+" ENDIF SAY(NROW+OFFSETROW,NCOL+OFFSETCOL,DAY(NEWDATE)) SETCOLOR(CCOLOR) UNTIL MONTH(DBEGIN) != MONTH(++NEWDATE) RETURN //-------------------------------------------------------------------------FUNCTION SAYDATE(NMONTH,NYEAR) LOCAL AMONTHS:={} LOCAL NCOUNTER,CRET,VAR1 CRET:="" FOR NCOUNTER:=1 TO 12 AADD(AMONTHS,CMONTH(CTOD(STR(NCOUNTER,2)+"/01/90"))) NEXT DO CASE CASE AMONTHS[NMONTH]="January" VAR1="Ιανουάριος" CASE AMONTHS[NMONTH]="February" VAR1="Φεβρουάριος" CASE AMONTHS[NMONTH]="March" VAR1="Μάρτιος" CASE AMONTHS[NMONTH]="April" VAR1="Απρίλιος" CASE AMONTHS[NMONTH]="May" VAR1="Μάιος"


CASE AMONTHS[NMONTH]="June" VAR1="Ιούνιος" CASE AMONTHS[NMONTH]="July" VAR1="Ιούλιος" CASE AMONTHS[NMONTH]="August" VAR1="Αύγουστος" CASE AMONTHS[NMONTH]="September" VAR1="Σεπτέμβριος" CASE AMONTHS[NMONTH]="October" VAR1="Οκτώβριος" CASE AMONTHS[NMONTH]="November" VAR1="Νοέμβριος" CASE AMONTHS[NMONTH]="December" VAR1="Δεκέμβριος" ENDCASE CRET:=VAR1+" του "+STR(NYEAR,4) RETURN (CRET) //--------------------------------------------------------------------------PROCEDURE INFO LOCAL CHOICE,SCREEN1,FILES,ARITHMOS,STRING,MEGETHOS SCREEN1:=SAVESCREEN(0,0,24,79) FILES :={} @ 8,0,24,79 BOX REPLICATE(CHR(177),9) SET CURSOR OFF @ 23,1 SAY " Επιλέξτε αρχείο για να δείτε τις γενικές πληροφορίες " COLOR "BG+/B" AEVAL(DIRECTORY("*.DBF"),{|ITEM| AADD(FILES,ITEM[1])}) SET COLOR TO "GR+/B" WINSHADE(8,56,22,71,'ON') SET COLOR TO "W+/B" DO WHILE .T. NAME1:=SPACE(12) IF !EMPTY(CHOICE:=ACHOICE(9,58,21,69,FILES)) NAME1:=ALLTRIM(FILES[CHOICE]) ELSE EXIT ENDIF USE USE &NAME1

// ΚΛΕΙΣΙΜΟ ΟΛΩΝ ΤΝΩ ΑΡΧΕΙΩΝ - ΚΑΙ ΤΟΥ PELATES.DBF // ΑΝΟΙΓΜΑ ΑΡΧΕΙΟ ΔΕΔΟΜΕΝΩΝ ΚΑΤ'ΕΠΙΛΟΓΗ

MEGETHOS:=(RECSIZE()*LASTREC()+HEADER()+1) ARITHMOS:=LASTREC() STRING :=NAME1 @ 15,5 SAY " Γενικές πληροφορίες για το αρχείο "+STRING+" " COLOR "BG+/B" SET COLOR TO "GR+/B"


WINSHADE(8,5,13,48,'ON') SET COLOR TO "W+/B" @ 9,6 SAY " Το αρχείο ενημερώθηκε για τελευταία φορά " @ 10,6 SAY " την " @ 10,COL()+1 SAY HMERA()+' '+STR(DAY(LUPDATE()),2)+' '+MHNAS()+' '+STR(YEAR(LUPDATE()),4) COLOR "G+/B" @ 10,COL()+1 SAY "." @ 11,6 SAY " Το μέγεθος του είναι " @ 11,COL()+1 SAY ALLTRIM(STR(MEGETHOS,10)) COLOR "G+/B" @ 11,COL()+1 SAY " Bytes, " @ 12,6 SAY " και περιέχει " @ 12,COL()+1 SAY ALLTRIM(STR(ARITHMOS,4)) COLOR "G+/B" @ 12,COL()+1 SAY " εγγραφές. " INKEY(0) SET COLOR TO "GR+/B" WINSHADE(17,5,20,48,'ON') SET COLOR TO "W+/B" @ 18,6 SAY PADC(" Θα δείτε άλλο αρχείο ή να επιστρέψω; ",42) COLOR "BG+/B" @ 19,6 SAY PADC(" (ENTER) ---> Αρχείο (ESC) ---> Επιστροφή ",42) INKEY(0) WINSHADE(17,5,20,48,'OFF') WINSHADE(8,5,13,48,'OFF') @ 15,5,15,55 BOX REPLICATE(CHR(177),9) IF LASTKEY()=27 EXIT ENDIF ENDDO WINSHADE(8,56,22,71,'OFF') RESTSCREEN(0,0,24,79,SCREEN1) RETURN //--------------------------------------------------------------------------PROCEDURE SYSTEM SET COLOR TO "GR+/B" WINSHADE(14,4,18,68,'ON') SET CURSOR OFF @ 14,8 SAY "╡ Γενικές πληροφορίες για τον Ηλεκτρονικό Υπολογιστή ╞" COLOR "BG+/B" SET COLOR TO "W+/B" @ 15,5 SAY " Ο ελεύθερος χώρος στο Σκληρό Δίσκο είναι " @ 15,COL()+1 SAY STR(DISKSPACE(3),11) COLOR "G+/B" @ 15,COL()+1 SAY " Bytes. " @ 16,5 SAY " Ελεύθερη Μνήμη RAM (Tυχ.Προσπέλασης) " @ 16,COL()+1 SAY STR(MEMORY(0),4) COLOR "G+/B" @ 16,COL()+1 SAY " (KB) Kilobytes. " @ 17,5 SAY " Ελεύθερη Μνήμη για έξοδο στο MS-DOS " @ 17,COL()+1 SAY STR(MEMORY(3),4) COLOR "G+/B" @ 17,COL()+1 SAY " (KB) Kilobytes. " INKEY(0) WINSHADE(14,4,18,68,'OFF') RETURN //--------------------------------------------------------------------------


PROCEDURE OFFCURSOR SET CURSOR OFF RETURN //---------------------------------------------------------------------------PROCEDURE HMEROMHNIA SET COLOR TO "GR+/B" WINSHADE(18,18,20,61,'ON') SET COLOR TO "G+/B" @ 19,20 SAY HMERA()+' '+STR(DAY(DATE()),2)+' '+MHNAS()+' '+STR(YEAR(DATE()),4) @ 18,50 SAY "╤" COLOR "GR+/B" @ 19,50 SAY "│" COLOR "GR+/B" @ 20,50 SAY "╧" COLOR "GR+/B" @ 19,52 SAY TIME() RETURN //---------------------------------------------------------------------------PROCEDURE HMEROMHN1 FLAG22:=.F. SET COLOR TO "GR+/B" WINSHADE(15,18,17,61,'ON') SET COLOR TO "G+/B" @ 16,20 SAY HMERA()+' '+STR(DAY(DATE()),2)+' '+MHNAS()+' '+STR(YEAR(DATE()),4) @ 15,50 SAY "╤" COLOR "GR+/B" @ 16,50 SAY "│" COLOR "GR+/B" @ 17,50 SAY "╧" COLOR "GR+/B" @ 16,52 SAY TIME() RETURN //--------------------------------------------------------------------------PROCEDURE HMERA LOCAL CHOICE IF !FLAG22 CHOICE:=CDOW(DATE()) ELSE CHOICE:=CDOW(LUPDATE()) ENDIF DO CASE CASE CHOICE="Sunday" RETURN ("Κυριακή") CASE CHOICE="Monday" RETURN ("Δευτέρα") CASE CHOICE="Tuesday" RETURN ("Τρίτη") CASE CHOICE="Wednesday" RETURN ("Τετάρτη") CASE CHOICE="Thursday" RETURN ("Πέμπτη") CASE CHOICE="Friday" RETURN ("Παρασκευή") CASE CHOICE="Saturday"


ENDCASE

RETURN ("Σάββατο")

RETURN //--------------------------------------------------------------------------PROCEDURE MHNAS LOCAL CHOICE1 IF !FLAG22 CHOICE1:=MONTH(DATE()) ELSE CHOICE1:=MONTH(LUPDATE()) ENDIF DO CASE CASE CHOICE1=01 RETURN ("Ιανουαρίου") CASE CHOICE1=02 RETURN ("Φεβρουαρίου") CASE CHOICE1=03 RETURN ("Μαρτίου") CASE CHOICE1=04 RETURN ("Απριλίου") CASE CHOICE1=05 RETURN ("Μαίου") CASE CHOICE1=06 RETURN ("Ιουνίου") CASE CHOICE1=07 RETURN ("Ιουλίου") CASE CHOICE1=08 RETURN ("Αυγούστου") CASE CHOICE1=09 RETURN ("Σεπτεμβρίου") CASE CHOICE1=10 RETURN ("Οκτωβρίου") CASE CHOICE1=11 RETURN ("Νοεμβρίου") CASE CHOICE1=12 RETURN ("Δεκεμβρίου") ENDCASE RETURN //--------------------------------------------------------------------------FUNCTION KENA1() IF EPON < '!' ALERT(" Μη δίνετε κενά... ",{" Επιστροφή "}) RETURN .F. ENDIF RETURN .T. //--------------------------------------------------------------------------FUNCTION KENA2() IF ONOM < '!' ALERT(" Mή δίνετε κενά... ",{" Επιστροφή "}) RETURN .F.


ENDIF RETURN .T. //--------------------------------------------------------------------------FUNCTION KENA3() IF PATR < '!' ALERT(" Μη δίνετε κενά... ",{" Επιστροφή "}) RETURN .F. ENDIF RETURN .T. //-------------------------------------------------------------------------PROCEDURE SKIA LOCAL SCREENLINE,SHADOW @ 24,2,24,76 BOX REPLICATE(CHR(177),9) SCREENLINE:=SAVESCREEN(24,2,24,76) SHADOW:=TRANSFORM(SCREENLINE,REPLICATE("X"+CHR(7),LEN(SCREENLINE))) RESTSCREEN(24,2,24,76,SHADOW) RETURN //--------------------------------------------------------------------------PROCEDURE STATHIS LOCAL XNOTES1 XNOTES1:=SPACE(10) USE USE SHMEIVS

// ΚΛΕΙΣΙΜΟ ΟΛΩΝ ΤΩN ΑΡΧΕΙΩΝ - ΚΑΙ ΤΟΥ PELATES.DBF // XΡΗΣΗ ΤΟΥ ΑΡΧΕΙΟΥ ΓΕΝΙΚΩΝ ΣΗΜΕΙΩΣΕΩΝ

SET CURSOR ON @ 8,0,24,79 BOX REPLICATE(CHR(177),9) SET COLOR TO "GR+/B" WINSHADE(8,1,23,76,'ON') @ 8,4 SAY "╡ Γενικές Σημειώσεις ╞" COLOR "BG+/B" SET COLOR TO "W+/B" XNOTES1:=MemoEdit(NOTES,9,2,22,75,.T.,"WP_UDF") REPLACE NOTES WITH XNOTES1 WINSHADE(8,1,23,76,'OFF') SET CURSOR OFF USE

// ΚΛΕΙΣΙΜΟ ΤΟΥ ΑΡΧΕΙΟΥ ΓΕΝΙΚΩΝ ΣΗΜΕΙΩΣΕΩΝ

RETURN //-------------------------------------------------------------------------PROCEDURE PERSONAL SET COLOR TO "BG+/B" WINSHADE(12,9,18,70,'ON') SET COLOR TO "W+/B" @ 13,10 SAY PADC(" Το πρόγραμμα ΚΑΤΑΛΟΓΟΣ ΕΠΑΓΓΕΛΜΑΤΙΩΝ δημιουργήθηκε ",60)


@ 14,10 SAY " με την γλώσσα προγραμματισμού " @ 14,COL()+1 SAY VERSION() COLOR "BG+/B" @ 14,COL()+1 SAY "," @ 15,10 SAY PADC(" από τον Φυσικό Στάθη Γουρζή. Λευκάδα - Σεπτέμβριος 1997 ",60) @ 16,10 SAY PADC(" Για οποιαδήποτε διόρθωση,υπόδειξη ή πληροφορία, ",60) @ 17,10 SAY PADC(" επικοινωνήστε με το τηλέφωνο 0645-71500. ",60) INKEY(0) WINSHADE(12,9,18,70,'OFF') RETURN //---------------------------------------------------------------------------FUNCTION WP_UDF PARAMETERS MODE,LINE,COL RET_VAL=0 DO CASE CASE MODE=0 @ 24,47 SAY " ΓΡΑΜΜΗ : "+ALLTRIM(STR(LINE,IF(LINE<100,2,5),0))+" " COLOR "G+/B" @ 24,63 SAY " ΣΤΗΛΗ : "+ALLTRIM(STR(COL,2,0)) COLOR "G+/B" CASE NEXTKEY()=-11 RET_VAL:=K_CTRL_W ENDCASE RETURN RET_VAL //--------------------------------------------------------------------------PROCEDURE LEFT_ARROW KEYBOARD CHR(27)+CHR(19)+CHR(13) RETURN //--------------------------------------------------------------------------PROCEDURE RIGHT_ARROW KEYBOARD CHR(27)+CHR(4)+CHR(13) RETURN //--------------------------------------------------------------------------PROCEDURE LEFT1_ARROW KEYBOARD CHR(27)+CHR(19) RETURN //--------------------------------------------------------------------------PROCEDURE RIGHT1_ARROW KEYBOARD CHR(27)+CHR(4) RETURN //--------------------------------------------------------------------------Function SIndex


Parameters SField,SIndex,STitle Private SField,SIndex,STitle SET COLOR TO "GR+/B" WINSHADE(15,10,21,68,'ON') @ 15,11 SAY '╡ '+STitle+' ╞' COLOR "BG+/B" @ 16,21 Say " Διαδικασία T α ξ ι ν ό μ η σ η ς" COLOR "W+/B" @ 17,10 Say "╠"+Replicate("═",57)+"╣" SET COLOR TO "W+/B" @ 18,14 Say " Ποσοστό Ταξινόμησης (%) " @ 19,14 Say "0 10 20 30 40 50 60 70 80 90 100" @ 20,14 Say "░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░" Index On Bar(&SField) To &SIndex CLOSE INDEX INKEY(0) WINSHADE(15,10,21,68,'OFF') RELEASE ALL Return("") //--------------------------------------------------------------------------Function Bar PARAMETERS IField,Index_Flag PRIVATE IField,Pct Index_Flag:=.T. IF Index_Flag If RecNo() < RecCount() + 1 Pct = RecNo() * 100 / RecCount() @ 20,14 Say Replicate("▓",(Pct/2)+1) COLOR "G+/B" EndIf Endif Index_Flag:=.F. RELEASE Pct Return (IField) //--------------------------------------------------------------------------PROCEDURE CALC PRIVATE adit,mul,div,afer,t,l,v_number SET ESCAPE ON v_number=0 adit=0 mul=0 div=0 afer=0 t=12 l=22 @ 23,0,23,79 BOX REPLICATE(CHR(177),9) SET COLOR TO "GR+/B"


WINSHADE(t-2,l-1,t+10,l+19,'ON') SET COLOR TO "W+/B" @t-1,l+1 @t ,l+1 @t+1,l+1 @t+2,l+1 @t+3,l+1 @t+4,l+1 @t+5,l+1 @t+6,l+1 @t+7,l+1 @t+8,l+1 @t+9,l+1

SAY SAY SAY SAY SAY SAY SAY SAY SAY SAY SAY

'┌───────────────┐' '│ │' '├───┬───┬───┬───┤' '│ 1 │ 2 │ 3 │ + │' '├───┼───┼───┼───┤' '│ 4 │ 5 │ 6 │ - │' '├───┼───┼───┼───┤' '│ 7 │ 8 │ 9 │ * │' '├───┼───┼───┼───┤' '│ C │ 0 │ = │ / │' '└───┴───┴───┴───┘'

SET COLOR TO "GR+/B" WINSHADE(18,46,21,74,'ON') SET COLOR TO "W+/B" @ 19,47 SAY PADC(" Mε C καθαρίζετε τη μνήμη ",27) COLOR "BG+/B" @ 20,47 SAY PADC(" Mε (ESC) ---> Επιστροφή ",27) COLOR "BG+/B" SET SET SET SET SET SET SET SET SET

KEY KEY KEY KEY KEY KEY KEY KEY KEY

43 42 45 47 13 67 99 150 175

TO TO TO TO TO TO TO TO TO

MAKE MAKE MAKE MAKE MAKE MAKE MAKE MAKE MAKE

&& && && && && && && && &&

+ * / ENTER C c Ψ ψ

DO WHILE LASTKEY()<>27 SET CURSOR ON @T,L+3 GET V_NUMBER PICTURE '9999999999.99' COLOR "G+/B" READ SET CURSOR OFF KEYBOARD(1) ENDDO SET SET SET SET SET SET SET SET SET

KEY KEY KEY KEY KEY KEY KEY KEY KEY

43 42 45 47 13 67 99 150 175

TO TO TO TO TO TO TO TO TO

&& && && && && && && && &&

+ * / ENTER C c Ψ ψ

WINSHADE(18,46,21,74,'OFF') WINSHADE(t-2,l-1,t+10,l+19,'OFF') RELEASE adit,mul,div,afer,t,l,v_number SET ESCAPE OFF RETURN //--------------------------------------------------------------------------PROCEDURE MAKE CLEAR GETS


DO CASE CASE ADIT=0 .AND. MUL=0 .AND. DIV=0 .AND. AFER=0 ADIT=V_NUMBER V_NUMBER=ADIT DO COMP CASE ADIT<>0 ADIT=V_NUMBER+ADIT V_NUMBER=ADIT DO COMP CASE MUL<>0 MUL=MUL*V_NUMBER V_NUMBER=MUL DO COMP CASE DIV<>0 DIV=DIV/V_NUMBER V_NUMBER=DIV DO COMP CASE AFER<>0 AFER=AFER-V_NUMBER V_NUMBER=AFER DO COMP ENDCASE RETURN //-------------------------------------------------------------------------PROCEDURE COMP DO CASE CASE LASTKEY()=43 && + ADIT=V_NUMBER MUL=0

CASE

CASE

CASE

CASE

CASE

DIV=0 AFER=0 LASTKEY()=42 && * MUL=V_NUMBER ADIT=0 DIV=0 AFER=0 LASTKEY()=45 && AFER=V_NUMBER ADIT=0 DIV=0 MUL=0 LASTKEY()=47 && / DIV=V_NUMBER ADIT=0 MUL=0 AFER=0 LASTKEY()=13 && <enter> V_NUMBER=V_NUMBER ADIT=0 AFER=0 DIV=0 MUL=0 CHR(LASTKEY()) $ 'CcψΨ' V_NUMBER=0 ADIT=0 AFER=0


DIV=0 MUL=0 ENDCASE IF V_NUMBER>9999999999.99 SET CURSOR OFF @t,l+2 SAY ' Εκτός Ορίων V_NUMBER=0 ADIT=0 AFER=0 DIV=0 MUL=0 INKEY(0) @t,l+2 SAY ' ' SET CURSOR ON ENDIF

' COLOR "GR+/B"

RETURN //--------------------------------------------------------------------------PROCEDURE DbStabilize(oTbr) LOCAL nSaveRecno := recno() oTbr:refreshAll() DO WHILE !oTbr:stabilize() ENDDO DO WHILE recno() != nSaveRecno oTbr:up() DO WHILE !oTbr:stabilize() ENDDO ENDDO RETURN //-------------------------------------------------------------------------FUNCTION MEMOBLOCK(nFieldNum) RETURN {|nMode| IIF(nMode == NIL,"Memo",FIELDBLOCK(FIELD(nFieldNum)))} //---------------------------------------------------------------------------PROCEDURE GETIT(oTbr) LOCAL lReadExitSet:=READEXIT(.T.),oGet,oGetCol oGetCol:=oTbr:GetColumn(oTbr:colpos) oGet:=GetNew(Row(),Col(),oGetCol:Block,oGetCol:Heading) READMODAL({oGet}) oTbr:refreshCurrent() oTbr:refreshAll() IF LastKey()==K_UP .OR. ; LastKey()==K_DOWN .OR. ; LastKey()==K_PGUP .OR. ; LastKey()==K_PGDN KEYBOARD Chr(LastKey()) ENDIF


READEXIT(lReadExitSet) RETURN //--------------------------------------------------------------------------FUNCTION Upperg PARAMETERS String PRIVATE Lower,Upper,i,Char,Length,Distance,Buffer Lower = 'αβγδεζηθικλμνξοπρστυφχψω' Upper = 'ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ' Distance = ASC('Α')-ASC('Ω') Buffer = '' For i=1 to LEN(TRIM(M->String)) Char = SUBSTR(M->String,M->i ,1 ) Buffer = M->Buffer + IF (M->Char >= 'α' .AND. M->Char <= 'ψ' ,; CHR(ASC(M->Char) + M->Distance),; IF (M->Char $ M->Lower,; SUBSTR(M->Upper,AT( M->Char,M->Lower), 1 ),M->Char)) NEXT M->i RETURN

M->Buffer +SPACE(LEN( M->String ) - M->i+1)

//--------------------------------------------------------------------------PROCEDURE HELP LOCAL SCREEN SCREEN:=SAVESCREEN(0,0,24,79) @ 1,76,24,79 BOX REPLICATE(CHR(177),9) @ 23,0,24,79 BOX REPLICATE(CHR(177),9) SET COLOR TO "GR+/B" WINSHADE(1,1,22,75,'ON') SET COLOR TO "W+/B" FINDSTR1() WINSHADE(1,1,22,75,'OFF') SET CURSOR OFF RESTSCREEN(0,0,24,79,SCREEN) RETURN //-------------------------------------------------------------------------PROCEDURE FINDSTR1 LOCAL I,NEWCOL,LINES,VAR LOCAL SCREEN2,SCREEN3,SCREEN4 MEMVAR STR,ACT,NROW,NCOL,RELROW,RELCOL PRIVATE STR,ACT,NROW,NCOL,RELROW,RELCOL ACT:=.T. NROW:=1 NCOL:=0


RELROW:=0 RELCOL:=0 SET CURSOR ON @ 1,10 SAY "╡ Οδηγίες για τις βασικές λειτουργίες του προγράμματος ╞" COLOR "BG+/B" DO WHILE ACT ACT:=.F. VAR:=MEMOREAD("HELP.TXT") SET CURSOR ON VAR:=MEMOEDIT(VAR,2,2,21,74,.F.,"UFUNC1",,,NROW,NCOL,RELROW,RELCOL) IF ACT NEWCOL:=AT(ALLTRIM(STR),SUBSTR(MEMOLINE(VAR,73,NROW),NCOL+1)) IF NEWCOL !=0 NCOL:=NEWCOL-1+NCOL RELCOL:=NCOL SCREEN2:=SAVESCREEN(24,60,24,76) SET COLOR TO "GR+/B" SET CURSOR OFF @ 24,60 SAY " Βρέθηκε " INKEY(0.5) SET COLOR TO "W+/B" SET CURSOR ON RESTSCREEN(24,60,24,76,SCREEN2) ELSE LINES:=MLCOUNT(VAR,73) NEWCOL:=0 I:=NROW+1 DO WHILE NEWCOL==0 .AND. I <= LINES NEWCOL:=AT(ALLTRIM(STR),MEMOLINE(VAR,73,I)) IF NEWCOL==0 I:=I+1 ENDIF ENDDO IF NEWCOL !=0 NCOL:=NEWCOL-1 RELCOL:=NCOL NROW:=I RELROW:=(I-1)%14 SCREEN3:=SAVESCREEN(24,60,24,76) SET COLOR TO "GR+/B" SET CURSOR OFF @ 24,60 SAY " Βρέθηκε " INKEY(0.5) SET COLOR TO "W+/B" SET CURSOR ON RESTSCREEN(24,60,24,76,SCREEN3) ELSE SCREEN4:=SAVESCREEN(24,60,24,76) SET COLOR TO "GR+/B" SET CURSOR OFF @ 24,60 SAY " Δεν βρέθηκε " INKEY(0.5) SET COLOR TO "W+/B"


SET CURSOR ON RESTSCREEN(24,60,24,76,SCREEN4) ENDIF ENDIF ENDIF ENDDO SET CURSOR OFF RELEASE ALL RETURN //---------------------------------------------------------------------------FUNCTION UFUNC1(NMODE,NLINE,NCOL1) MEMVAR NROW,NCOL,RELROW,RELCOL,ACT,STR LOCAL RETVAL,SAVELINE LOCAL GETLIST:={} STR:=SPACE(10) IF NMODE==ME_INIT RETVAL:=ME_DEFAULT ELSEIF LASTKEY()==K_ALT_S NROW:=NLINE NCOL:=NCOL1 RELROW:=ROW()-2 RELCOL:=COL()-2 SAVELINE:=SAVESCREEN(24,2,24,35) SET COLOR TO "G+/B" @ 24,2 SAY " Αναζήτηση για: " GET STR READ SET COLOR TO "W+/B" RETVAL:=K_CTRL_W ACT:=.T. RESTSCREEN(24,2,24,35,SAVELINE) ELSE RETVAL:=ME_DEFAULT ENDIF RETURN RETVAL //-------------------------------------------------------------------------PROCEDURE ANDREAS SET COLOR TO "GR+/B" WINSHADE(14,18,16,62,'ON') SET COLOR TO "W+/B" SET CURSOR OFF @ 15,19 SAY " Aντρέα,είσαι και ο πρώτος,να πούμε...!!! " COLOR "*BG+/B" INKEY(0) WINSHADE(14,18,16,62,'OFF') RETURN

Εφαρμογή Clipper  

SET KEY -1 TO LISTA // ΟΡΙΣΜΟΣ ΚΛΕΙΔΙΩΝ ΒΟΗΘΕΙΑΣ - Fxx SET KEY -2 TO SYSTEM // ΠΗΡΟΦΟΡΙΕΣ ΓΙΑ ΤΟ ΣΥΣΤΗΜA ΤΟΥ Η/Υ SET KEY -3 TO AKYRO // AKYΡ...

Read more
Read more
Similar to
Popular now
Just for you