Vai al contenuto

COGQ28 - Gestione Strumenti (Cicli di Lavorazione)

Scopo

Gestione anagrafica strumenti per i cicli di lavorazione. I dati sono memorizzati in CLCTABEL con cta-tipo = 20. Il programma presenta una griglia con codice (3 caratteri) e descrizione (35 caratteri), consentendo inserimento, modifica e cancellazione.

Magazzino > Produzione > Cicli di Lavorazione > Archivi > Tabelle > Gestione Strumenti

File e tabelle

File Tipo Descrizione
FEURTAB Parametri File parametri di ambiente
CLCTABEL Indicizzato Tabella generica cicli lavorazione, filtrata su cta-tipo = 20

Copybook

File e select

  • feurtab.fd, cogfiles.cpy
  • cogq28.select, cogq28.fd, cogq28.wrk
  • cogq28-01.scr, cogq28.decla, cogq28.prc

Working-storage standard

  • wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy

Utilita'

  • utilgdad.cpy — Utility GRIDADMN
  • utilu20.cpy — Edit numerico
  • utilgrid.cpy — Procedure griglia

Linkage

  • wcont.cpy, wcont1.cpy

Procedure

  • grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy

CALL

Programma Descrizione
GRIDADMN Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record, amministrazione)

Logica di elaborazione

  1. Apertura (apri): inizializzazione, apertura file, settaggio tasti funzione (Invio, F3, F8, Shift+F4, Ctrl+A, Ctrl+E).
  2. a4/a10: caricamento elementi esistenti.
  3. START su CLCTABEL con cta-tipo = 20, READ NEXT in loop.
  4. Per ogni record con tipo 20, popola tm-cod(i)/tm-des(i) fino a k-max-ele-tab = 900.
  5. a30: costruisce la griglia con GRIDADMN.
  6. a-grid / a-accept-grid: ciclo di input.
  7. Invio in modalita' "A": modifica riga (operazione = "M") -> a-riga-dettaglio.
  8. Ctrl+A: aggiunge riga (operazione = "I"), aumenta tm-pnt.
  9. Ctrl+E: cancella riga con conferma -> c-cancella.
  10. F3: alterna modalita' selezione/aggiornamento.
  11. Shift+F4: amministrazione griglia.
  12. a-riga-dettaglio:
  13. In modifica: LOCK del record (rd-clctabel-lk).
  14. Mostra frame "Modifica riga" / "Ins. riga".
  15. Salva la riga corrente in tm-ele-sav per annullamento.
  16. Accept a-tm-cod e a-tm-des: con validazioni x-controlla-tm-cod (no spaces, no duplicato) e x-controlla-tm-des (no spaces).
  17. a-riga-dettaglio-fine: conferma utente, GRIDADMN per aggiornare la griglia, lettura/scrittura CLCTABEL (wr-clctabel per insert, rwr-clctabel per update). Se in I trova il record gia' presente -> degrada a "M" con warning; se in M non lo trova -> degrada a "I".
  18. c-cancella: rilegge il record con LOCK e fa DELETE su CLCTABEL.

Controllo duplicati (x-controlla-duplicati)

Scan dell'intera tm-tab: se tm-cod(x) = tm-cod(i) con x != i, imposta fl-exit = 'S' e blocca la conferma.

Struttura dati in memoria

tab-maschera (k-max-ele-tab = 900):
  tm-ele-sav (PIC X(1000))         — backup riga per annullamento
  tm-pnt     (PIC 9(04))            — numero elementi caricati
  tm-tab.tm-righe(900):
    tm-ele:
      tm-cod (PIC X(03))           — codice strumento
      tm-des (PIC X(35))           — descrizione

Chiave tabella

  • cta-tipo = 20
  • cta-cod = codice strumento (3 caratteri)
  • cta-descr = descrizione

Note tecniche

  • Usa il pattern GRIDADMN standard con Prepara/Svuota-Tutto/Add-Record/Modify-Record.
  • Il controllo duplicati e' fatto sia in memoria (x-controlla-duplicati) sia su file (rd-clctabel-lk con check w-verbo-ok in inserimento).
  • Le abilitazioni utente (w-abi-ins, w-abi-agg, w-abi-del) sono verificate prima di ciascuna operazione.
  • Codice legacy: usa GO TO/PERFORM ... THRU in alcuni punti (pre-convenzioni).