Vai al contenuto

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

  1. Inizializzazione (apri): impostazione prog-err/w-nome-hlp, z-99-init-program, caricamento lingua, open-files, lettura dati azienda (rd-azi). Se il programma e' richiamato (e65-called = COGE65 e e65-caller not = spaces) imposta w-dc-called = "S" e i tasti funzione F3 selezione/modifica; determina la modalita' iniziale (a-modalita): "S" (selezione) se richiamato, altrimenti "A" (aggiornamento).
  2. Preparazione griglia (z-prepara-tm-grid): aggancio dell'handle alla griglia e-tm-tab, calcolo dimensioni cella, ricalcolo griglia e chiamata GRIDADMN con operazione "Prepara".
  3. Caricamento elementi (a10/a10-loop): scansione di COGTABEL con euta-tipo = 65 (st-cogtabel-notmin + rdnxt-cogtabel), interrotta al cambio di euta-tipo, fine file o raggiungimento del massimo k-max-ele-tab (9999). Per ogni record carica in tabella interna tm-righe(i): euta-cod-to in tm-cod, euta-descr in tm-des.
  4. Costruzione griglia (z-costruisci-grid): svuotamento e ricarica della griglia via GRIDADMN ("Svuota-Tutto" + "Add-Record" per ogni riga), impostazione num-rows.
  5. Loop principale (a-grid/a-accept-grid): z-99-accept-grid accetta gli eventi sulla griglia.
  6. ESC: fine.
  7. Doppio click / invio in cella: interpretato come funzione invio.
  8. Shift-F4: apre la gestione layout griglia (GRIDADMN via GRIDADMN con util-gdad).
  9. F3: commuta tra modalita' "A" e "S" (quando richiamato).
  10. Invio: in modalita' "A" apre la riga di dettaglio in modifica (previa verifica abilitazione w-abi-agg); in modalita' "S" restituisce e65-out-cod/e65-out-des al chiamante e termina.
  11. Ctrl-A (aggiungi): verifica w-abi-ins, incrementa tm-pnt, imposta a-operazione = "I" e apre il dettaglio.
  12. Ctrl-E (elimina): verifica w-abi-del, conferma custom, poi c-cancella (rilettura in lock e del-cogtabel), compattazione della tabella interna e ricostruzione griglia.
  13. 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, via z-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).
  14. Salvataggio riga (a-riga-dettaglio-fine): conferma custom, aggiornamento della griglia via GRIDADMN ("Add-Record"/"Modify-Record"), poi aggiornamento COGTABEL: wr-cogtabel in inserimento o rwr-cogtabel in modifica, valorizzando euta-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 di a-operazione.
  15. Annullo modifiche (a-tm-cod-tf): con ESC in dettaglio, ripristino da tm-ele-sav e sblocco record (unlock cogtabel).
  16. 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.