Vai al contenuto

TGL030 - Lavorazioni (Taglio Lamiere)

Panoramica

Programma GUI a griglia per la manutenzione della tabella Lavorazioni del modulo Taglio Lamiere, memorizzata nel file dedicato CLCLAVOR. Ogni lavorazione e' identificata da un codice numerico (lav-cod, 5 cifre) e riporta descrizione, descrizione merce, i flag "lavorazione esterna", "attrezzaggio", "controllo tempi", il tipo di lavorazione "Taglio" (S/N/P) e il flag meccanico (lav-fl-mec). La griglia consente di visualizzare, inserire, modificare ed eliminare le lavorazioni in linea (Ctrl-A aggiungi, Ctrl-E elimina), con salvataggio differito tramite F3.

Ad ogni scrittura/aggiornamento di una lavorazione il programma mantiene allineata una voce corrispondente in COGTABEL (tabella tipo 62, sotto-tipo "LA"), usata come raccordo/descrittore della lavorazione per altri moduli.

Il programma funziona in due modalita': standalone (da menu, modalita' Aggiornamento) o richiamato come help/selezione da un altro programma (tgl030-called = k-program-id con tgl030-caller valorizzato), in cui restituisce codice e descrizione della lavorazione scelta in util-tgl030.

Posizione nel menu

Menu Percorso
Magazzino Archivi & Tabelle > Taglio Lamiere > Lavorazioni

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema (nomi file)
CLCLAVOR I-O Tabella delle lavorazioni; chiave lav-cod (5 cifre)
COGTABEL I-O Tabella generica del gestionale; voce di raccordo tipo 62 sotto-tipo "LA" allineata alla lavorazione

Copybook principali

Copybook Descrizione
feurtab.fd / cogfiles.cpy SELECT/FD e record della tabella di sistema
tgl030.select / tgl030.fd SELECT e File Description (generati da Screens; il FD referenzia CLCLAVOR e COGTABEL)
tgl030.wrk / tgl030.decla / tgl030.prc Working storage, declaratives e procedure di I/O generati da Screens
tgl030-01.scr Screen section (griglia e-tm-tab e maschera)
clclavor.cpy / clclavor.k01 Record CLCLAVOR e chiave primaria
cogtabel.cpy Record COGTABEL (campi euta-tipo, euta-ptc-tip, euta-ptc-cod, euta-tma-des, euta-tma-des-b)
util-tgl030.cpy Area di linkage util-tgl030 (parametri tgl030-caller, tgl030-called, tgl030-out-cod, tgl030-out-des)
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage errori, video, apertura file, stato I/O
cogazien.cpy Dati azienda
wgrid.cpy / utilgdad.cpy / utilu20.cpy Gestione griglia, interfaccia GRIDADMN e utility
wcont.cpy / wcont1.cpy Aree di comunicazione standard tra programmi
grave.cpy / stato.cpy / stato1.cpy / winmsg.cpy Gestione errori gravi, stato verbi, messaggi
mmmask.cpy Gestione maschera (rd-msk-pop, z-99-init-program, z-99-exit-program)
opengen.cpy Routine generica di apertura file (open-files, z-close-files)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Preparazione e personalizzazione della griglia (Shift-F4 layout colonne)

Logica di elaborazione

1. Inizializzazione (apri)

Imposta nome programma, verifica se e' stato richiamato (w-dc-fl-called = "S" quando tgl030-called = k-program-id e tgl030-caller non spazio, copiando util-tgl030 in w-dc-util), verifica l'abilitazione (ctr-abil), inizializza il programma, apre i file e legge i dati azienda. Abilita i tasti funzione (Invio, F3 selezione/modifica o aggiorna, F8 aiuto, Sf4, Ctrl-A, Ctrl-E), imposta il titolo, prepara la griglia (z-prepara-tm-grid) e i controlli, e imposta la modalita' iniziale (a-modalita).

2. Caricamento griglia (a4 -> a10-loop -> a30)

Svuota la griglia, poi scandisce CLCLAVOR dall'inizio (st-clclavor-notmin + rdnxt-clclavor, fino a k-max-ele-tab = 900). Per ogni lavorazione riempie la riga della griglia: codice (tm-cod e tm-cod-prec), descrizione, flag esterna/attrezzaggio/controllo-tempi, tipo taglio (tm-lav-taglio, forzato a "N" se non S/N/P), descrizione merce e flag meccanico. Durante il caricamento, se la voce COGTABEL di raccordo (tipo 62, euta-ptc-tip = "LA", euta-ptc-cod = codice lavorazione) non esiste, la crea con wr-cogtabel valorizzando descrizione e descrizione-b. Al termine costruisce la tabella video (z-costruisci-tm-tab).

3. Gestione eventi griglia (a-grid / a-accept-grid)

Ciclo di accept sulla griglia (z-99-accept-tm-tab) che gestisce:

  • ESC: uscita previa test-wesc;
  • mouse / doppio click / invio su cella: emula l'Invio (selezione);
  • Shift-F4: personalizzazione griglia via GRIDADMN;
  • F3: in aggiornamento salva (a1-aggiorna) e, se richiamato, torna in selezione; in selezione passa ad aggiornamento;
  • Invio: in modalita' selezione restituisce codice e descrizione della lavorazione scelta al chiamante (w-dc-out-cod, w-dc-out-des) ed esce;
  • Ctrl-A: aggiunge una riga (z-aggiungi-riga-tm-tab, con default "N" su tutti i flag);
  • Ctrl-E: elimina la riga corrente previa abilitazione (w-abi-del) e conferma, azzerando la riga e conservando tm-cod-prec.

4. Validazioni di cella

  • x-controlla-tm-cod: codice lavorazione non gia' presente in inserimento e non maggiore di 999;
  • x-controlla-tm-des / x-controlla-tm-des-merce: descrizione e descrizione merce obbligatorie se il codice e' valorizzato;
  • x-controlla-tm-fl-esterna / x-controlla-tm-fl-attrezzaggio / x-controlla-tm-fl-controllo-t: ammessi solo "S"/"N";
  • x-controlla-tm-lav-taglio: ammessi solo "S"/"N"/"P";
  • z-event-tm-tab-ep: in modalita' selezione blocca l'ingresso in cella; sulle righe gia' esistenti verifica l'abilitazione alla modifica (w-abi-agg).

5. Salvataggio (a1-aggiorna / b-aggiorna)

a1-aggiorna esegue i controlli complessivi (x-controlla-tm-tab-tutto); se validi chiama b-aggiorna, che scorre le righe della griglia e in base al confronto tm-cod / tm-cod-prec decide:

  • codice = 0 e precedente <> 0 -> cancella (b3-cancella, del-clclavor + eliminazione della voce COGTABEL tipo 62 "LA");
  • codice = precedente e riga modificata -> modifica (b2-modifica, con eventuale ricreazione se non esiste piu');
  • precedente = 0 -> inserisci (b1-inserisci, con conferma di sovrascrittura se il codice esiste gia');
  • codice <> precedente -> cancella la vecchia e inserisci la nuova.

Ogni inserimento/modifica passa da update-clclavor (aggiorna i campi CLCLAVOR, rwr-clclavor) che a sua volta chiama update-cogtabel per allineare la voce COGTABEL tipo 62 "LA" (euta-ptc-tip = "LA", euta-ptc-cod = codice lavorazione, euta-tma-des = descrizione).

6. Chiusura (fine / z-chiudi)

Chiude i file, chiude la finestra, esegue z-99-exit-program; se richiamato ricopia w-dc-util in util-tgl030 prima di exit program.

Note tecniche

  • Etichetta di menu "Macchine" nel commento di testata: il commento in testata al sorgente riporta erroneamente "Tabella Macchine"; la funzione reale del programma e' la manutenzione delle Lavorazioni (file CLCLAVOR), coerentemente con l'etichetta di menu "Lavorazioni". Le macchine sono gestite da TGL020.
  • Doppio archivio CLCLAVOR + COGTABEL: il programma tiene sincronizzata, per ogni lavorazione, una voce di raccordo in COGTABEL (tipo 62, sotto-tipo "LA", euta-ptc-cod = codice lavorazione). Le operazioni di scrittura, modifica e cancellazione su CLCLAVOR propagano l'operazione corrispondente su COGTABEL. Anche il solo caricamento griglia crea la voce COGTABEL mancante.
  • Doppia modalita' (selezione/aggiornamento): lo stesso programma serve sia da manutenzione (menu) sia da help/selezione richiamato da altri programmi (restituisce la lavorazione scelta in util-tgl030).
  • Aggiornamento differito con confronto cod/cod-prec: come negli altri programmi tabella di questa area, il salvataggio confronta ogni riga con il codice precedente memorizzato all'ingresso (tm-cod-prec) per decidere inserimento/modifica/cancellazione.
  • Programma generato da Screens: struttura e I/O provengono dai file tgl030.select/.fd/.wrk/.decla/.prc e dalla screen tgl030-01.scr in cbl/screens/. La griglia (array in working storage tm-tab) e' amministrata da GRIDADMN.
  • Abilitazioni: rispetta i flag w-abi-agg (modifica) e w-abi-del (cancellazione) sulle righe gia' esistenti.