COGE65 - Causali Prima Nota¶
Sorgente: cbl/coge65.cbl | Program-ID: COGE65 | Tipo: Gestore tabella generato da Screen Designer (griglia)
Menu: Contabilita' > Archivi & Tabelle > Tabelle > Causali P.Nota
Scopo¶
Gestione della tabella dei tipi operazione contabili (causali di prima nota), memorizzati sulla
tabella generalizzata COGTABEL con euta-tipo = 65. Il programma presenta l'elenco in una
griglia e permette inserimento, modifica ed eliminazione dei singoli elementi (codice euta-cod-to
di 3 caratteri e descrizione). Puo' funzionare anche in modalita' "selezione" quando e' richiamato
da un altro programma (via utile65.cpy): in tal caso restituisce al chiamante il codice e la
descrizione della riga scelta (e65-out-cod, e65-out-des).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indexed | Input | Tabella dei nomi file (risoluzione path indicizzati) |
| COGTABEL | Indexed | I-O | Tabella generalizzata; record euta-rec, chiave euta-key; questo programma usa euta-tipo = 65 (tipi operazione). Aperta/chiusa e aggiornata in scrittura/riscrittura/cancellazione |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT della tabella nomi file FEURTAB |
| coge65.select | SELECT generato da Screens (include cogtabel.fd) |
| cogfiles.cpy | Record FD della tabella nomi file |
| coge65.fd | FD generato da Screens per COGTABEL (include cogtabel.cpy) |
| coge65.wrk | Working-storage generato da Screens (costanti form, dimensioni griglia, id controlli) |
| wstato.cpy | Stato I/O |
| wgrave.cpy | Gestione errori gravi |
| wgrid.cpy | Variabili di gestione griglia |
| wopenf.cpy | Apertura file |
| wnscr.cpy | Dati schermo |
| cogazien.cpy | Dati azienda |
| utilgdad.cpy | Area di interscambio con GRIDADMN (util-gdad, gdad-*) |
| utils99.cpy | Area di interscambio con COGS99W (util-s99, s99-*) |
| wcont.cpy | Linkage stringhe comuni |
| wcont1.cpy | Linkage area utente 2 |
| utile65.cpy | Linkage di interfaccia col chiamante (util-e65: e65-called, e65-caller, e65-out-cod, e65-out-des) |
| coge65-01.scr | Screen section generata da Screens |
| coge65.decla | Declaratives generate da Screens |
| stato.cpy / stato1.cpy | Controllo stato I/O |
| winmsg.cpy | Messaggi a video |
| grave.cpy | Paragrafi errori gravi |
| opengen.cpy | Apertura generica file |
| mmmask.cpy | Paragrafi init/exit programma (z-99-init-program, z-99-exit-program) |
| utilgrid.cpy | Paragrafi di gestione griglia |
| coge65.prc | Procedure generate da Screens (rd-cogtabel-lk, wr-cogtabel, rwr-cogtabel, del-cogtabel, st-cogtabel-notmin, rdnxt-cogtabel, ecc.) |
Logica di elaborazione¶
- Inizializzazione (
apri): impostazioneprog-err/w-nome-hlp,z-99-init-program, caricamento lingua,open-files, lettura dati azienda (rd-azi). Se il programma e' richiamato (e65-called = COGE65ee65-caller not = spaces) impostaw-dc-called = "S"e i tasti funzione F3 selezione/modifica; determina la modalita' iniziale (a-modalita): "S" (selezione) se richiamato, altrimenti "A" (aggiornamento). - Preparazione griglia (
z-prepara-tm-grid): aggancio dell'handle alla grigliae-tm-tab, calcolo dimensioni cella, ricalcolo griglia e chiamataGRIDADMNcon operazione "Prepara". - Caricamento elementi (
a10/a10-loop): scansione di COGTABEL coneuta-tipo = 65(st-cogtabel-notmin+rdnxt-cogtabel), interrotta al cambio dieuta-tipo, fine file o raggiungimento del massimok-max-ele-tab(9999). Per ogni record carica in tabella internatm-righe(i):euta-cod-tointm-cod,euta-descrintm-des. - Costruzione griglia (
z-costruisci-grid): svuotamento e ricarica della griglia viaGRIDADMN("Svuota-Tutto" + "Add-Record" per ogni riga), impostazionenum-rows. - Loop principale (
a-grid/a-accept-grid):z-99-accept-gridaccetta gli eventi sulla griglia. - ESC:
fine. - Doppio click / invio in cella: interpretato come funzione invio.
- Shift-F4: apre la gestione layout griglia (
GRIDADMNvia GRIDADMN conutil-gdad). - F3: commuta tra modalita' "A" e "S" (quando richiamato).
- Invio: in modalita' "A" apre la riga di dettaglio in modifica (previa verifica abilitazione
w-abi-agg); in modalita' "S" restituiscee65-out-cod/e65-out-desal chiamante e termina. - Ctrl-A (aggiungi): verifica
w-abi-ins, incrementatm-pnt, impostaa-operazione = "I"e apre il dettaglio. - Ctrl-E (elimina): verifica
w-abi-del, conferma custom, poic-cancella(rilettura in lock edel-cogtabel), compattazione della tabella interna e ricostruzione griglia. - Riga di dettaglio (
a-riga-dettaglio..a-riga-dettaglio-fine): in modifica ("M") rilegge il record in lock (rd-cogtabel-lk); gestione codice (a-tm-cod, viaz-s99-tm-cod→ COGS99W) e descrizione (a-tm-des). Controlli campo: codice obbligatorio e non gia' esistente in inserimento (x-controlla-tm-cod), descrizione obbligatoria (x-controlla-tm-des). - Salvataggio riga (
a-riga-dettaglio-fine): conferma custom, aggiornamento della griglia viaGRIDADMN("Add-Record"/"Modify-Record"), poi aggiornamento COGTABEL:wr-cogtabelin inserimento orwr-cogtabelin modifica, valorizzandoeuta-tipo = 65,euta-cod-vuoto = 0,euta-cod-to = tm-cod,euta-descr1 = tm-des. Gestione dei casi di disallineamento (record gia' inserito in fase di insert, record cancellato in fase di modify) con commutazione dia-operazione. - Annullo modifiche (
a-tm-cod-tf): con ESC in dettaglio, ripristino datm-ele-save sblocco record (unlock cogtabel). - Chiusura (
fine/z-chiudi):close cogtabel, chiusura finestra,z-99-exit-program,exit program.
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestore griglia (preparazione, svuotamento, inserimento/modifica record, gestione layout) |
| COGS99W | Gestione input del codice tipo operazione sulla riga di dettaglio (via paragrafo z-s99-tm-cod) |
I gestori tabella Y* referenziati dalle procedure generate da Screens sono generati automaticamente
dallo Screen Designer e non hanno pagina dedicata.