TGL012 - Costi per macchina (Taglio Lamiere)¶
Panoramica¶
Programma GUI (maschera di testata + griglia) per la manutenzione dei costi per macchina del modulo Taglio Lamiere, memorizzati nel file dedicato TGLMACCS. I costi sono organizzati per macchina (dato di testata) e, per ciascuna macchina, per data di decorrenza (righe di griglia): ad ogni data corrispondono il costo macchina al minuto, il costo operatore, il costo programmazione, il costo gestione/forfait e il costo 3D.
L'operatore seleziona prima la macchina in testata (con controllo esistenza e help F8), quindi la griglia mostra lo storico dei costi per data. Il salvataggio (F3) riscrive completamente i costi della macchina: cancella tutti i record esistenti e riscrive quelli presenti in griglia.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Archivi & Tabelle > Taglio Lamiere > Costi per macchina |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| TGLMACCS | I-O | Costi per macchina; chiave tmcs-macchina + tmcs-data |
| CLCANAMA | Input | Anagrafica macchine; usato per validare tm-macchina (rd-clcanama, descrizione da mac-des) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| tgl012.select / tgl012.fd | SELECT e File Description (generati da Screens; il FD referenzia TGLMACCS e CLCANAMA) |
| tgl012.wrk / tgl012.decla / tgl012.prc | Working storage, declaratives e procedure di I/O generati da Screens |
| tgl012-01.scr | Screen section (maschera di testata e griglia e-tm-tab) |
| costanti-tgls.cpy | Costanti del modulo Taglio Lamiere |
| tglmaccs.cpy / tglmaccs.k01 | Record TGLMACCS e chiave primaria |
| clcanama.cpy | Record anagrafica macchine |
| 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 / utils52.cpy / utilu10.cpy / utilu20.cpy / utilw76.cpy | Gestione griglia, GRIDADMN e utility controlli |
| wcont.cpy / util-tgl020.cpy / wcont1.cpy | Aree di comunicazione; util-tgl020 per la chiamata a TGL020 |
| grave.cpy / stato.cpy / stato1.cpy / winmsg.cpy / sendw76.cpy | Gestione errori, stato verbi, messaggi, subroutine W76 |
| 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 |
|---|---|
| TGL020 | Help/selezione della Macchina (F8 sul campo Macchina); restituisce il codice in tgl020-out-cod |
| GRIDADMN | Preparazione e personalizzazione della griglia (Shift-F4 layout colonne) |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta nome programma, verifica l'abilitazione, inizializza il programma, apre i file e legge i dati azienda. Abilita i tasti funzione (Invio, F3, 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 in a-modalita.
2. Selezione della macchina di testata (a-tm-macchina)¶
Accept del campo Macchina con help F8 (richiama TGL020) e validazione x-controlla-tm-macchina: macchina obbligatoria ed esistente in CLCANAMA (la descrizione mac-des viene mostrata a video). Con F3 si passa a a-richiesta-conferma, che rivalida la macchina.
3. Caricamento griglia (a-richiesta-conferma -> a10-loop -> a30)¶
Dopo la conferma della macchina, si posiziona su TGLMACCS con st-tglmaccs-notmin (chiave macchina) e scorre con rdnxt-tglmaccs finche' tmcs-macchina corrisponde. Per ogni record valorizza la riga di griglia: data di decorrenza (tm-data), costo macchina al minuto (tm-costomin), costo operatore (tm-costoope), costo programmazione (tm-costoprog), costo gestione/forfait (tm-costoforf) e costo 3D (tm-costo-3d). Al termine costruisce la tabella video.
4. Gestione eventi griglia (a-grid / a-accept-grid)¶
Ciclo di accept sulla griglia (z-99-accept-tm-tab) che gestisce ESC (con test-wesc, ritorno a a4), Shift-F4 (GRIDADMN), F3 (salvataggio/cambio modalita'), Ctrl-A (aggiungi riga), Ctrl-E (elimina riga previa abilitazione w-abi-del e conferma). Il mouse/doppio click e' gestito da x-test-mouse, che distingue i controlli di testata (id 101-199) dalla griglia (id 1-99).
5. Validazioni di riga¶
x-controlla-tm-data: la data di decorrenza e' obbligatoria quando la riga non e' interamente vuota e non deve essere duplicata per la stessa macchina;x-controlla-tm-costomin: il costo macchina al minuto e' obbligatorio quando la riga non e' vuota;x-controlla-tm-costoope/x-controlla-tm-costoprog/x-controlla-tm-costoforf/x-controlla-tm-costo-3d: attualmente non impongono obbligatorieta' (i relativi controlli sono commentati); accettano quindi valore zero.
6. Salvataggio (a1-aggiorna / b-aggiorna)¶
a1-aggiorna esegue le validazioni complessive (x-controlla-tm-tab-col e x-controlla-tm-tab-tutto). Se validi chiama b-aggiorna, che opera per sostituzione completa della macchina:
- cancella tutti i record TGLMACCS della macchina (
st-tglmaccs-notmin+rdnxt+del-tglmaccsfino a rottura chiave); - riscrive con
wr-tglmaccstutte le righe di griglia con data o costo macchina valorizzati, riportando la chiave (macchina+data) e i cinque costi.
7. Chiusura (fine / z-chiudi)¶
Chiude i file, chiude la finestra, esegue z-99-exit-program ed esce con exit program.
Note tecniche¶
- Tabella dedicata TGLMACCS a chiave composta: i costi risiedono in un file indicizzato dedicato con chiave macchina + data. La griglia rappresenta lo storico dei costi (per data di decorrenza) di una singola macchina selezionata in testata.
- Salvataggio per sostituzione completa: come TGL040 e a differenza di TGL030/TGL044, il salvataggio cancella l'intero blocco di record della macchina e lo riscrive dalla griglia; i paragrafi
b1-inserisci/b2-modifica/b3-cancellasono vuoti e non si usa il confronto cod/cod-prec. - Costi opzionali oltre i primi due: la riga viene scritta se ha data o costo macchina; gli altri costi (operatore, programmazione, forfait, 3D) non sono obbligatori. In
b-aggiornala riga e' considerata "vuota" (e quindi saltata) solo setm-dataetm-costominsono entrambi a zero. - Help richiamato: F8 su Macchina richiama TGL020; il campo e' comunque validato contro CLCANAMA.
- Programma generato da Screens: struttura e I/O provengono dai file
tgl012.select/.fd/.wrk/.decla/.prce dalla screentgl012-01.scrincbl/screens/. La griglia e' amministrata da GRIDADMN. - Linkage con
util-tgl020: il programma includeutil-tgl020.cpynel linkage (layout comune del modulo per la comunicazione con i sottoprogrammi), ma non e' esso stesso richiamabile in selezione (w-dc-fl-callednon viene mai posto a "S").