COGI93 - Tabella Descrizioni Collegate a Tipo Operazione¶
Sorgente: cbl/cogi93.cbl | Program-ID: COGI93 | Tipo: gestione tabella a griglia
Menu: Contabilita' > Archivi & Tabelle > Varie > Descrizioni collegate a Tipo Operaz.
Scopo¶
COGI93 gestisce la tabella delle descrizioni libere associate a un tipo operazione contabile, memorizzate in COGTABEL con tipo fisso "BN". Ogni voce e' composta da un codice (tipo operazione), una descrizione libera (euta-lo-des) e un codice di raggruppamento opzionale (euta-lo-app) che rimanda a un tipo operazione di livello superiore (tipo 65, letto con rd-cogtabel tramite k-euta-tipo-to = 65). Il programma puo' essere richiamato da altri programmi per la selezione di un tipo operazione, restituendo il valore tramite la linkage utili93.cpy. Supporta inserimento, modifica e cancellazione con gestione differenziale (non delete-all).
File e tabelle¶
| File/Tabella | Copybook | Modalita' | Uso |
|---|---|---|---|
| COGTABEL | cogtabel.fd, cogtabel.k01 |
I/O (lettura, scrittura, modifica, cancellazione) | Voci tipo "BN" (descrizioni tipo operazione) e tipo 65 (raggruppamento) |
| FEURTAB | feurtab.fd, cogfiles.cpy |
Utility | File di sistema per gestione maschere |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestore tabella generato; prepara e gestisce la griglia |
| COGE65 | Ricerca tipo operazione tramite F8 sulla colonna codice raggruppamento |
| COGS99 | Ricerca tipo operazione tramite codice (commentata nel sorgente, non attiva) |
| C$NARG | Funzione di sistema AcuCOBOL per rilevare il numero di argomenti passati in CALL |
Copybook principali¶
Screen Designer / maschera:
- cogi93.select, cogi93.fd, cogi93.wrk, cogi93.prc, cogi93.decla, cogi93-01.scr
Gestionale - tabelle:
- cogtabel.fd, cogtabel.k01, k-tipi-cogtabel.cpy
- cogfiles.cpy, feurtab.fd
Linkage / interfaccia:
- wcont.cpy, wcont1.cpy, utili93.cpy (linkage in entrata e in uscita)
Utility / infrastruttura:
- wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
- wgrid.cpy, utilgdad.cpy
- utile04.cpy, utilf62.cpy, utils99.cpy, utile65.cpy
- grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy
Logica di elaborazione¶
Avvio (apri): inizializzazione, rilevamento numero argomenti tramite C$NARG (1 argomento = avvio da menu; 2 argomenti = chiamata da altro programma con util-i93), rilevamento modalita' chiamata, impostazione tasti funzione (Invio, F3-aggiorna o F3-selezione/modifica, F8-aiuto, SF4-griglia, Ctrl+A aggiungi, Ctrl+E elimina).
Caricamento griglia (a4 / a10-loop): posizionamento su COGTABEL con euta-tipo-x = "BN" e scansione sequenziale; per ogni voce vengono caricati codice (tm-cod), descrizione (tm-des) e codice raggruppamento (tm-reg-cod da euta-lo-app). Massimo 500 elementi.
Risoluzione raggruppamento (a30): dopo il caricamento, per ogni riga con tm-reg-cod non vuoto viene eseguita una lettura in COGTABEL con tipo 65 per ottenere la descrizione del raggruppamento (tm-reg-des), mostrata come colonna aggiuntiva in griglia.
Gestione griglia (a-grid / a-accept-grid): in modalita' Aggiornamento, F8 sulla colonna raggruppamento apre COGE65 per la ricerca. In modalita' Selezione, Invio restituisce w-i93-out-cod / w-i93-out-des al chiamante.
Salvataggio differenziale (b-aggiorna / b1-inserisci / b2-modifica / b3-cancella): a differenza di COGY65/COGY66, il salvataggio e' differenziale: confrontando tm-cod con tm-cod-prec per ciascuna riga, il programma decide se inserire, modificare o cancellare singolarmente. Se il codice era vuoto e ora e' valorizzato → inserimento; se coincidono e la riga e' modificata (tm-fl-riga-mod = "S") → modifica; se il codice e' stato svuotato → cancellazione. La riscrittura aggiorna sia euta-lo-des che euta-lo-app.
Uscita (fine / z-chiudi): se il programma e' stato invocato con 2 argomenti, rimanda util-w-i93 alla linkage util-i93 prima di exit.
Note¶
- Il tipo COGTABEL e'
"BN"(costantek-euta-tipo); il tipo di raggruppamento e' 65 (costantek-euta-tipo-to = 65). - Il programma usa la copia locale della linkage (
util-w-i93) per compatibilita' con invocazioni a 1 solo argomento (da menu), gestendo il caso tramiteC$NARG. - La chiamata a COGS99 per la ricerca del codice operazione e' presente nel sorgente ma commentata; la funzione attiva via F8 e' COGE65 (raggruppamento) non il codice principale.
- La convalida del codice controlla duplicati in inserimento (
rd-cogtabel-lk); la descrizione e' obbligatoria se il codice e' presente.
Documentazione tecnica generata -- 2026-07-15