Καλημέρα
Ανδρέα, στην επισυναπτόμενη ΒΔ, επιχείρησα μια προσέγγιση του ζητούμενου.
Η ΒΔ αποτελείται:
1. από τον πίνακα «tblTasks» στον οποίο καταχωρούνται οι εργασίες (υποχρεώσεις) και η ημερομηνία και ώρα έναρξης.
2. Τη φόρμα «frmAlarmFormatContition» στην οποία:
2.1 Μπορούμε να ορίσουμε σε λεπτά ένα χρονικό διάστημα προειδοποίησης (m).
Η προεπιλεγμένη τιμή είναι 30 λεπτά.
2.2 Να δούμε όλες τις εργασίες (εγγραφές) και ειδικά όσες αρχίζουν μέσα στα επόμενα m λεπτά χρωματισμένες.
Ο χρωματισμός των εργασιών είναι δυναμικός. Δηλαδή με την πάροδο του χρόνου αποχρωματίζονται οι εργασίες που άρχισαν (χρόνος έναρξης < από την τρέχουσα στιγμή) και χρωματίζονται όσες έχουν χρόνο έναρξης μέσα στο επόμενο διάστημα των m λεπτών (τρέχουσα χρονική στιγμή <= χρόνος έναρξης <= τρέχουσα χρονική στιγμή + m/(60*24)).
Από τα παραπάνω συνάγεται ότι οι χρωματισμένες εργασίες που βλέπουμε μία συγκεκριμένη στιγμή είναι αυτές που άρχισαν άμεσα ή θα αρχίσουν το πολύ σε m λεπτά.
3. Τη φόρμα «frmAlarmQuery» στην οποία:
3.1 Όπως και στη φόρμα «frmAlarmFormatContition» μπορούμε να ορίσουμε το χρονικό διάστημα προειδοποίησης.
3.2 Να δούμε μόνο τις εργασίες (εγγραφές) που πρόκειται να αρχίσουν άμεσα ή το πολύ σε m λεπτά.
Η εμφάνιση των εργασιών είναι δυναμική. Δηλαδή, με την πάροδο του χρόνου, από τη φόρμα αφαιρούνται όσες εργασίες άρχισαν και προστίθενται όσες θα αρχίσουν μέσα στα επόμενα m λεπτά.
Η φόρμα βασίζεται στο ερώτημα «qryAlarmTasks».
Για την υλοποίηση των παραπάνω λειτουργιών της ΒΔ, χρησιμοποιείται το συμβάν «OnTimer» των φορμών, η μορφοποίηση υπό όρους και κώδικας (
VBA).
Για να γίνουν δοκιμές και να δούμε πως αλλάζουν δυναμικά οι φόρμες, πρέπει να οριστούν κατάλληλα οι χρόνοι έναρξης των εργασιών και το χρονικό διάστημα ειδοποίησης.
Η ΒΔ αποτελεί μια απλή προσέγγιση. Μπορεί όμως να προσαρμοστεί και να επεκταθεί.
Για παράδειγμα θα μπορούσαν να προστεθούν τα παρακάτω, που αφήνονται ως άσκηση:
1. Ταξινόμηση των εγγραφών, ώστε στην κορυφή να εμφανίζονται αυτές που θα αρχίσουν πρώτες.
2. Να προστεθεί ένα πεδίο στον πίνακα, ώστε σε κάθε εργασία να ορίζεται ο δικός της χρόνος ειδοποίησης ή να απενεργοποιείται.
3. Να συσχετιστούν οι εργασίες με εργαζόμενους στους οποίους έχουν ανατεθεί και να εμφανίζονται οι ειδοποιήσεις ανά εργαζόμενο.
Φιλικά/Γιώργος