Vai al contenuto

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

  1. Inizializzazione: controllo abilitazioni utente (ctr-abil), init programma, caricamento lingua, apertura file, lettura dati azienda. Lettura configurazione tramite x99-confi (RNEWCONF, percorso SISTMERAVA, chiavi euta-c039-cla e euta-c039-des) che valorizza tm-cfg-cla (gestione classi prevista S/N) e tm-cfg-des (descrizione aggiuntiva "per merce" S/N). Se tm-cfg-cla = 'N' l'accesso viene bloccato con avviso.
  2. 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").
  3. Caricamento tabella (a10): scansione sequenziale di COGTABEL a partire da tipo 61 con codice a low-values; per ogni record con euta-tipo = 61 si carica la tabella interna tm-tab (fino a k-max-ele-tab = 100 elementi), con codice (tm-cod), descrizione (tm-des) e descrizione per merce (tm-des-b o tm-des-b1 a seconda di tm-cfg-des). Al superamento di 100 elementi viene mostrato il messaggio di tabella piena.
  4. Costruzione griglia (a20): la tabella interna viene riversata nella griglia via GRIDADMN (operazioni "Svuota-Tutto" e "Add-Record" per ogni riga).
  5. 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 con ncnf-ope = "Modifica"), Shift-F4 (chiamata GRIDADMN operazione ricerca/amministrazione griglia).
  6. Invio: modifica della riga selezionata (a-operazione = "M"), previo controllo abilitazione modifica.
  7. Ctrl-A: inserimento nuova riga (a-operazione = "I"), previo controllo abilitazione inserimento.
  8. Ctrl-E: cancellazione riga, previo controllo abilitazione, conferma custom e verifica c1-ctrl-canc; se confermata esegue c-cancella e compatta la tabella interna.
  9. 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 ripristinando tm-ele-sav.
  10. 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-cogtabel in inserimento, rwr-cogtabel in modifica. In caso di record gia' esistente/non trovato l'operazione viene commutata coerentemente e segnalata.
  11. 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.