Questo Demo rappresenta una semplice Agenda di Appuntamenti, non ha la pretesa di risolvere problematiche complesse o di essere un Tool Completo, ma solo una dimostrazione di semplicità.
La maschera principale espone 7 giorni con altrettante ListBox, nelle quali ogni riga rappresenta un'intervallo orario.
La configurazione dell'agenda si effettua tramite queste costanti, contenute nel modulo "basAppuntamenti", che definiscono l'ora d'inizio, l'ora di fine e la durata degli intervalli temporali
Public Const START_TIME As String = "09:00"
Public Const STOP_TIME As String = "18:00"
Public Const DELTA_TIME As Integer = 30 ‘ In Minuti
N.B.: è importante definire all'inizio eventuali variazioni della scalatura degli orari, altrimenti, in seguito, si verificherebbero anomalie per la differenza rispetto ai dati salvati con impostazioni differenti.
Caratteristiche
I controlli ListBox sono stati strutturati come USERCONTROL; la struttura dell'applicativo infatti prevede due classi fondamentali:
clsItem e clsItems
La prima (clsItem) rappresenta l'istanza singola dello USERCONTROL, che è costituito da:
1 Controllo ListBox [lstn]
1 Label(giorno) [lbln]
1 Label(Ora) [lblOran]
1 Label(Oggetto) [lblObjn]
L'istanza della classe clsItemprovvede a gestire lo USERCONTROL in tutto.
La classe clsItems rappresenta la classe Collection che raggruppa gli USERCONTROL (le istanze della classe clsItem) e ne gestisce gli eventi singoli sfruttando la tecnica delle interfacce tramite Implements.
La classe clsItems a sua volta espone eventi pubblici un po' come una matrice di controlli in VB, quindi restituirà l'indice dello USERCONTROL che ha scatenato l'evento e tutti i dati necessari.
Altre due classi importanti sono:
clsForm e clsForms
Gestiscono le istanze delle Form legate al Giorno singolo.
La classe FormInfo è una classe Utility.
Maschera principale
La maschera principale rappresenta il SETTIMANALE, a partire dal giorno impostato nel controllo "1° gg". Di default il giorno impostato in alto a sinistra è quello attuale.
Ai giorni vengono attribuiti dei colori di sfondo che ne definiscono il TIPO:
1) GIORNO ATTUALE
All'apertura è il primo in alto a sinistra; si differenzia sempre dagli altri poichè ha una BORDATURA blu.
2) GIORNI SUCCESSIVI INFRASETTIMANALI
Sono caratterizzati dallo sfondo azzurro.
3) GIORNI PRECEDENTI INFRASETTIMANALI
Sono caratterizzati dallo sfondo blu intenso.
4) DOMENICHE
Sono caratterizzati dallo sfondo rosso.
5) GIORNO ATTIVO
Il giorno che prende lo stato attivo ha lo sfondo giallo chiaro.
La console alla destra consente di variare il settimanale, facendo riferimento sempre alla data del 1° giorno (in alto a sinistra).
DETTAGLI MASCHERA PRINCIPALE
|
|
DRAG&DROP SINGOLO GIORNO
Passando con il mouse sulla data estesa del singolo giorno si noterà la variazione del puntatore del mouse.
Si ha la possibilità di effettuare il DRAG&DROP del singolo giorno trasportandolo come un "Post-It" sull'area di sfondo di Access (quella in grigio), la MDI_CLIENT area.
Per effettuare il DRAG&DROP premere il pulsante sinistro e, tenendolo premuto, trascinare sull'area grigia la maschera che viene visualizzata in trasparenza.
Qualsiasi altro posizionamento non è accettato e la maschera verrà chiusa. Essendo Form di tipo Popup il loro trascinamento successivo sarà valido anche sul DeskTop.
Questa particolarità è disponibile in tutto il progetto, dove sono stati definiti gli USERCONTROL, e può essere utile quando si vuole mantenere visibile uno o più giorni che non rientrano nell'arco del SETTIMANALE.
Viene gestita la multisessione delle form, pertanto non è possibile aprire due o più form ("Post-It") sullo stesso giorno.
|
Maschera d'Inserimento
|
TOOLBAR di navigazione
La navigazione nella settimana è garantita dalla console di navigazione a destra.
Sono usati 5 oggetti di navigazione:
1) 1° gg
La freccia a sinisrta consente di portare il settimanale alla data odierna.
Il simbolo del calendario invece apre il calendario per la selezione personalizzata della data di partenza del Settimanale.
2÷5) Giorno/Sett./Mese/Anno
Le frecce e consentono di incrementare o decrementare di una unità (Giorno/Settimana/Mese/Anno) la data iniziale del Settimanale.
Il doppio click sulla parte centrale dei pulsanti di navigazione 2÷5 consente la definizione personalizzata dello spostamento tramite la maschera d'inserimento dedicata (vedi fig. a sinistra).
Essa propone il valore iniziale e consente di inserire il nuovo valore al quale si deve spostare il relativo oggetto di navigazione.
|
MASCHERA PRINCIPALE DEFINIZIONE COLORI PERSONALIZZATI
|
|
SYSTEM COLOR TOOL
Questa maschera consente di definire e personalizzare, entro alcuni limiti, i colori utilizzati per la differenziazione dei giorni.
Il doppio click sul codice numerico del colore attiverà la ColorPalette per la selezione personalizzata.
Il nuovo colore selezionato verrà salvato automaticamente ed alla chiusura della maschera i colori verranno applicati al Settimanale.
|
CARATTERISTICHE MASCHERA GIORNO SINGOLO
|
|
Dalle maschere SINGOLE è possibile variare il giorno ridefinendolo dal calendario visibile in alto a destra.
Il Pulsante a sinistra in basso da la possibilità di BLOCCARE la form che come un POST_IT non sarà più possibile muoverla fino alla rimozione del blocco.
Si ha la possibilità di chiudere la singola finestra gionaliera, oppure tutte le finestre giornaliere.
|
Accesso alla definizione di appuntamento
Per accedere ai dettagli dell'appuntamento basta fare un doppio click sull'ora indicata nella lista.
MASCHERA DI DETTAGLIO
|
|
Si apre così la maschera secondaria per la configurazione che dovrà essere compilata obbligatoriamente nel campo Oggetto.
è possibile definire un intervallo preciso dell'appuntamento definendolo nelle due caselle combinate Ora Inizio e Ora Fine.
Le condizioni di apertura di questa maschera sono due:
- Nuovo appuntamento
- Edita appuntamento
Questa distinzione è automatica, pertanto, se l'apertura è avvenuta su un appuntamento esistente, la maschera è in modalità EDITA, mentre se l'apertura è avvenuta su un'orario disponibile, la maschera sarà in modalità NUOVO.
In sostanza la differenza tra le due è la seguente: in modalità NUOVO non si ha la possibilità di modificare la data del giorno aperto per l'impegno, mentre in modalità EDITA potremo ovviamente accedere al calendario per posticipare o anticipare la data dell'appuntamento.
Per avallare l'inserimento o la modifica servirà approvarla con il pulsante (Immagine) di EDITA o di NUOVO.
Al rientro nella maschera principale verranno aggiornati i dati visualizzati.
Ringrazio in particolar modo Gabriele Bertolucci per il paziente ed ottimo DEBUG fatto e per i suggerimenti dati.
Sistema operativo: Win32
Applicazioni: Access 2000, Access 2002/XP, Access 2003
|