Vai al contenuto

COGQ32 - Numeratori Cicli di Lavorazione

Intestazione

Campo Valore
Programma COGQ32
Titolo Gestione tabella numerazioni cicli di lavorazione
Modulo Magazzino - Produzione
Posizione menu Magazzino > Produzione > Cicli di Lavorazione > Numeratori
Anche in Magazzino > Produzione > Lavoranti esterni > Numeratori
Autore originale Mauro Rovatti - Eurosystem

Scopo e logica generale

COGQ32 gestisce la tabella dei numeratori usati dai cicli di lavorazione e dalla gestione lotti di produzione. Accede alla tabella clctabel (tipo 11) e mostra in una griglia le voci fisse:

  • riga 1: "Lavorazioni Eseguibili " — cta-codr = 1
  • riga 2: "Lotti di Produzione " — cta-codr = 2

Per ciascuna voce, il campo cta-num contiene il valore corrente del numeratore. L'operatore puo' modificare cta-num per ciascuna voce. Il programma supporta anche la modalita' "called" (richiamato da altro programma), in cui la griglia funge da selettore.


Flusso principale

  1. Inizializzazione: ctr-abil, z-99-init-program, caricamento lingua, apertura file, lettura dati azienda
  2. Configurazione tasti funzione: Invio, F3 (solo se called), F8, Shift+F4, Ctrl+A/E (disabilitati)
  3. Preparazione griglia: z-prepara-tm-grid, z-costruisci-controlli
  4. Caricamento dati (a10-loop): loop su i da 1 a k-max-ele-tab (25); per ogni i legge clctabel con cta-tipo=11, cta-codr=i; se trovato, copia cta-num in tm-elenum(i); le descrizioni (tm-cod) sono hardcoded per i=1 e i=2
  5. Costruzione griglia (a30): z-costruisci-grid popola la griglia con tutte le righe caricate
  6. Loop eventi (a-grid / a-accept-grid): gestione eventi griglia, Invio entra in modifica, F3 alterna modalita', Shift+F4 chiama GRIDADMN
  7. Modifica riga (a-riga-dettaglio): lock del record clctabel, accept campo tm-elenum, validazione, conferma, scrittura (rewrite o write)
  8. Chiusura: close clctabel, z-99-exit-program

File e tabelle acceduti

File FD/Select Modalita' Uso
FEURTAB feurtab Input Parametri generali azienda
CLCTABEL (da cogq32.select) I-O dinamico Tabella numeratori, tipo 11 (cta-tipo=11, cta-codr=1..N)

La struttura di clctabel e le sue operazioni (rd, wr, rwr, del, rd-lk) sono definite nel copybook cogq32.prc.


Copybook principali

Copybook Scopo
feurtab.fd SELECT file tabella euristica
cogq32.select SELECT clctabel
cogq32.fd FD clctabel
cogq32.wrk Working storage specifica del programma
cogq32.prc Paragrafi di I/O su clctabel (rd-clctabel, rd-clctabel-lk, wr-clctabel, rwr-clctabel, del-clctabel)
cogq32.decla Sezione DECLARATIVES
cogq32-01.scr Screen section (form grafica)
utilu20.cpy Utility input numerico (COGU20)
wstato.cpy Variabili di stato file
wgrave.cpy Gestione errori gravi
wgrid.cpy Strutture per gestione griglia
wopenf.cpy Apertura file generica
wnscr.cpy Gestione schermo
cogazien.cpy Dati azienda
utilgdad.cpy Struttura util-gdad per GRIDADMN
utilgrid.cpy Utility griglia (include costanti k-id-grid, k-m-h-size, k-m-v-size, k-id-tm-cod, k-id-tm-elenum, k-program-id e variabili x-enabled, x-f3-, sb-msg, m-)
wcont.cpy / wcont1.cpy Linkage section (stringhe)
cogfiles.cpy Struttura record FEURTAB
stato.cpy, stato1.cpy Gestione stato post-I/O
winmsg.cpy Messaggi a video
grave.cpy Errori gravi
opengen.cpy Apertura generica file
mmmask.cpy Init/exit programma standalone (z-99-init-program, z-99-exit-program)

Paragrafi chiave

Paragrafo Scopo
apri Inizializzazione, configurazione tasti, caricamento titolo maschera
a4 Inizializzazione tabella (tm-tab) e caricamento controlli griglia
a10 / a10-loop Caricamento valori numeratori da clctabel; le descrizioni sono hardcoded per i=1,2
a30 Calcolo tm-pnt, costruzione griglia, attivazione tasti
a-grid Reset status bar, attivazione tasti griglia
a-accept-grid Loop principale eventi: Esc/uscita, F3/cambio modalita', Invio/entrata in modifica, Shift+F4/GRIDADMN
a-riga-dettaglio Entrata in modifica: lock record, cambio titolo frame, display area dettaglio
a-tm-cod Campo descrizione (sola lettura in questa versione)
a-tm-cod-tf Gestione Esc su campo descrizione (annulla modifiche riga)
a-tm-elenum Campo numero: accept tramite COGU20 (z-u20-tm-elenum), validazione
a-riga-dettaglio-fine Conferma modifica, aggiornamento griglia via GRIDADMN, rewrite/write su clctabel
c-cancella / c1-ctrl-canc Cancellazione (commentata, non attiva)
fine / z-chiudi Chiusura file e uscita
z-99-event-form Gestione resize finestra, ricalcolo griglia
z-operazioni-accessorie-grid Operazioni su evento griglia (display dettaglio)
z-prepara-tm-grid Preparazione griglia: handle, dimensioni, chiamata GRIDADMN "Prepara"
z-costruisci-controlli Stub vuoto (nessun combo/listbox da popolare)
z-costruisci-grid Popolamento griglia: GRIDADMN "Svuota-Tutto" + loop "Add-Record"
x-attiva-tf-grid / x-disattiva-tf-grid Attivazione/disattivazione tasti funzione in base a modalita'
x-riempi-grid-record Riempimento grid-record con tm-cod(k) e tm-elenum(k)
x-test-mouse Gestione click mouse su controlli, redirect ai paragrafi di campo
x-imposta-conferma Valida tm-elenum prima di confermare (x-f3-ok)
x-controlla-tm-cod Validazione campo descrizione (sempre OK)
x-controlla-tm-elenum Validazione campo numero (sempre OK in questa versione)
rd-tab Wrapper: chiama rd-clctabel
z-carica-controlli Display form s-mm-1

Struttura dati griglia

01  tab-maschera.
  02 tm-ele-sav          pic x(1000).    -- salvataggio riga per annullo
  02 tm-pnt              pic 9(04).      -- numero righe caricate
  02 tm-tab.
   03 tm-righe occurs 25 times.
    04 tm-ele.
      05 tm-cod          pic x(40).      -- descrizione (hardcoded)
      05 tm-elenum       pic 9(06).      -- valore numeratore
01  grid-record.
  02 grd-cod             pic x(40).
  02 grd-elenum          pic zzzzzz.

Programmi chiamati (CALL)

Programma Scopo
GRIDADMN Gestione griglia (operazioni: Prepara, Svuota-Tutto, Add-Record, Modify-Record)
COGU20 (via z-u20-tm-elenum) Input numerico campo tm-elenum

Modalita' "called"

Quando w-dc-called = "S" (programma richiamato da altro programma):

  • Si attiva F3 sia in modalita' selezione che modifica
  • La modalita' iniziale e' "S" (selezione), non "A" (aggiornamento)
  • L'utente seleziona una riga e preme F3 per restituire la selezione

Note implementative

  • Le descrizioni delle voci (tm-cod(1) e tm-cod(2)) sono hardcoded nel paragrafo a10 e non provengono dalla tabella
  • Le funzioni di inserimento (Ctrl+A) ed eliminazione (Ctrl+E) sono commentate: la tabella e' a righe fisse
  • Il tipo tabella usato e' sempre 11 (cta-tipo = 11)
  • k-max-ele-tab = 25 e' il limite massimo di iterazione nel loop di caricamento, ma in pratica solo i=1 e i=2 hanno dati
  • Il programma e' standalone (mmmask.cpy): usa z-99-init-program / z-99-exit-program
  • Linkage section: stringhe da wcont.cpy / wcont1.cpy