COGM60 - Classi Articoli¶
Sorgente: cbl/cogm60.cbl | Program-ID: COGM60 | Tipo: Programma interattivo (gestione tabella, standalone)
Menu: Magazzino > Archivi & Tabelle > Gestione Avanzata > Classi Articoli
Scopo¶
Gestione della tabella delle classi articoli per il modulo "Merci Avanzate". Le classi sono
memorizzate come record della tabella generica COGTABEL con tipo 61 (k-euta-tipo). Il
programma presenta un elenco a griglia delle classi esistenti e permette inserimento,
modifica e cancellazione delle singole voci tramite una riga di dettaglio. Ogni classe e'
identificata da un codice a un carattere e da una descrizione; e' prevista, se abilitata in
configurazione, anche una descrizione aggiuntiva "per merce". La disponibilita' della gestione
classi articoli e' subordinata alla configurazione RNEWCONF (percorso SISTMERAVA): se non
prevista, l'accesso viene bloccato con avviso.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Indexed | Input | Tabella nomi file (indirizzamento archivi) |
| COGTABEL | Indexed | I-O | Tabella generica; tipo 61 = classi articoli. Chiave tipo+codice; letta, scritta, riscritta e cancellata dal programma |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd | SELECT tabella nomi file |
| cogfiles.cpy | Tracciato record FEURTAB (dentro FD feurtab) |
| cogm60.select | SELECT generato da Screens (include cogtabel.fd) |
| cogm60.fd | FD generato da Screens (include cogtabel.cpy) |
| cogm60.wrk | Working-storage generato da Screens |
| wstato.cpy | Stato I/O |
| wgrave.cpy | Gestione errori gravi |
| wgrid.cpy | Gestione griglia |
| wopenf.cpy | Apertura file |
| wnscr.cpy | Dati schermo |
| utilgdad.cpy | Area di scambio con GRIDADMN (util-gdad) |
| cogazien.cpy | Dati azienda |
| utilncnf.cpy | Area di scambio con RNEWCONF (util-ncnf) |
| wcont.cpy | Linkage stringhe comuni |
| wcont1.cpy | Linkage area utente 2 |
| cogm60-01.scr | Screen section (griglia + dettaglio) |
| cogm60.decla | Declaratives (io-error su feurtab e cogtabel) |
| stato.cpy / stato1.cpy | Controllo stato I/O |
| winmsg.cpy | Messaggi a video |
| grave.cpy | Paragrafi errori gravi |
| mmmask.cpy | Paragrafi init/exit programma |
| opengen.cpy | Apertura file generica |
| utilgrid.cpy | Paragrafi di gestione griglia |
| cogm60.prc | Paragrafi generati da Screens (gestione controlli/eventi) |
Logica di elaborazione¶
- Inizializzazione: controllo abilitazioni utente (
ctr-abil), init programma, caricamento lingua, apertura file, lettura dati azienda. Lettura configurazione tramitex99-confi(RNEWCONF, percorso SISTMERAVA, chiavieuta-c039-claeeuta-c039-des) che valorizzatm-cfg-cla(gestione classi prevista S/N) etm-cfg-des(descrizione aggiuntiva "per merce" S/N). Setm-cfg-cla = 'N'l'accesso viene bloccato con avviso. - Abilitazione tasti funzione: invio (modifica), Shift-F4 (griglia/ricerca), Ctrl-A
(aggiungi), Ctrl-E (elimina), F3 (conferma), F1 (configura). Preparazione titoli maschera e
della griglia (
z-prepara-tm-grid, GRIDADMN operazione "Prepara"). - Caricamento tabella (a10): scansione sequenziale di COGTABEL a partire da tipo 61 con
codice a low-values; per ogni record con
euta-tipo = 61si carica la tabella internatm-tab(fino ak-max-ele-tab = 100elementi), con codice (tm-cod), descrizione (tm-des) e descrizione per merce (tm-des-botm-des-b1a seconda ditm-cfg-des). Al superamento di 100 elementi viene mostrato il messaggio di tabella piena. - Costruzione griglia (a20): la tabella interna viene riversata nella griglia via GRIDADMN (operazioni "Svuota-Tutto" e "Add-Record" per ogni riga).
- Ciclo sulla griglia (a-grid / a-accept-grid): accept della griglia; gestione ESC (uscita),
eventi mouse (
x-test-mouse), doppio click/Enter (modifica riga), F1 (ricarica configurazione conncnf-ope = "Modifica"), Shift-F4 (chiamata GRIDADMN operazione ricerca/amministrazione griglia). - Invio: modifica della riga selezionata (
a-operazione = "M"), previo controllo abilitazione modifica. - Ctrl-A: inserimento nuova riga (
a-operazione = "I"), previo controllo abilitazione inserimento. - Ctrl-E: cancellazione riga, previo controllo abilitazione, conferma custom e verifica
c1-ctrl-canc; se confermata eseguec-cancellae compatta la tabella interna. - Riga di dettaglio (a-riga-dettaglio): in modifica il record COGTABEL viene letto con lock
(
rd-cogtabel-lk); in inserimento si abilita l'input del codice. Accept in sequenza dei campi codice (a-tm-cod), descrizione (a-tm-des) e descrizione per merce (a-tm-des-b), ciascuno con controllo dedicato (x-controlla-tm-cod/des/des-b). ESC durante il dettaglio annulla le modifiche ripristinandotm-ele-sav. - Fine riga (a-riga-dettaglio-fine): controllo complessivo (
x-imposta-conferma), conferma custom, aggiornamento della griglia via GRIDADMN ("Add-Record" o "Modify-Record") e aggiornamento del record COGTABEL:wr-cogtabelin inserimento,rwr-cogtabelin modifica. In caso di record gia' esistente/non trovato l'operazione viene commutata coerentemente e segnalata. - Uscita (fine / z-chiudi): chiusura COGTABEL, exit programma.
Note implementative: il codice usa GO TO e PERFORM ... THRU (c-cancella thru ex-c,
c1-ctrl-canc thru ex-c1) tipici dello stile Screens legacy. Limite fisso di 100 classi in
tabella interna. La cancellazione applicativa (c1-ctrl-canc) non impone al momento vincoli
aggiuntivi (imposta sempre c-ok = 'S').
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Amministrazione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record, ricerca) |
| RNEWCONF | Lettura parametri di configurazione (percorso SISTMERAVA: gestione classi e descrizione per merce) |
I paragrafi generati (cogm60.prc) possono richiamare i gestori standard dei controlli
(subroutine CHECK/RADIO/aiuti). I gestori tabella (st-, rdnxt-, rd-, wr-, rwr-, del-
cogtabel) sono paragrafi generati per l'accesso a COGTABEL.