Gestione automatica progressivi

La gestione automatica dei progressivi di pagina

Vi sono alcuni moduli di Jolly (ad esempio, e tipicamente: la contabilità, stampa del giornale o dei registri IVA) le cui stampe richiedono la gestione di numeri progressivi di pagina.
GALATEO prevede alcune utili funzioni di supporto per la gestione della numerazione delle pagine.
Tali funzioni consentono:

COME FUNZIONA
La gestione automatica dei progressivi di pagina procede per pagina logica (anche se pagine logiche differenti possono condividere la stessa sequenza di numerazione) e viene attivata nella finestra della pagina logica.
I parametri richiesti sono i seguenti:

Alla prima stampa il programma genera i numeri di pagina per tutte le pagine stampate e li salva sul database (previa eventuale conferma dell'utente sulla definitività della stampa).
In occasione di successive ristampe (il programma si accorge che si tratta di una ristampa perché il record oggetto della stampa è già stato trattato, e la data di riferimento non è successiva all'ultima data di riferimento trattata) la funzione pagina_progressiva() rende il numero di pagina da utilizzare.

ELIMINAZIONE DI PROGRESSIVI DI STAMPA
Se si vuole procedere all'eliminazione dei progressivi di stampa, è necessario (e sufficiente) eliminare dal database le righe corrispondenti. L'eliminazione dovrebbe essere eseguita in funzione dei seguenti campi della tabella progressivi_stampa: PRS_str_tipo, PRS_dt_riferimento.
NB: all'interno dell'esercizio, l'eliminazione deve coinvolgere tutte le righe a partire da una determinata data di riferimento: non è possibile, ad esempio, eliminare i progressivi di GIUGNO senza eliminare quelli di LUGLIO (se esistenti).

FUNZIONI COLLEGATE
Le funzioni specificamente collegate alla gestione automatica dei progressivi sono le seguenti:

INFORMAZIONI TECNICHE
Le informazioni generate dalla procedura vengono salvate sulla tabella progressivi_stampa che deve essere così definita:

CREATE TABLE progressivi_stampa (
   PRS_str_tipo char(16) NOT NULL,
   PRS_i_esercizio smallint NOT NULL,
   PRS_i_pagina integer NOT NULL check(@>0),
   PRS_dt_riferimento DATE NOT NULL,
   PRS_str_ID_first_record char(20) NOT NULL,
   PRS_str_ID_last_record char(20) NOT NULL,
   PRS_str_operatore str_operatore_codice_type NULL,
   PRS_dt_creazione DATETIME NOT NULL DEFAULT now(),
   PRIMARY KEY (PRS_str_tipo, PRS_i_esercizio, PRS_i_pagina));

Vengono considerate le seguenti n-uple di valori univoci (clausole UNIQUE):

Pagina base del manuale di JOLLY