COGM40 - Aspetti Esteriori¶
Sorgente: cbl/cogm40.cbl | Tipo: Programma interattivo con griglia | Program-ID: COGM40
Menu:
- Magazzino > Archivi & Tabelle > Tabelle > Aspetti Esteriori
Scopo¶
Gestione CRUD della tabella aspetti esteriori (tipo 73 di COGTABEL). La tabella contiene codice (2 caratteri), descrizione e peso in Kg per ogni aspetto esteriore. Il programma supporta sia la modalita' standalone (aggiornamento) sia la modalita' di selezione quando richiamato da un altro programma (tramite linkage util-m40).
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri): apertura file, determinazione modalita' (standalone "A" o chiamato "S"), impostazione tasti funzione, preparazione griglia - Caricamento (
a10-a10-loop): scansione sequenziale di COGTABEL coneuta-tipo = 73, caricamento intm-tab(fino a 900 righe) - Griglia (
a-grid/a-accept-grid): visualizzazione e navigazione della tabella - Dettaglio (
a-riga-dettaglio): accept campi codice, descrizione, peso per inserimento o modifica - Cancellazione (
c-cancella): eliminazione record dalla tabella e ricompattazione array
Modalita' operative¶
| Modalita' | a-modalita |
Descrizione |
|---|---|---|
| Aggiornamento | "A" | CRUD completo: inserimento (Ctrl+A), modifica (Invio), eliminazione (Ctrl+E) |
| Selezione | "S" | Solo selezione: Invio restituisce il codice in m40-out-cod e chiude |
La commutazione tra le modalita' avviene con F3 (solo se il programma e' chiamato, w-dc-called = "S").
Dettaglio riga¶
L'accept dei campi segue l'ordine:
a-tm-cod- Codice (solo in inserimento; in modifica si salta)a-tm-des- Descrizione (obbligatoria)a-tm-peso- Peso in Kg (accept tramite UTILU20)
Alla conferma (a-riga-dettaglio-fine):
- Validazione campi con
x-imposta-conferma - Richiesta conferma all'utente
- Lettura/lock del record su COGTABEL
- Se inserimento e record gia' esistente: converte in modifica con avviso
- Se modifica e record cancellato: converte in inserimento con avviso
- Scrittura con
wr-cogtabelorwr-cogtabel - Aggiornamento griglia tramite GRIDADMN
Tabelle e file¶
| File logico | Tabella | Tipo record | Accesso |
|---|---|---|---|
| FEURTAB / COGTABEL | COGTABEL | euta-tipo = 73 (aspetti esteriori) |
Indexed, dynamic |
Campi del record COGTABEL usati¶
| Campo | Mapping | Descrizione |
|---|---|---|
euta-tipo |
Costante k-euta-tipo = 73 |
Tipo tabella |
euta-cod |
tm-cod (2 char) |
Codice aspetto esteriore |
euta-asp-des |
tm-des (30 char) |
Descrizione |
euta-asp-peso |
tm-peso (6.3) |
Peso in Kg |
Struttura in memoria¶
tab-maschera (array di lavoro)¶
tm-tab: array di k-max-ele-tab (900) righe
tm-cod PIC X(02) - Codice
tm-des PIC X(30) - Descrizione
tm-peso PIC 9(06)V999 - Peso in Kg
tm-pnt: PIC 9(04) - Numero righe caricate
grid-record (interscambio con griglia)¶
grd-cod PIC X(05) - Codice (formattato)
grd-des PIC X(30) - Descrizione
grd-peso PIC ZZZZ.ZZ9,999 - Peso editato
COPY incluse¶
Working-Storage¶
cogm40.wrk, wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, cogazien.cpy, utilgdad.cpy, utilu20.cpy
Linkage¶
wcont.cpy, wcont1.cpy, utilm40.cpy
Procedure Division¶
cogm40.prc, stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record, configurazione colonne) |
Interfaccia di chiamata¶
Il programma e' richiamabile come sottoprogramma tramite linkage util-m40:
- Input:
m40-called = k-program-id,m40-caller = <programma chiamante> - Output:
m40-out-cod= codice aspetto esteriore selezionato
Note tecniche¶
- Il controllo duplicati (
x-controlla-duplicati) scansiona l'intero arraytm-tabper verificare che il codice inserito non sia gia' presente. - La gestione del resize della finestra (
z-99-event-form-1) ricalcola le dimensioni della griglia. - Il campo peso viene accettato tramite la subroutine
UTILU20(accept numerico con formattazione). - Il programma usa
PERFORM THRUnei paragrafic-cancella thru ex-cec1-ctrl-canc thru ex-c1.