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 conservandotm-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/.prce dalla screentgl030-01.scrincbl/screens/. La griglia (array in working storagetm-tab) e' amministrata da GRIDADMN. - Abilitazioni: rispetta i flag
w-abi-agg(modifica) ew-abi-del(cancellazione) sulle righe gia' esistenti.