COGT27 - Postazioni di lavoro¶
Sorgente: cbl/cogt27.cbl | Tipo: Programma interattivo GUI con griglia (gestione anagrafica) | Program-ID: COGT27
Menu:
- Sistema > Configurazione > Stampanti
Scopo¶
Gestisce l'anagrafica delle postazioni di lavoro (PRNTPOST). Una postazione identifica una collocazione fisica/logica di lavoro e definisce alcune preferenze applicate quando un operatore vi si collega: operatore preferenziale, magazzino preferenziale, azienda in uso e nome utente da usare nella connessione al database.
La postazione e' l'entita' a cui COGT25 associa le periferiche abilitate; le postazioni gestite qui sono quindi la base dell'attribuzione periferiche del sottosistema stampa.
Il programma puo' operare come funzione autonoma da menu oppure essere richiamato in modalita' selezione (linkage util-t27: t27-called = k-program-id e t27-caller valorizzato): in tal caso la griglia consente di scegliere una postazione e restituirla al chiamante in t27-out-cod / t27-out-des.
Struttura del programma¶
Pattern standard a due livelli: griglia di elenco (a-grid) piu' riga di dettaglio (a-riga-dettaglio), con GRIDADMN.
Inizializzazione (apri)¶
ctr-abil, z-99-init-program, open-files, rd-azi; determinazione della modalita' richiamata (w-dc-called = "S" se t27-called = k-program-id e t27-caller non vuoto) e della modalita' operativa (a-modalita = "S" selezione se richiamato, altrimenti "A" aggiornamento). Abilita i tasti (Invio, Invio-modifica, F3 conferma, F8 aiuto, Shift-F4 griglia, Ctrl-A, Ctrl-E), carica lingua/titolo, prepara griglia e controlli.
Caricamento elenco (a10)¶
Scansione completa di PRNTPOST dall'inizio (st-prntpost-notmin + rdnxt-prntpost), fino a fine file. Ogni postazione riempie una riga di tm-tab con: codice (ptpo-cod), descrizione (ptpo-des), operatore preferenziale (ptpo-ope), magazzino preferenziale (ptpo-mag), azienda (ptpo-azi), utente database (ptpo-db-user). Max 900 righe (k-max-ele-tab).
Griglia (a30 / a-grid / a-accept-grid)¶
Costruzione griglia e navigazione GRIDADMN. Da qui:
- F3 commuta Aggiornamento/Selezione;
- Invio in Aggiornamento apre il dettaglio in modifica; in Selezione restituisce codice+descrizione al chiamante (
t27-out-cod/t27-out-des) e termina; - Ctrl-A apre il dettaglio in inserimento;
- Ctrl-E elimina previa conferma (
c1-ctrl-canc,c-cancella).
Riga di dettaglio (a-riga-dettaglio e campi)¶
Accept in sequenza:
a-tm-cod(codice postazione, editabile solo in inserimento): validazionex-controlla-tm-cod(obbligatorio; in inserimento non deve gia' esistere in PRNTPOST);a-tm-des(descrizione):x-controlla-tm-des(obbligatoria);a-tm-ope(operatore preferenziale): F8 = help operatori COGT20;x-controlla-tm-opeverifica l'esistenza in PRNTOPER (se diverso da 0);a-tm-mag(magazzino preferenziale): F8 = ricerca magazzini viasend-w36(W36);x-controlla-tm-magverifica l'esistenza in COGMAGAZ (magz-tipo = "M"+magz-cod);a-tm-azi(azienda in uso): F8 = help aziende WIN163;x-controlla-tm-aziverifica l'esistenza in COGAZIEN e riporta l'intestazioneaz-int, ripristinando poi l'azienda corrente conrd-azi;a-tm-user-dbase(utente database):x-controlla-tm-user-dbase(nessun controllo di merito).
Conferma / salvataggio (a-riga-dettaglio-fine)¶
x-imposta-conferma valida tutti i campi; con F3 aggiorna la griglia via GRIDADMN e scrive PRNTPOST con codice, descrizione, operatore, magazzino, azienda e utente database, tramite wr-prntpost (inserimento) o rwr-prntpost (modifica). Il rd-prntpost-lk precedente riallinea "I"/"M".
Chiusura (fine / z-chiudi)¶
z-close-files, chiusura finestra, z-99-exit-program, exit program.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| PRNTPOST | primaria ptpo-chia1 (ptpo-cod) |
Anagrafica postazioni di lavoro (descrizione, operatore/magazzino/azienda preferenziali, utente database) |
| PRNTOPER | ptop-cod |
Anagrafica operatori (validazione operatore preferenziale) |
| COGMAGAZ | magz-tipo ("M") + magz-cod |
Anagrafica magazzini (validazione magazzino preferenziale) |
| COGAZIEN | az-cod |
Anagrafica aziende (validazione azienda, intestazione az-int) |
COPY incluse¶
Working-Storage¶
cogt27.wrk, utilt20.cpy, utilw36.cpy, utilw163.cpy, wstato.cpy, wgrave.cpy, wgrid.cpy, wopenf.cpy, wnscr.cpy, utilgdad.cpy
Linkage¶
wcont.cpy, wcont1.cpy, utilt27.cpy
Procedure Division¶
cogt27.decla, cogt27-01.scr (screen), stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, opengen.cpy, mmmask.cpy, utilgrid.cpy, cogt27.prc, sendw36.cpy
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGT20 | Help / selezione operatore (F8 su operatore preferenziale) |
| WIN163 | Help / selezione azienda (F8 su azienda in uso) |
| GRIDADMN | Gestione griglia (Prepara, Svuota-Tutto, Add-Record, Modify-Record) |
W36 (via send-w36 / sendw36.cpy) |
Ricerca magazzini (F8 su magazzino preferenziale) |
I gestori delle tabelle indicizzate (st-prntpost-notmin, rdnxt-prntpost, rd-prntpost-lk, wr-prntpost, rwr-prntpost, del-prntpost, rd-prntoper, rd-cogmagaz, rd-cogazien) sono i gestori tabella generati (Y*), richiamati via PERFORM tramite le COPY di procedura.
Configurazioni RNEWCONF¶
Il programma non legge configurazioni RNEWCONF: non include utilncnf.cpy e non contiene un paragrafo x99-confi. L'anagrafica postazioni e' definita esclusivamente nella tabella PRNTPOST.
Note tecniche¶
- Ruolo delle preferenze di postazione (documentate in
prntpost.cpy):ptpo-mage' il magazzino preferenziale che sovrascriveaz-main-mag;ptpo-azie' il codice azienda in uso chepopgeazicarica al posto del defaultaz-cod = 1;ptpo-db-usere' il nome utente da usare nella connessione al database. - Default azienda in inserimento: se la postazione non ha azienda impostata (
tm-azi = 0), all'apertura del dettaglio viene proposta l'azienda corrente (az-cod). - Ripristino azienda corrente: la validazione azienda legge un altro record COGAZIEN per l'intestazione, poi richiama
rd-aziper riportare corrente il record azienda iniziale. - Codice non modificabile in variazione: il campo codice postazione e' abilitato solo in inserimento (
x-enabled-tm-cod); in modifica e' bloccato. - Coerenza operazione I/M:
rd-prntpost-lkprima della scrittura riallineaa-operazionein base alla presenza effettiva del record su PRNTPOST. - Modalita' richiamata: se avviato come help (
t27-called = k-program-id), la griglia parte in modalita' selezione e l'Invio restituisce la postazione scelta al chiamante (usata ad esempio da COGT25 per selezionare la postazione). - Limite griglia: massimo 900 postazioni caricabili (
k-max-ele-tab).