Vai al contenuto

COGK65 — Tabella rami assicurativi (coassicurazioni)

Sorgente: cbl/cogk65.cbl | Tipo: interattivo a maschera | Program-ID: cogk65

Menu: Contabilita' > Coassicurazioni > Tabelle > Tabella Rami


Scopo

Gestisce la tabella dei rami assicurativi usata nel modulo coassicurazioni. E' un editor a griglia che permette di inserire, modificare e cancellare i rami: per ognuno si definisce codice, descrizione, tipologia (elementare, obbligatorio, vita, altri rami) e un secondo codice/descrizione accessori.

I rami sono memorizzati sulla tabella generale contabile COGTABEL con euta-tipo = "A8" (costante k-euta-tipo). Il programma puo' funzionare in due modalita': aggiornamento (edit completo della tabella) oppure selezione — quest'ultima attiva quando COGK65 e' richiamato come sottoprogramma (campo k65-called = program-id e k65-caller valorizzato), nel qual caso al posto della modifica restituisce al chiamante il ramo scelto (k65-out-cod/k65-out-des).

File e tabelle principali

File/Tabella Copybook Uso
COGTABEL (feurtab) cogfiles.cpy Tabella rami: euta-tipo-x = "A8", euta-codr (codice ramo), euta-des-ramo, euta-tipo-ramo, euta-altro-cod, euta-altra-des

Copybook di working/servizio: cogazien.cpy (dati azienda), utilgdad.cpy (gestione griglia via GRIDADMN), wgrid.cpy/utilgrid.cpy (routine griglia), wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy. La struttura di interscambio col chiamante e' in utilk65.cpy (util-k65, parametro della procedure division).

Flusso principale

  1. apri — inizializzazioni, open-files, lettura azienda; imposta i tasti funzione (invio, F3 conferma, F8 aiuto, Shift-F4 amministrazione griglia, Ctrl-A aggiungi, Ctrl-E elimina); determina la modalita' (a-modalita = "S" selezione se richiamato, altrimenti "A" aggiornamento); prepara la griglia (z-prepara-tm-grid, z-costruisci-controlli).
  2. a10 / a10-loop — carica in memoria (tm-tab, max k-max-ele-tab = 900 righe) tutti i rami esistenti scandendo COGTABEL con st-cogtabel-notmin + rdnxt-cogtabel fino al cambio euta-tipo-x; per ogni ramo valorizza codice, descrizione, tipo (default "N") e codici accessori.
  3. a30 / z-costruisci-grid — riempie la griglia video con i rami caricati (via GRIDADMN, operazioni Svuota-Tutto/Add-Record).
  4. a-grid / a-accept-grid — ciclo di accept sulla griglia: gestisce F3 (commuta modalita' selezione/aggiornamento), invio (in selezione restituisce il ramo, in aggiornamento apre la riga in modifica), Ctrl-A (nuova riga), Ctrl-E (elimina riga), Shift-F4 (GRIDADMN).
  5. a-riga-dettaglio — apre il pannello di dettaglio della riga; in modifica rilegge/lock del record (rd-cogtabel-lk).
  6. a-tm-cod / a-tm-descr / a-tm-tipo-ramo / a-tm-altro-cod / a-tm-altra-des — accept dei singoli campi con relative routine di controllo (x-controlla-*); il tipo ramo e' scelto via subroutine S60 (z-s60-tm-tipo-ramo).
  7. a-riga-dettaglio-fine — conferma della riga (acc-conf-custom), aggiorna la griglia e scrive su COGTABEL: in inserimento wr-cogtabel, in modifica rwr-cogtabel (con gestione dei casi ramo gia' esistente / gia' cancellato, che invertono l'operazione).
  8. c-cancella — rilegge in lock e cancella il record con del-cogtabel.
  9. fine / z-chiudiclose cogtabel, chiusura finestra, exit program.

Sottoprogrammi chiamati

Programma Ruolo
GRIDADMN Gestione/amministrazione della griglia video (prepara, svuota, add/modify record)

Il tipo ramo e' gestito internamente con la subroutine di combo S60 (paragrafo z-s60-tm-tipo-ramo, incluso via cogk65.prc), senza CALL esplicita nel corpo principale.

Note

  • Il sorgente e' scritto per RM/COBOL (source-computer rmcobol) ed e' scritto in stile legacy: fa uso estensivo di GO TO fra i paragrafi di accept e la scansione (a10-loop, x-test-mouse, a-tm-cod-tf) e di alcuni PERFORM ... THRU (c-cancella thru ex-c, c1-ctrl-canc thru ex-c1). Da non replicare nei nuovi sviluppi.
  • La griglia carica al massimo 900 rami (k-max-ele-tab); oltre tale soglia gli elementi vengono scartati con messaggio all'operatore.
  • Il tipo ramo accetta i valori E (elementare), O (obbligatorio), V (vita), N/spazio (altri rami); la conversione in etichetta e' in x-riempi-grid-record.
  • c1-ctrl-canc forza sempre c-ok = "S": non ci sono al momento vincoli che blocchino la cancellazione di un ramo.