TGL044 - Tipi di taglio (Taglio Lamiere)¶
Panoramica¶
Programma GUI a griglia per la manutenzione della tabella Tipi di taglio del modulo Taglio Lamiere, memorizzata nel file dedicato TGLTIPGG. Ogni voce e' composta da un codice tipo taglio (2 caratteri, tttg-tipo-taglio) e da una descrizione (tttg-des). La griglia consente di visualizzare, inserire, modificare ed eliminare le voci direttamente in linea (Ctrl-A aggiungi riga, Ctrl-E elimina riga), con salvataggio differito tramite F3.
Il programma funziona in due modalita', determinate da come viene avviato:
- standalone (da menu): parte in modalita' "Aggiornamento", con salvataggio tramite F3;
- richiamato (come help/selezione da un altro programma, quando
tgl044-called = "TGL044-CALLED"): parte in modalita' "Selezione", dove l'operatore sceglie un tipo taglio con Invio e lo restituisce al chiamante intgl044-o-tttg-tipo; F3 alterna tra selezione e aggiornamento. E' usato in questo modo da TGL040 (F8 sul campo Tipo taglio).
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Archivi & Tabelle > Taglio Lamiere > Tipi di taglio |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema (nomi file) |
| TGLTIPGG | I-O | Tabella dei tipi di taglio; chiave tttg-tipo-taglio (2 char), descrizione tttg-des |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cogfiles.cpy | SELECT/FD e record della tabella di sistema |
| tgl044.select / tgl044.fd | SELECT e File Description (generati da Screens; il FD referenzia TGLTIPGG) |
| tgl044.wrk / tgl044.decla / tgl044.prc | Working storage, declaratives e procedure di I/O generati da Screens |
| tgl044.tm | Campi della griglia (tm-r-tipo, tm-r-des, ecc.) |
| tgl044-01.scr | Screen section (griglia e-grid-det e maschera) |
| tgl044.imppredf-wrk / tgl044.imppredf | Gestione filtri/import predefiniti della griglia |
| utiltgl044.cpy | Area di linkage util-tgl044 (parametri tgl044-caller, tgl044-called, tgl044-o-tttg-tipo) |
| tgltipgg.cpy / tgltipgg.k01 | Record TGLTIPGG e chiave primaria |
| 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 | Gestione griglia e interfaccia GRIDADMN |
| utils52.cpy / utilu20.cpy / utilscrgtmvf.cpy / utilscrgfdip.cpy | Utility controlli e gestione griglia GRID-DET |
| 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 | Gestione e personalizzazione della griglia paginata (preparazione colonne, Shift-F4 personalizzazione layout) |
| W$MENU | Attivazione del menu pop-up contestuale sulla griglia (right-click) |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta nome programma per help/errori, verifica l'abilitazione (ctr-abil), inizializza il programma (z-99-init-program), legge i dati azienda (rd-azi) e apre i file. In base al parametro di linkage determina se e' stato richiamato da un altro programma (w-dc-called = "S" quando tgl044-called = "TGL044-CALLED"). Abilita i tasti funzione: se richiamato, F3 selezione/modifica; altrimenti F3 aggiorna. Attiva anche F8 aiuto, Sf4 (griglia), Sf5 (esporta Excel), Ctrl-A (aggiungi), Ctrl-E (elimina) e Invio (seleziona). Costruisce il menu pop-up della griglia (build-main-popup-grid-det), imposta il titolo "Tabella tipi Taglio", prepara la griglia (z-prepara-tm-grid) e i controlli, e imposta la modalita' iniziale (a-modalita = "S" selezione se richiamato, "A" aggiornamento se standalone).
2. Preparazione filtri e ordinamento (a4)¶
Imposta il filtro sulla griglia, l'ordinamento predefinito (ascendente per colonna tipo, gcn-r-tipo) tramite z-grid-det-componi-ord, e carica l'eventuale filtro di default (z-imppredf-carica-default).
3. Caricamento griglia (a-leggi-dati / z-grid-det-crea-transito)¶
Crea il file di transito della griglia (t-grid-det) scandendo TGLTIPGG: si posiziona con st-tgltipgg-notmin e scorre con rdnxt-tgltipgg fino a fine file (max k-max-ele-tab = 900 righe). Per ogni record valorizza nella riga di transito il tipo taglio (t-gor-r-tipo), il tipo taglio precedente per il confronto in salvataggio (t-gor-r-tipo-prec) e la descrizione (t-gor-r-des, da tttg-des). Se il filtro non produce risultati lo annulla automaticamente.
4. Gestione eventi griglia (a-grid)¶
Ciclo principale di accept sulla griglia (z-99-accept-grid-det) con gestione delle eccezioni (z-99-exception-form, esci/rimani/ricarica). Gestisce:
- ESC: uscita previa
test-wesc; - mouse / doppio click / invio su cella: emula l'Invio (selezione);
- Shift-F4: personalizzazione layout griglia tramite GRIDADMN;
- Shift-F5: esportazione della griglia in Excel (
z-esporta-grid-det); - Invio: in modalita' selezione, restituisce al chiamante il tipo taglio della riga scelta (
tgl044-o-tttg-tipo=tm-r-tipo) ed esce; - F3: in modalita' aggiornamento salva (
b-aggiorna) e, se richiamato, torna in selezione; in modalita' selezione passa ad aggiornamento; - Ctrl-A: aggiunge una riga (
z-grid-det-nuova-riga) in modalita' aggiornamento (bloccato se e' attivo un filtro); - Ctrl-E: azzera la riga corrente (
initialize tm-r-dati-record) conservando il codice precedente per la successiva cancellazione fisica (bloccato con filtro attivo); - menu pop-up (valori exception 151-199): gestione voci del menu contestuale.
5. Salvataggio (b-aggiorna)¶
Scorre le righe del file di transito (st-t-grid-det-notmin / rdnxt-t-grid-det) e, in base al confronto tra tipo attuale (t-gor-r-tipo) e progressivo/tipo precedente (t-gor-r-prog, t-gor-r-tipo-prec), decide l'operazione:
- riga con progressivo valorizzato ma tipo vuoto -> cancella il record precedente (
delete-record-prec->del-tgltipgg); - riga modificata (
t-gor-r-riga-mod = "S") -> aggiorna il record (b-aggiorna-record): legge TGLTIPGG pert-gor-r-tipo, se non esiste lo scrive (wr-tgltipgg), poi aggiorna la descrizione e riscrive (rwr-tgltipgg).
6. Chiusura (fine / z-chiudi)¶
Chiude i file (z-close-files), chiude e cancella il file di transito t-grid-det, distrugge il menu della griglia, chiude la finestra, esegue z-99-exit-program ed esce con exit program.
Note tecniche¶
- Tabella dedicata TGLTIPGG: a differenza di molte tabelle di configurazione che risiedono in COGTABEL, i tipi di taglio hanno un file indicizzato proprio (
TGLTIPGG, chiavetttg-tipo-taglio2 char, descrizionetttg-des60 char). - Griglia GRID-DET con file di transito: questo programma usa il pattern piu' recente basato sul file di transito indicizzato
t-grid-det(non l'array in working storage), con ordinamento/filtro gestiti da GRIDADMN e menu pop-up contestuale. - Doppia modalita' (selezione/aggiornamento): lo stesso programma serve sia da manutenzione tabella (menu, modalita' aggiornamento) sia da help/selezione richiamato da altri programmi (modalita' selezione, restituisce il tipo taglio scelto in
util-tgl044). E' richiamato in selezione da TGL040 contgl044-called = "TGL044-CALLED". - Aggiornamento differito con confronto tipo/tipo-prec: le modifiche in griglia non aggiornano immediatamente TGLTIPGG; il salvataggio (F3) confronta ogni riga con il tipo precedente memorizzato all'ingresso per decidere aggiornamento/cancellazione.
- Programma generato da Screens: struttura e routine di I/O (SELECT, FD, griglia, procedure) provengono dai file
tgl044.select/.fd/.wrk/.decla/.prce dalla screentgl044-01.scr, situati incbl/screens/. La griglia e' amministrata da GRIDADMN (Shift-F4 per la personalizzazione delle colonne, Shift-F5 per l'esportazione Excel).