Vai al contenuto

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 in tgl044-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 per t-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, chiave tttg-tipo-taglio 2 char, descrizione tttg-des 60 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 con tgl044-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/.prc e dalla screen tgl044-01.scr, situati in cbl/screens/. La griglia e' amministrata da GRIDADMN (Shift-F4 per la personalizzazione delle colonne, Shift-F5 per l'esportazione Excel).