Vai al contenuto

COGN39 — Gestione sottogruppi merceologici

Sorgente: cbl/cogn39.cbl | Tipo: interattivo a griglia | Program-ID: cogn39

Menu: Magazzino > Archivi & Tabelle > Tabelle > Gruppi/raggruppamenti > Sottogruppi


Scopo

Gestione dei sottogruppi merceologici appartenenti a un gruppo merce. Il programma consente di visualizzare, inserire, modificare e cancellare l'elenco dei sottogruppi (codice + descrizione) associati a un dato gruppo. I dati sono memorizzati sulla tabella generalizzata COGTABEL con tipo tabella "AB" (sottogruppi), mentre il gruppo di appartenenza e' validato sul tipo "AA" (gruppi).

Puo' funzionare in modalita' autonoma (da menu) oppure essere richiamato come sottoprogramma di selezione: in tal caso restituisce al chiamante il codice e la descrizione del sottogruppo scelto tramite la copybook di interscambio utilcogn39 (util-cogn39, campi cogn39-out-sot / cogn39-out-des).

File e tabelle principali

File/Tabella Copybook Uso
COGTABEL (via feurtab) cogfiles.cpy, cogn39.fd, cogn39.select Tabella generalizzata: tipo "AA" gruppi (lettura), tipo "AB" sottogruppi (lettura/scrittura). Record euta-rec: euta-tipo-x, euta-cod, euta-descr
COGMERCI utilcogn38.cpy / accesso mer-rec Controllo di utilizzo: verifica se esistono merci con il gruppo/sottogruppo prima della cancellazione (c1-ctrl-canc)
util-cogn39 utilcogn39.cpy Copybook di link con il chiamante (input cogn39-called/cogn39-caller/cogn39-gru, output cogn39-out-sot/cogn39-out-des)
util-cogn38 utilcogn38.cpy Copybook di link verso COGN38 (aiuto/gestione gruppi)
util-gdad utilgdad.cpy Interscambio con GRIDADMN per la gestione della griglia

La chiave del record sottogruppo e' composta: euta-cod(1:2) = codice gruppo, euta-cod(3:2) = codice sottogruppo; la descrizione e' in euta-descr.

Flusso principale

  1. apri — inizializzazione: ctr-abil, z-99-init-program, rd-azi, open-files. Rileva se e' stato invocato come selezione (w-dc-called = "S" quando cogn39-called = k-program-id e cogn39-caller valorizzato). Abilita i tasti funzione e verifica ambiente grafico (ext-ambiente-gui). Imposta a-modalita a "S" (selezione) o "A" (aggiornamento).
  2. a-tm-gru — accept del gruppo di appartenenza; F8 richiama COGN38 per aiuto/gestione gruppi. x-controlla-tm-gru verifica che il gruppo sia codificato (lettura tipo "AA").
  3. carica-dati — carica in tabella indicizzata tm-tab (max 900 elementi, k-max-ele-tab) tutti i sottogruppi del gruppo: st-cogtabel-notmin + rdnxt-cogtabel con rottura su cambio tipo/gruppo.
  4. a-grid / a-accept-grid — gestione della griglia e-tm-tab. In modalita' selezione INVIO restituisce il sottogruppo al chiamante; in modalita' aggiornamento INVIO apre la modifica, CTRL-A l'inserimento, CTRL-E la cancellazione. F3 commuta tra selezione e aggiornamento.
  5. a-riga-dettaglio / a-tm-sot / a-tm-des — editing riga: accept codice sottogruppo e descrizione con controlli (x-controlla-tm-sot, x-controlla-tm-des).
  6. a-riga-dettaglio-fine — conferma e persistenza: aggiorna la griglia via GRIDADMN (Add-Record/Modify-Record) e scrive su COGTABEL con wr-cogtabel (inserimento) o rwr-cogtabel (modifica); controllo di coerenza sul fatto che il record esista o meno prima dell'operazione.
  7. c1-ctrl-canc / c-cancella — la cancellazione (CTRL-E) e' bloccata se esistono merci che usano quel gruppo/sottogruppo (scan COGMERCI su mer-gru/mer-sot); se ammessa, del-cogtabel.
  8. fine / z-chiudi — chiusura file, chiusura finestra, z-99-exit-program, cancel "COGZDEW".

Sottoprogrammi chiamati

Programma Ruolo
COGN38 Aiuto/gestione gruppi merceologici (tipo "AA"); richiamato con F8 dall'accept del gruppo
GRIDADMN Gestione griglia dettaglio (Prepara, Svuota-Tutto, Add-Record, Modify-Record)

Note

  • Uso estensivo di GO TO per la navigazione tra paragrafi-schermata (pattern legacy della famiglia dei gestori a griglia); presenti anche alcuni PERFORM ... THRU (carica-dati THRU ex-carica-dati, c-cancella THRU ex-c, c1-ctrl-canc THRU ex-c1).
  • La griglia e' dimensionata a k-max-ele-tab = 900 righe massime; oltre tale soglia in caricamento gli elementi eccedenti vengono scartati con avviso.
  • Il codice sottogruppo occupa 2 caratteri (euta-cod(3:2)); la descrizione fino a 40 caratteri (euta-descr).
  • In modalita' selezione (richiamato da altro programma) il gruppo arriva gia' impostato da cogn39-gru e viene forzato il salto a a-tm-gru-controlla.