COGE80 -- Stampa Giornale Bollato¶
Sorgente: cbl/coge80.cbl | Program-ID: COGE80 | Tipo: Stampa
Menu: Contabilita' > Bilancio > Chiusura/Riapertura Esercizio > Stampa Giornale Bollato
Scopo¶
Produce la stampa del giornale bollato di contabilita', il registro cronologico ufficiale dei movimenti contabili. Legge il file sequenziale GIORNA#$.ARC (generato dalla contabilizzazione) e stampa i movimenti con intestazione aziendale, numerazione progressiva dei fogli, totali giornalieri e di periodo.
Supporta due formati di stampa (standard e riepilogativo), intestazione con dati aziendali, salto pagina, annullo automatico delle righe rimanenti e numerazione progressiva righe bollate.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB (COGTABEL) | Indicizzato | Input | Tabella generica (tipo 66: esercizio, tipo 65: tipi operazione per descrizione causale) |
| STAGIOR | Sequenziale | Input | File giornale contabilizzato (GIORNA#$.ARC nella dir archivi) |
| COGPNCON | Indicizzato | Input | Piano dei conti (via coge80.select) |
| COGGEANA | Indicizzato | Input | Anagrafica generale (via coge80.select) |
| FLSTA | Sequenziale | Output | File di stampa |
Struttura STAGIOR¶
Il record STAGIOR utilizza la copybook cogpnonc.cpy, ovvero la struttura dei movimenti di prima nota contabilizzata (pno-*):
- pno-mova, pno-movm, pno-movg: anno/mese/giorno del movimento
- pno-mastro, pno-conto, pno-sconto: codice conto
- pno-importo: importo
- pno-segno: "D" (dare) o "A" (avere)
- pno-des: descrizione del movimento
- pno-to: tipo operazione
- pno-docum1, pno-docum: numeri documento/protocollo
- pno-currency: divisa
- pno-fl-pro: flag provvisorio
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT della tabella COGTABEL |
| coge80.select | SELECT generati da Screens (COGPNCON, COGGEANA) |
| coge80.fd | FD generata da Screens |
| coge80.wrk | Working-storage generata da Screens |
| coge80.decla | Declaratives per gestione errori I/O |
| coge80-01.scr | Screen principale |
| cogpnonc.cpy | Struttura record prima nota contabilizzata (pno-*) |
| flsta.fd / flsta.cpy | File di stampa |
| cogfiles.cpy | Definizione record COGTABEL (euta-*) |
| k-u10.cpy | Costanti per COGU10W |
| wgrave.cpy | Variabili messaggi gravi |
| wnscr.cpy | Variabili screen |
| wopenf.cpy | Variabili apertura file |
| wstato.cpy | Variabili di stato |
| cogazien.cpy | Dati azienda corrente (az-bol-n-rig, az-st-nriga, az-st-ndoc, az-bol-spz-int, az-personal) |
| utils25.cpy | Utility numeratori progressivi (COGS25) |
| utils52.cpy | Utility gestione date (COGS52W) |
| utils54.cpy | Utility stampa (COGS54) |
| utilu10.cpy | Utility conversione importi (COGU10W) |
| utilncnf.cpy | Utility configurazione (RNEWCONF) |
| wcont.cpy / wcont1.cpy | Struttura linkage standard |
Struttura del programma¶
Flusso principale¶
-
apri: inizializzazione, apertura file, apertura STAGIOR (GIORNA#$.ARC nella directory archivi). Se il file non esiste o e' vuoto, segnala e esce. Legge il primo record per determinare anno (dep-anno) e divisa (w-currency-conto). Calcola max-riga = az-bol-n-rig - 8.
-
Configurazione: lettura parametri da RNEWCONF (percorso "PRNTCOGE80"):
tm-cfg-ord: ordinamentotm-cfg-sta: stampa intestazione (default)tm-cfg-intesta: testo intestazione personalizzatatm-cfg-tp-st: tipo stampa ("R" = riepilogativo)-
tm-cfg-tp-cn: tipo contabilizzazione -
a4: inizializzazione maschera, default tm-pagina da configurazione, tm-rispinte = "N", tm-flannul = "S".
-
Parametri (sequenza di accept):
a-tm-pagina: stampa intestazione S/N (F1 per configurazione)a-tm-rispinte: salto pagina S/N (visibile solo se non intestazione)a-tm-anno: anno per numerazione (COGS52W per calendario). Proposto automaticamente.a-tm-num-foglio: numero foglio iniziale. Letto da COGS25 (numeratore 37 per anno).a-tm-nriga: numero riga bollata iniziale (visibile se az-st-nriga != "N"). Letto da COGS25 (numeratore 36 per anno).-
a-tm-flannul: annullo automatico righe rimanenti S/N -
a-riga-fine: validazione, scelta stampa (COGS54).
-
Elaborazione stampa:
- Se intestazione:
z-intestastampa intestazione iniziale - Se salto pagina:
s-intestastampa intestazione sottocolonne a010->a013: loop lettura sequenziale STAGIORa016a/a016b: rottura mese (se cambia pno-movm, eseguerotmese)a017a/a017f: rottura giorno (se cambia pno-movg, eseguerotgior)a030/a040/a050: risoluzione conto e anagrafica (COGPNCON, COGGEANA)a055w: formattazione e scrittura riga stampa (due formati: standard rdx/rd1/rd2 oppure riepilogativo e2x/e3x)-
Accumulo totali giornalieri (totgiod/totgioa) e mensili (totmesd/totmesa)
-
a999: fine file, stampa ultimo totale mese.
-
b300-ok / b300-loop: se tm-flannul = "S", riempie le righe rimanenti con asterischi.
-
b400-ex: aggiornamento numeratori (foglio tramite
a-intesta, riga tramitea-riga).
Logica dei cambi pagina e intestazione¶
| Condizione | Azione |
|---|---|
| tm-pagina = "S" | Stampa intestazione completa con dati aziendali, P.IVA, anno, pagina |
| tm-rispinte = "S" e ctr > max-riga | Salto pagina e nuova intestazione (via intesta) |
| tm-flannul = "S" | Annullo righe rimanenti con asterischi dopo ultimo movimento |
Formati di stampa¶
Formato standard (tm-cfg-tp-st != "R"): - Riga intestazione: ri1 (N.DOC/N.RIGA + DATA DOC. + COD.CONTO + DESCRIZIONE + IMPORTO DARE/AVERE) - Riga sottointestazione: ri2 (DESCRIZIONE CAUSALE + DESCRIZIONE VARIABILE) + ri3 (RIFERIMENTO ESERCIZIO PRECEDENTE) - Righe dettaglio: rdx (num_doc + data_reg + conto + descrizione + dare/avere) + rd1 (causale + descrizione) + rd2 (data registrazione) - Righe totali: rt (TOTALE GIORNO/PERIODO + dare + avere)
Formato riepilogativo (tm-cfg-tp-st = "R"): - Riga intestazione: e2d (Numero + ES + Dt.Reg. + C/Conto + Descrizione + N.Prot. + Dare + Avere) - Righe dettaglio: e2x (nrig + eser + data_reg + conto + descr + des_mov + n_prot + dare + avere) - Sottorighe: e3x (descrizione movimento) - Righe totali: e2t
Chiamate esterne¶
| Programma | Modalita' | Scopo |
|---|---|---|
| COGS54 | CALL | Gestione stampa (anteprima/stampante/file) |
| COGU10W | CALL | Edita importi e conversione divisa |
| COGS52W | CALL | Gestione date con calendario |
| COGS25 | CALL | Lettura/aggiornamento numeratori progressivi (foglio=37, riga=36) |
| RNEWCONF | CALL | Lettura/modifica configurazione (percorso PRNTCOGE80) |
| COGS95 | CALL (via perform z-s95-*) | Gestione check-box |
Variabili principali¶
| Variabile | Tipo | Descrizione |
|---|---|---|
| tab-maschera | 01 | tm-pagina, tm-rispinte, tm-anno, tm-num-foglio, tm-nriga, tm-flannul |
| tm-cfg | 01 | Configurazione: tm-cfg-ord, tm-cfg-sta, tm-cfg-intesta, tm-cfg-tp-st, tm-cfg-tp-cn |
| dep-anno | 77 | Anno di competenza (dal primo record STAGIOR) |
| sav-num-foglio | 77 | Numero foglio iniziale (per confronto e aggiornamento) |
| sav-nriga | 77 | Numero riga iniziale (per confronto e aggiornamento) |
| totgiod / totgioa | 77 | Totali giornalieri dare/avere |
| totmesd / totmesa | 77 | Totali periodo dare/avere |
| max-riga | 77 | Righe per pagina (az-bol-n-rig - 8) |
| ctr | 77 | Contatore righe nella pagina corrente |
| comgior / commese / comanno | 77 | Valori correnti per rottura giorno/mese/anno |
| w-currency-conto | -- | Divisa (E=Euro, L=Lira) |
Configurazione RNEWCONF¶
Percorso: PRNTCOGE80, pacchetto: "C"
| Chiave | Variabile | Descrizione |
|---|---|---|
| euta-c083-ord | tm-cfg-ord | Ordinamento stampa |
| euta-c083-sta | tm-cfg-sta | Stampa intestazione (default) |
| euta-c083-intesta | tm-cfg-intesta | Testo intestazione personalizzata |
| euta-c083-tp-st | tm-cfg-tp-st | Tipo stampa (vuoto=standard, "R"=riepilogativo) |
| euta-c083-tp-cn | tm-cfg-tp-cn | Tipo contabilizzazione |
Note¶
- Il file STAGIOR viene aperto in input dalla directory archivi come
GIORNA#$.ARC. - La personalizzazione "EX" (az-personal = "EX") disabilita la stampa del totale periodo.
- I numeratori progressivi (foglio e riga) vengono aggiornati automaticamente solo se il valore finale e' diverso da quello iniziale.
- La visibilita' del campo "Numero Riga" dipende dalla configurazione aziendale az-st-nriga ("S" = numero riga progressivo, "D" = numero riga per documento, "N" = non visibile).
- Il campo az-st-ndoc controlla se stampare il numero documento ("N" = no).