This is my corner for documenting my ideas.
It mostly contains posts for Access Databases (samples, full applications, etc.) as i like rapid software application development. Occasionally you will find other stuff like physics notes.

Saturday, 19 March 2011

Αποδείξεις 2011

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

Έκανα μερικές αλλαγές στην εφαρμογή οπότε παρουσιάζω τη νέα έκδοση της (2011) η οποία είναι ασύμβατη με την προηγούμενη που σημαίνει ότι όσοι χρησιμοποιείτε την πρώτη έκδοση συνεχίστε να την χρησιμοποιείτε ως έχει καθώς δεν στερείστε καμίας επιτακτικής λειτουργικότητας. Όσοι την κατεβάζετε για πρώτη φορά χρησιμοποιείστε τη νέα έκδοση. Η πιο σημαντική αλλαγή είναι ότι έχω συνδέσει τα ΑΦΜ των εκδοτών αποδείξεων με τα υπόλοιπα στοιχεία τους (επωνυμία και ΔΟΥ) ώστε για επαναλαμβανόμενες καταχωρήσεις (πχ. αποδείξεις από το ίδιο σούπερ-μάρκετ) να μην απαιτείται συνέχεια η καταχώρηση του ΑΦΜ αλλά να επιλέγεται από λίστα και αυτόματα να εμφανίζεται ο αντίστοιχος εκδότης. Αυτή και μόνο η δυνατότητα σήμαινε αλλαγή σε πίνακες, σχέσεις, ερωτήματα και αναφορές οπότε και άρση της προς τα πίσω συμβατότητας. Επίσης έχω προσθέσει και έναν έλεγχο εγυρότητας του ΑΦΜ που βρήκα έτοιμο από αλλού.

Σε πολλούς χρήστες της Microsoft Access (ειδικά στις εκδόσεις 2007&2010) επειδή είναι ενεργοποιημένο εξ αρχής ένα ανώτερο επίπεδο ασφάλειας για προστασία από κακόβουλες μακροεντολές παρουσιάζεται δυσκολία στην εκκίνηση της εφαρμογής. Αν δείτε την παρακάτω προειδοποίηση (δυστυχώς δεν έχω Ελληνικό Office 2007 οπότε οι παρακάτω οθόνες είναι της αγγλικής έκδοσης)


Πατήστε το κουμπί Options οπότε ανοίγει το παρακάτω παράθυρο


και πατήστε το Enable content για να μπορούν να τρέξουν οι μακροεντολές της εφαρμογής.

Εναλλακτικά για να μην γίνεται αυτό κάθε φορά μπορείτε να μεταβείτε στο Trust Center  (Customize Quick Access Toolbar>More Commands>Access Options>Trust Center>Trust Center Settings) όπου στην επιλογή Macro Settings επιλέγετε Enable all macros για μόνιμη λειτουργικότητα των μακροεντολών.


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





Monday, 14 March 2011

The Topics Database (Για όσους ποστάρουν σε φόρουμ)

UPDATE 30/12/2011:
Σε συνεργασία με την ITPASS η εφαρμογή πάει στο σύννεφο (cloud) και ελπίζουμε να την δείτε σύντομα λειτουργική!


Είμαι γραμμένος σε 4-5 forum παρόμοιας θεματολογίας στα οποία ποστάρω πάνω-κάτω τα ίδια πράγματα και τις περισσότερες φορές κάνω copy-paste από το ένα στο άλλο κάνοντας μικές αλλαγές γιατί ο κώδικας που χρησιμοποιούν δεν είναι συμβατός 100% μεταξύ τους. Εν τω μεταξύ πρέπει να ανατρέχω στους διάφορους file hosts όπου έχω ανεβασμένα αρχεία και σε άλλη υπηρεσία που είναι πακεταρισμένα οπότε εύκολα χάνεται η μπάλα. Έτσι με το κόλλημα που έχω να φτιάχνω και από ένα εργαλείο για οποιοδήποτε πρόβλημα μου παρουσιαστεί σκάρωμα μία database σε dd(ay).

Μετά από μερικές προσαρμογές στη σχεδίαση η σωστότερη ιεράρχηση μου φάνηκε η εξής (την οποία υλοποίησα): πρώτα απ' όλα είναι το υλικό το οποίο ανεβάζεις σε κάποιον file host (rapidshare, hotfile, filesonic, κλπ.). Συνήθως πακετάρεις σε αρχείο rar ή zip (με πολλά κομμάτια) μία θεματική ενότητα υλικού όπως πχ. μία δισκογραφία ενός συγκροτήματος. Με τον άφθονο αποθηκευτικό χώρο που έχουμε στη διάθεση μας πλέον, οι περισσότεροι κρατάμε τα ψηφιακά αντίγραφα των cd μας σε mp3 320kbps ή ακόμα καλύτερα σε flac ή wma lossless (χωρίς απώλεια ποιότητας σε σχέση με τα mp3). Έτσι το αρχείο αυτό μπορεί να είναι από 0,5GB ως 5GB (ή και τριπλάσιο αν είναι flac/wma lossless). Οπότε η πρώτη κατηγοριοποίηση αφορά τη θεματολογία. Έτσι θα πρέπει να υπάρχει ένας πίνακας στον οποίο καταχωρούμε θεματικές ενότητες, (music, films, apps, games κλπ.). Φυσικά θα πρέπει να υπάρχει και ένα πεδίο όπου θα δώσουμε τον τίτλο-περιγραφή στο συγκεκριμένο πακέτο κάποιας θεματικής ενότητας (π.χ. θεμ. ενότητα=operating systems, τίτλος πακέτου=ubuntu 10.x).

 (όλες οι σχέσεις μεταξύ των πινάκων στην υλοποίηση μου)

Στο επόμενο στάδιο θα πρέπει να δηλώσουμε που έχουμε ανεβάσει αυτό το πακέτο αρχείων. Έτσι θα πρέπει να υπάρχει ένας πίνακας με τους καταχωρημένους file hosts (rapidshare κλπ.). Επίσης επειδή ένα μεγάλο αρχείο κάποιας θεματικής ενότητας είναι συνήθως σε πολλά κομμάτια, για να μην υπάρχει παίδεμα με τα πολλά αρχεία-link, υπάρχει υπηρεσία που τα ομαδοποιεί και τα "κρύβει" ώστε να είναι πιο δύσκολη η πρόσβαση στα λαγωνικά των πνευματοπροστασίας. Αυτή η υπηρεσία είναι το safelinking και χρειαζόμαστε από αυτή δύο πεδία πληροφορίας. Ένα με το link όλου του πακέτου και ένα με αυτό που το σβήνει από τη βάση τους σε περίπτωση διαγραφής των αρχείων ή κάποιας άλλης αλλαγής. Το δεδομένο που κάνει τα πράγματα ποιο "δύσκολα" είναι ότι το ίδιο πακέτο μπορεί να είναι ανεβασμένο σε παραπάνω από έναν file hosts οπότε η σχεσιακή εξάρτηση είναι ένα-προς-πολλά (ένα πακέτο σε πολλούς file hosts - θεωρώ ότι γνωρίζετε τα βασικά των βάσεων δεδομένων). Έτσι θα πρέπει να υπάρχει ένα πεδίο κλειδί (όχι πρωτεύον) που θα συνδέει το μοναδικό πακέτο με τον file host και αυτό είναι με το οποίο θα συνδεθεί η υποφόρμα των file hosts στην κυρίως φόρμα των πακέτων.

 (η υλοποίηση σε φόρμες)

Το επόμενο βήμα (και ουσιαστικά το τελευταίο) είναι μία ακόμα εξάρτηση ένα-προς-πολλά καθώς αυτό το πακέτο μπορεί να το έχουμε ποστάρει σε διαφορετικά φόρουμ. Έτσι χρειάζεται μία ακόμα υποφόρμα στην οποία θα καταχωρούμε πληροφορίες σχετικά με το ποστ. Ποιές είναι αυτές; Σε ποιο φόρουμ (ξεχωριστός πίνακας), ποιος χρήστης γιατί μπορούμε να έχουμε παραπάνω από έναν λογαριασμό στο ίδιο φόρουμ ή τα ίδια στοιχεία ενός λογαριασμού σε πολλά φόρουμ (ξεχωριστός πίνακας), τον τίτλο του ποστ, και σίγουρα το "σώμα" του ποστ με την μορφοποίηση του καθώς στην ουσία η "μεγάλη και σύνθετη" αυτή ποσότητα πληροφορίας είναι ένας από τους κύριους λόγους δημιουργίας μιας τέτοιας βάσης. Από εκεί και πέρα μπορούν να προστεθούν και άλλα στοιχεία (περιγραφικά, στατιστικά) τα οποία να είναι διαφορετικά για τις ανάγκες του καθενός. Κατεβάστε, μελετήστε, προσαρμόστε, χρησιμοποιείστε: