Vai al contenuto

COGD89 — Gestione unita' misura

Sorgente: cbl/cogd89.cbl | Program-ID: COGD89 | Tipo: Gestione tabella con griglia editabile (modo A)

Menu: Magazzino > Archivi & Tabelle > Tabelle > Gestione unita' misura


Scopo

Gestisce la tabella delle unita' di misura su COGTABEL (tipo k-euta-tipo-um definito in k-tipi-cogtabel.cpy). Usa il pattern "griglia modo A": griglia con editing diretto sulle celle, file di transito per ordinamento/filtri, e aggiornamento chirurgico (solo righe modificate). Supporta modalita' selezione (via linkage util-d89) e aggiornamento.


Struttura della maschera

Screen definita in cogd89-01.scr. Maschera con griglia editabile e supporto popup menu contestuale.

Griglia (e-grid-det)

Colonne (gestite tramite file di transito t-grid-det): - t-gor-r-cod: codice unita' di misura - t-gor-r-des: descrizione - t-gor-r-n-dec: numero decimali - t-gor-r-cod-prec: codice precedente (per gestione cancellazione) - t-gor-r-riga-mod: flag riga modificata ("S"/"N")

In modalita' selezione la griglia e' read-only (begin-entry -> fail-terminate nel paragrafo z-event-grid-det-ep).


Logica di elaborazione

Inizializzazione

  1. Legge azienda, apre files.
  2. Determina modalita': selezione "S" (se d89-called = k-program-id e d89-caller valorizzato) o aggiornamento "A".
  3. Imposta tasti funzione (Ctrl+A, Ctrl+E, Shift+F4, Shift+F5; F3 aggiorna/selezione/modifica in base al contesto).
  4. Prepara griglia tramite GRIDADMN, costruisce menu contestuale popup (build-main-popup-grid-det).
  5. Carica lingua, imposta filtro predefinito (z-imppredf-carica-default).

Caricamento dati (z-grid-det-crea-transito)

  1. Inizializza file di transito.
  2. Legge COGTABEL sequenzialmente partendo da tipo k-euta-tipo-um.
  3. Per ogni record con tipo corrispondente:
  4. Copia euta-cod in t-gor-r-cod e t-gor-r-cod-prec.
  5. Copia euta-um-des in t-gor-r-des.
  6. Copia euta-um-n-dec in t-gor-r-n-dec.
  7. Inserisce nel file di transito.
  8. Riordina il file di transito. Se il filtro non produce risultati, lo annulla.

Gestione griglia (a-grid)

  • La griglia supporta editing diretto: z-99-begin-entry-grid-det valida quali colonne sono editabili, z-99-finish-entry-grid-det gestisce la fine dell'editing.
  • Invio in selezione: restituisce d89-out-cod e d89-out-des.
  • F3: in aggiornamento diretto salva (b-aggiorna); se chiamato in selezione, alterna tra "S" e "A" (con richiesta salvataggio se ci sono modifiche).
  • Ctrl+A: inserisce nuova riga (z-grid-det-nuova-riga), non possibile con filtro attivo.
  • Ctrl+E: svuota la riga corrente (logicamente la cancella), non possibile con filtro attivo.
  • Shift+F4: gestione griglia (GRIDADMN).
  • Shift+F5: esportazione Excel.
  • Popup menu: gestito tramite x-attiva-popup-grid-det con valori exception 151-199.

Aggiornamento (b-aggiorna)

Scorre il file di transito e per ogni riga: - Cancellazione: se t-gor-r-cod-prec valorizzato ma t-gor-r-cod vuoto, legge e cancella il record da COGTABEL. - Modifica/Inserimento: se t-gor-r-riga-mod = "S" e codice valorizzato, chiama b-aggiorna-record: 1. Legge COGTABEL con tipo k-euta-tipo-um e codice. 2. Se non esiste, esegue wr-cogtabel; se esiste, fa rwr-cogtabel. 3. Copia t-gor-r-des in euta-um-des, t-gor-r-n-dec in euta-um-n-dec.

Validazione campi

  • x-controlla-tm-r-des: descrizione obbligatoria.
  • x-controlla-tm-r-n-dec: massimo 3 decimali.

File utilizzati

File Tipo Descrizione
COGTABEL (feurtab) I-O Tabella generica; tipo k-euta-tipo-um = unita' di misura
t-grid-det Temp I-O File di transito per griglia (creato/gestito automaticamente)

Programmi chiamati

Programma Scopo
GRIDADMN Gestione griglia (preparazione, personalizzazione)
W$MENU Menu popup contestuale

Copybook principali

Copybook Contenuto
cogd89.select Select del programma
cogd89.fd FD file aggiuntivi
cogd89.wrk Working-storage generata
cogd89.tm Dati modificabili della griglia (inclusi in tab-maschera)
cogd89-01.scr Screen section
cogd89.decla Declaratives
cogd89.prc Procedure di servizio
cogd89.imppredf Gestione filtri predefiniti
cogd89.imppredf-wrk Working filtri predefiniti
cogfiles.cpy FD COGTABEL
feurtab.fd Select COGTABEL
k-tipi-cogtabel.cpy Costanti tipi COGTABEL (include k-euta-tipo-um)
utild89.cpy Linkage per scambio dati (selezione)
utilgdad.cpy Interfaccia GRIDADMN
wgrid.cpy Variabili gestione griglia
utilimppredf.cpy Gestione impostazioni predefinite

Note tecniche

  • Questo programma usa il pattern "griglia modo A" con editing diretto sulle celle (a differenza di COGK37 e COGE18 che usano frame di dettaglio separato).
  • L'aggiornamento e' "chirurgico": al salvataggio, solo le righe con t-gor-r-riga-mod = "S" vengono scritte su COGTABEL.
  • La cancellazione e' logica: si svuota il codice nella riga; al salvataggio il record viene eliminato dal file quando t-gor-r-cod-prec e' valorizzato ma t-gor-r-cod e' vuoto.
  • Il file di transito t-grid-det e' gestito dalle copy standard (cogd89.prc) e supporta filtri sul transito o sulla griglia (k-filtro-su-griglia / k-filtro-su-transito).
  • I filtri predefiniti vengono caricati all'apertura e gestiti tramite le copy cogd89.imppredf*.
  • Il menu contestuale popup e' costruito in build-main-popup-grid-det e attivato con right-click sulla griglia.