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¶
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).a10/a10-loop— carica in memoria (tm-tab, maxk-max-ele-tab= 900 righe) tutti i rami esistenti scandendoCOGTABELconst-cogtabel-notmin+rdnxt-cogtabelfino al cambioeuta-tipo-x; per ogni ramo valorizza codice, descrizione, tipo (default"N") e codici accessori.a30/z-costruisci-grid— riempie la griglia video con i rami caricati (viaGRIDADMN, operazioniSvuota-Tutto/Add-Record).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).a-riga-dettaglio— apre il pannello di dettaglio della riga; in modifica rilegge/lock del record (rd-cogtabel-lk).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).a-riga-dettaglio-fine— conferma della riga (acc-conf-custom), aggiorna la griglia e scrive suCOGTABEL: in inserimentowr-cogtabel, in modificarwr-cogtabel(con gestione dei casi ramo gia' esistente / gia' cancellato, che invertono l'operazione).c-cancella— rilegge in lock e cancella il record condel-cogtabel.fine/z-chiudi—close 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 diGO TOfra i paragrafi di accept e la scansione (a10-loop,x-test-mouse,a-tm-cod-tf) e di alcuniPERFORM ... 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' inx-riempi-grid-record. c1-ctrl-cancforza semprec-ok = "S": non ci sono al momento vincoli che blocchino la cancellazione di un ramo.