Vai al contenuto

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

  1. apri — inizializzazioni, open-files, costruzione nome file transito w-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.
  2. a4 — reset tab-maschera, default tm-tipo-stp="C".
  3. a-tm-abi — accept dell'ABI con ricerca banca via F8 (COGU03W, cerca-banca-win) e validazione x-controlla-tm-abi su COGBNCA.
  4. a-tm-tipo-stp — se e' stato indicato un ABI si salta direttamente a a-riga-fine; altrimenti si sceglie l'ordinamento tramite combo COGS60.
  5. a-riga-fine — conferma (x-imposta-conferma), COGS54, quindi stampa-dati.
  6. stampa-dati — carica il transito (carica-transito), poi scandisce COGTRANS in ordine (per chiave primaria ABI se tm-tipo-stp≠"D", per chiave alternativa descrizione se "D") stampando testata (stampa-testa) e righe (stampa-riga).
  7. carica-transito — scandisce COGBNCA sulle banche (bnc-tipo="B"), eventualmente filtrando l'ABI richiesto, e scrive i record su COGTRANS.
  8. 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 con num-rig/max-righe.
  9. 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-banca duplicati): e' un temporaneo per-operatore usato solo per l'ordinamento della stampa, incluse a fine procedure le chiavi cogtrans.k01 e cogtrans.k02.
  • La stampa degli sportelli di dettaglio avviene solo quando tm-abi e' diverso da zero; con ABI a zero viene prodotto il solo elenco delle banche.
  • Il paragrafo stampa-riga-loop usa next sentence per 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 diversi GO TO: pattern legacy tipico dei programmi di stampa a maschera.
  • Il salto pagina e la ripetizione della testata sono gestiti confrontando num-rig con max-righe (= s54-stm-lin - 10).