Vai al contenuto

COGE64 — Gestione Sportelli Bancari

Sorgente: cbl/coge64.cbl | Program-ID: COGE64 | Tipo: Programma di gestione tabella

Menu: Contabilita' > Archivi & Tabelle > Tabelle > Sportelli Bancari


Scopo

Gestione dell'archivio banche e sportelli bancari (inserimento, modifica, consultazione, cancellazione). Opera su due livelli: banca (solo ABI) e sportello (ABI+CAB). Utilizza il file COGBNCA con tipo record "B" (banca) e "S" (sportello).


Struttura della maschera

Screen Designer con coge64-01.scr. La maschera e' organizzata con un approccio a livelli: prima si inserisce ABI/CAB, poi il sistema mostra i campi della banca o dello sportello in base a cosa esiste.

Campi di ricerca

Campo Variabile Tipo Descrizione
ABI tm-abi 9(05) Codice ABI della banca
CAB tm-cab 9(05) Codice CAB dello sportello

Campi banca (tipo "B")

Campo Variabile Tipo Descrizione
Nome Banca tm-ban-banca x(60) Denominazione della banca
ABI Acquirente tm-ban-acq 9(05) Codice ABI banca acquirente
ABI Assuntrice tm-ban-ass 9(05) Codice ABI banca assuntrice

Campi sportello (tipo "S")

Campo Variabile Tipo Descrizione
Sportello tm-spo-sportello x(60) Denominazione dello sportello
Localita' tm-spo-loc x(30) Localita'
Indirizzo tm-spo-ind x(30) Indirizzo
CAP tm-spo-cap 9(05) Codice avviamento postale

Logica di elaborazione

Flusso principale

  1. apri: apertura file, init, impostazione tasti funzione (F3 conferma, F3 aggiorna, F4 cancella, F8 aiuto)
  2. a4: inizializzazione tab-maschera, set fl-ins-var = "A"
  3. Accept ABI (a-tm-abi):
  4. F8: ricerca banca via COGU03W (cerca-banca-win)
  5. Conferma: x-controlla-tm-abicarica-banca
  6. Accept CAB (a-tm-cab):
  7. F8: ricerca sportello via COGU03W (cerca-sportello-win)
  8. F4: cancellazione banca (se ABI esistente e CAB = 0) o sportello
  9. Conferma: x-controlla-tm-cabcarica-sportello
  10. a-conferma-dati: validazione complessiva
  11. Se ABI esiste e CAB = 0 → a-tm-ban-banca (modifica/inserimento banca)
  12. Se ABI esiste e CAB nuovo → a-tm-spo-sportello (inserimento sportello)
  13. Se ABI nuovo → a-tm-ban-banca (inserimento banca)

Livello Banca

Accept sequenziale: 1. a-tm-ban-banca: nome banca (obbligatorio) 2. a-tm-ban-acq: ABI acquirente (verifica esistenza e diversita' da ABI corrente) 3. a-tm-ban-ass: ABI assuntrice (verifica esistenza e diversita' da ABI corrente) 4. a-conferma-banca: validazione finale, conferma, write/rewrite

Livello Sportello

Accept sequenziale: 1. a-tm-spo-sportello: nome sportello (obbligatorio) 2. a-tm-spo-loc: localita' 3. a-tm-spo-ind: indirizzo 4. a-tm-spo-cap: CAP 5. a-conferma-sportello: validazione finale, conferma, write/rewrite

Caricamento dati (carica-banca, carica-sportello)

carica-banca: 1. Inizializza bnc-rec, imposta tm-tipo = "B", tm-cab = 0 2. st-cogbnca-notminrdnxt-cogbnca 3. Se bnc-abi = tm-abi: fl-abi-ok = "S", popola tm-ban-banca, tm-ban-acq, tm-ban-ass 4. Altrimenti: fl-abi-ok = "N" (banca non esiste)

carica-sportello: 1. Imposta tm-tipo = "S", chiave bnc-chia1 da tm-dati-r 2. rd-cogbnca (read diretto) 3. Se trovato: fl-cab-ok = "S", popola tm-spo-sportello, tm-spo-loc, tm-spo-ind, tm-spo-cap 4. Altrimenti: fl-cab-ok = "N" (sportello non esiste)

carica-banca-acq, carica-banca-ass: verificano che l'ABI indicato esista come banca (tipo "B") e sia diverso dall'ABI corrente.

Inserimento/Aggiornamento (inserisci-dati, aggiorna-dati)

Inserimento: - Se fl-abi-ok = "N": crea record tipo "B" con ABI, nome, ABI acq, ABI ass - Se fl-abi-ok = "S" e fl-cab-ok = "N": crea record tipo "S" con ABI, CAB, sportello, localita', indirizzo, CAP

Aggiornamento: rewrite del record esistente con i nuovi valori.

Cancellazione

Due punti di cancellazione: - cancella-banca: da F4 su campo CAB con banca selezionata e CAB = 0 - cancella-sportello: da F4 su campo sportello con sportello selezionato

Entrambi richiedono conferma (acc-conf).


File utilizzati

File Accesso Scopo
FEURTAB Lettura Tabella nomi file
COGBNCA I-O Archivio banche e sportelli (chiave: tipo+ABI+CAB)
+ file da coge64.select/coge64.fd Altri file dichiarati nella screen

Programmi chiamati

Programma Scopo
COGU03W Ricerca banca (cerca-banca-win) e sportello (cerca-sportello-win) con F8

Copybook principali

coge64.select, coge64.fd, coge64.wrk, coge64.decla, coge64-01.scr, cogfiles.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilcogu03w.cpy, wcont.cpy, wcont1.cpy


Struttura chiave COGBNCA

La chiave primaria bnc-chia1 e' composta da:

Componente Tipo Valori
bnc-tipo x(01) "B" = banca, "S" = sportello
bnc-abi 9(05) Codice ABI
bnc-cab 9(05) Codice CAB (0 per banca)

Per le banche (tipo "B"), il CAB e' sempre 0. Per gli sportelli (tipo "S"), il CAB identifica la filiale specifica.


Flag di stato

Flag Descrizione
fl-abi-ok "S" = banca trovata in archivio, "N" = banca non esistente
fl-cab-ok "S" = sportello trovato, "N" = sportello non esistente
fl-acq-ok "S" = ABI acquirente valido
fl-ass-ok "S" = ABI assuntrice valido
fl-ins-var "I" = inserimento, "A" = aggiornamento

Gestione eventi form

Il programma gestisce tre contesti di form con exception handler separati:

Handler Contesto
z-99-exception-form Ricerca ABI/CAB → conferma dati
z-99-exception-form-banca Campi banca → conferma banca
z-99-exception-form-sportello Campi sportello → conferma sportello (+ F4 cancellazione)

Il test mouse (x-test-mouse) gestisce tre range di control-id: - 101-199: campi ricerca (ABI, CAB) - 201-299: campi banca (nome, ABI acq, ABI ass) - 301-399: campi sportello (sportello, localita', indirizzo, CAP)


Note

  • Il programma e' stato convertito dal character-mode al GUI da Claudio il 19/08/2005.
  • La validazione ABI acquirente e assuntrice verifica che il codice sia diverso dall'ABI della banca corrente (bnc-abi not = tm-abi).
  • Il flusso di navigazione tra livello banca e livello sportello dipende dai flag fl-abi-ok e fl-cab-ok determinati dalla lettura iniziale.
  • Non utilizza griglie: e' un programma di gestione singolo record con flusso accept sequenziale.