COGP04 — Stampa Sportelli Bancari¶
Sorgente: cbl/cogp04.cbl | Tipo: interattivo a maschera + stampa | Program-ID: cogp04
Menu: Contabilita' > Archivi & Tabelle > Tabelle > Stampe > Sportelli Bancari
Scopo¶
Stampa l'elenco delle banche e dei relativi sportelli dall'anagrafica bancaria COGBNCA. Per ciascuna banca (record bnc-tipo="B") riporta ABI e denominazione; se e' stato indicato un ABI specifico, sotto ogni banca vengono elencati i suoi sportelli (record bnc-tipo="S") con CAB e descrizione sportello.
La maschera raccoglie due parametri: l'ABI della banca (tm-abi, opzionale, con ricerca F8 tramite COGU03W) e il tipo di ordinamento della stampa (tm-tipo-stp: per Codice ABI o per Descrizione, "C"/"D"). Le banche selezionate vengono prima riversate su un file di transito indicizzato temporaneo (COGTRANS) con doppia chiave (ABI e descrizione) per poterle stampare nell'ordine richiesto.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGBNCA | (in opengen) |
Anagrafica banche/sportelli: banche bnc-tipo="B", sportelli bnc-tipo="S"; letta per caricare il transito e per elencare gli sportelli in stampa |
| COGTRANS | dichiarato inline nel sorgente | File di transito temporaneo indicizzato (w-trs-name in ext-tmp-dir, per operatore); chiave primaria trs-abi, chiave alternativa trs-banca con duplicati per l'ordinamento alfabetico |
| flsta | flsta.fd / flsta.cpy |
File di stampa |
Flusso principale¶
apri— inizializzazioni,open-files, costruzione nome file transitow-trs-name; apertura esclusiva di controllo (open output poi open i-o) con messaggio "Funzione gia' in uso" e relativo stato se occupato; attivazione tasti F3 conferma e F8 aiuto;rd-msk-pop; costruzione controlli.a4— resettab-maschera, defaulttm-tipo-stp="C".a-tm-abi— accept dell'ABI con ricerca banca via F8 (COGU03W,cerca-banca-win) e validazionex-controlla-tm-abisu COGBNCA.a-tm-tipo-stp— se e' stato indicato un ABI si salta direttamente aa-riga-fine; altrimenti si sceglie l'ordinamento tramite combo COGS60.a-riga-fine— conferma (x-imposta-conferma), COGS54, quindistampa-dati.stampa-dati— carica il transito (carica-transito), poi scandisce COGTRANS in ordine (per chiave primaria ABI setm-tipo-stp≠"D", per chiave alternativa descrizione se "D") stampando testata (stampa-testa) e righe (stampa-riga).carica-transito— scandisce COGBNCA sulle banche (bnc-tipo="B"), eventualmente filtrando l'ABI richiesto, e scrive i record su COGTRANS.stampa-riga— stampa la riga della banca; se e' stato indicato un ABI specifico, scandisce COGBNCA sugli sportelli (bnc-tipo="S") della stessa banca e stampa CAB + descrizione sportello, gestendo il salto pagina connum-rig/max-righe.fine/z-chiudi— chiusura file,delete cogtrans(rimozione transito), chiusura finestra,exit program.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGS54 | Selezione periferica di stampa / anteprima, s54-after-print a fine stampa |
| COGU03W | Ricerca banca da finestra su F8 (cerca-banca-win), copybook utilcogu03w.cpy |
| COGS60 | Combo-box di ordinamento tipo stampa (gestore z-s60-tm-tipo-stp da .prc) |
Note¶
- Il file di transito COGTRANS e' dichiarato manualmente nel sorgente (SELECT/FD inline con doppia chiave
trs-abi/trs-bancaduplicati): e' un temporaneo per-operatore usato solo per l'ordinamento della stampa, incluse a fine procedure le chiavicogtrans.k01ecogtrans.k02. - La stampa degli sportelli di dettaglio avviene solo quando
tm-abie' diverso da zero; con ABI a zero viene prodotto il solo elenco delle banche. - Il paragrafo
stampa-riga-loopusanext sentenceper la logica di break sul cambio banca: costrutto legacy da non replicare. - Il sorgente usa
PERFORM ... THRU(stampa-dati thru ex-stampa-dati,stampa-testa thru ex-stampa-testa,stampa-riga thru ex-stampa-riga,carica-transito thru ex-carica-transito,stp-riga thru ex-stp-riga) e diversiGO TO: pattern legacy tipico dei programmi di stampa a maschera. - Il salto pagina e la ripetizione della testata sono gestiti confrontando
num-rigconmax-righe(=s54-stm-lin - 10).