Newsgroup: it.comp.lang.delphi
Titolo: [OT] Gestione Anno

Ciao a tutti,
come da oggetto, in questi giorni mi sono imbattutto in un grande 
grandissimo problema: la gestione dell'anno in un gestionale!
Con Paradox non avevo problemi, perche mi creavo ogni anno delle 
cartelle con all'interno le tabelle che dovevano essere consultate 
quando si voleva.
Ora pero' con Firebird le cose mi si complicano, xche non posso creare 
delle cartelle e metterci dentro le tabelle. E poi Firebird e' tutto su 
un file unico.
Ora io vi chiedo.... Come strutturate voi le vostre tabelle per gestirvi 
  l'anno di gestione???
Spero di non violare i vostri segreti ma io voglio trovare un modo per 
semplificarmi la vita nelle creazioni dei nuovi anni di gestione.
Grazie a tutti
***Gio***

   l'anno di gestione???
Semplicemente, quando l'anno è un discriminante lo metto tra i campi chiave
della tabella:
tabella FATTURE (anno, numero, codcliente, ...)
Il "Come ricavo l'anno di gestione?" invece è in base alla data odierna
oppure in base ad un parametro indicato all'apertura del programma ("Con
quale anno vuoi lavorare?"), oppure in un altro dei settecento modi che puoi
implementare.
Tutto ciò ha il grande onere che fa crescere gli archivi, poichè mantiene lo
storico, ma se organizzi per bene gli indici sulle tabelle puoi limitare
l'incidenza delle dimensioni nei tempi di ricerca delle informazioni.
Saluti
        Marco Bortolani
        info @ 
marcobortolani.it

"Bimbo Super" ha scritto nel messaggio
[...]
Io ho l'abitudine di strutturare tutte le tabelle in modo che abbiano un
unico campo progressivo univoco RecID.
Quindi per quanto riguarda, ad esempio tabelle contenenti fatture, ddt o
altro con progressivo annuo, strutturo in questo modo:
ftt_RecID
ftt_Anno
ftt_NumeroDocumento
ftt...
Dove:
Chiave Primaria: ftt_RecID
Indice: ftt_Anno, ftt_NumeroDocumento
In file di configurazione inserisco l'anno in corso e tutti i filtri e query
che devono presentare solo gli elementi dell'anno corrente sono
opportunamente adattati.
Diversamente, se ho bisogno di una maggiore elasticità, definisco una
tabella di "esercizi":
es_RecID
es_Anno
es_Descrizione
es_DtInizio
es_DtFine
es_Stato
es_ParametroEsercizio1
es_...
e nel file di configurazione ho riferimento all'esercizio attivo.
Nella tabella delle fatture avrò quindi anche un riferimento all'esercizio
con un campo tipo:
ftt_es_RecID
ovviamente indicizzato.
Per quanto riguarda l'eventuale storicizzazione dei dati, potresti
eventualmente mantenere un database parallelo dove periodicamente
trasferisci i dati non più attuali ed all'avvio dell'applicazione decidi
quale connessione utilizzare.
Ciao,
Gianluca.

  l'anno di gestione???
Come gia' stato detto da Marco, ci sono tanti modi diversi e altrettanto
validi per farlo, io ti spiego come ho fatto sul mio:
- aggiungo il campo Anno a tutte le tabelle soggette a storicizzazione:
fatture,bolle,ddt,movimenti, magazzino,ecc
- modifico le query aggiungendo l'anno fiscale nelle WHERE
- all'ingresso del programma viene richiesta la data di lavoro
- tengo 2 variabili globali: data di ingresso/lavoro e anno fiscale.
ciao!
-- 
Morde. 
(
mo...@despammed.com
)
M-List di icld: 
http://it.groups.yahoo.com/group/icld/