COGM98 - Visualizzazione conto lavoro esterno¶
Panoramica¶
Programma interattivo GUI che visualizza in una griglia paginata le righe di conto lavoro esterno (archivio COGCLAVO), cioe' le quantita' di prodotto affidate ai lavoranti esterni e le quantita' gia' prodotte/rientrate. La visualizzazione e' filtrata per stato del c/lavoro (Aperto/Chiuso), intervallo di date, lavorante (magazzino di tipo lavorante) e merce. E' una visualizzazione di sola consultazione: non aggiorna gli archivi.
Il commento di intestazione del sorgente ("Visualizzazione rimanenze per merce") e' un residuo del programma da cui e' stato derivato; la funzione effettiva e il titolo di maschera sono "Visualizzazione C/Lavoro".
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Trasferimenti > Visualizzazione c/Lavoro |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema |
| COGMERCI | Input | Anagrafica merci (descrizione, help) |
| COGMAGAZ | Input | Anagrafica magazzini/lavoranti (descrizione, verifica tipo lavorante) |
| COGCLAVO | Input | Archivio conto lavoro esterno: fonte primaria dell'estrazione (scansione per chiavi secondarie .k03 e .k04) |
| EXP-GRID | Output | File sequenziale per l'export Excel della griglia |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| cogm98.select / cogm98.fd | SELECT e File Description (generati da Screens) |
| cogm98.wrk / cogm98.prc / cogm98.decla | Working storage, procedure di I/O e declaratives generati |
| cogm98-01.scr | Screen section |
| cogclavo.k03 / cogclavo.k04 | Chiavi secondarie del conto lavoro - incluse manualmente |
| cogazien.cpy | Dati azienda |
| wgrid.cpy / utilgdad.cpy / fscrol2.cpy / utilpggr.cpy | Gestione griglia e paginazione (GRIDADMN) |
| utils52.cpy | Interfaccia campo data (COGS52) |
| utils68.cpy | Interfaccia ricerca merce (COGS68) |
| utilu16.cpy | Interfaccia utility COGU16 |
| utilw36.cpy / sendw36.cpy | Interfaccia e chiamata all'help magazzino (COGW36) |
| dtab.cpy | Utility tabelle |
| wstato / wgrave / wopenf / wnscr | Working storage standard |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione e personalizzazione della griglia paginata |
| COGS68 | Ricerca/help merce (gruppo/sottogruppo/codice) |
| COGS52 | Gestione/validazione campi data (via utils52) |
| COGS60 | Selezione dello stato c/lavoro (Aperto/Chiuso) |
| COGW36 | Help/ricerca magazzino-lavorante (via sendw36) |
| AZVALIDA.COB | Validazione formale delle date immesse |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Controlla l'abilitazione, inizializza il programma, legge i dati azienda, apre i file, attiva i tasti funzione previsti (F3 conferma, F8 aiuto, Shift-F4 griglia), imposta il titolo "Visualizzazione C/Lavoro" e prepara i controlli e la griglia (z-costruisci-controlli, z-prepara-tm-grid).
2. Reset e default (a4)¶
Svuota la griglia e la struttura tab-maschera, imposta i filtri di default: stato "A" (Aperto), data inizio 19900101, data fine 20991231. Carica i controlli e ricostruisce la griglia vuota, riattivando il tasto F3.
3. Accept dei filtri¶
Serie di paragrafi a-tm-* per l'immissione dei parametri, con navigazione F2 (indietro) / F3 (conferma diretta) / mouse (x-test-mouse):
a-tm-stato: stato del c/lavoro (Aperto/Chiuso), tramite COGS60;a-tm-data-ini/a-tm-data-fin: intervallo di date, gestite via COGS52 con calendario (F8) e validate formalmente con AZVALIDA.COB; la data inizio non puo' superare la data fine;a-tm-mag: lavorante, con help F8 tramite COGW36; se indicato deve essere un magazzino di tipo lavorante (magz-fl-tip = "L"), altrimenti errore; spazio = tutti i lavoranti;a-tm-merce: merce, gestita via COGS68.
x-controlla-tm-merce impone che sia indicato almeno un lavorante o un articolo: se sia il magazzino sia la merce sono vuoti, la conferma e' bloccata.
4. Estrazione dati (a-fine-dati / x-spaginamento-start)¶
Dopo la validazione complessiva (x-controlla-dati) e la conferma (F3), la scansione parte da x-spaginamento-start, che imposta la chiave di ricerca su COGCLAVO con stato, data inizio, magazzino e merce e sceglie la chiave secondaria in base alla presenza del filtro lavorante:
- se il lavorante e' vuoto usa la chiave
.k04(stato + data + merce + magazzino); - se il lavorante e' valorizzato usa la chiave
.k03(stato + data + magazzino + merce).
Le routine di paginazione (fscrol2 / utilpggr / GRIDADMN) scandiscono l'archivio (rdnxt-cogclavo / rdprv-cogclavo) riempiendo la struttura tab-maschera fino a riempire la pagina. Il paragrafo rd-controlli-read interrompe la lettura alla rottura dei filtri (stato diverso, data fuori intervallo, magazzino o merce diversi dai valori richiesti). Per ogni riga (rd1-ft-go) vengono salvati merce, documento di c/lavoro, lavorante, data, quantita' affidata (clv-qta) e quantita' prodotta (clv-qta-prod). Se nessuna riga viene trovata compare "Non esiste nessun c/lavoro per i dati richiesti!".
5. Caricamento griglia (carica-tab / x-riempi-grid-record)¶
carica-tab svuota e ricostruisce la griglia. Per ogni riga, x-riempi-grid-record formatta il record video grid-record con: merce, lavorante, tipo/anno/numero del documento di c/lavoro, data (gg/mm/aaaa), quantita' affidata e quantita' prodotta.
6. Interazione sulla griglia (a-grid)¶
Gestisce ESC (uscita), Shift-F4 (personalizzazione colonne via GRIDADMN), Shift-F5 (export Excel su EXP-GRID) e Pag su/giu' (paginazione avanti/indietro sull'archivio, con avvisi di fine dati).
7. Chiusura (fine / z-chiudi)¶
Chiude i file, chiude la finestra ed esce (goback).
Note tecniche¶
- Fonte dati: l'archivio COGCLAVO ("c/lavoro esterno") registra, per ciascun documento di uscita a lavorante, la merce del prodotto finale, il lavorante, la data, la quantita' da produrre (
clv-qta) e quella gia' prodotta (clv-qta-prod), con stato Aperto ("A") o Chiuso ("C"). Il programma e' una vista di sola lettura su questo archivio. - Scelta della chiave secondaria: la scansione usa
cogclavo.k04(stato+data+merce+magazzino) quando non c'e' filtro sul lavorante ecogclavo.k03(stato+data+magazzino+merce) quando il lavorante e' indicato, per ottimizzare l'ordine di lettura; entrambe le chiavi sono incluse manualmente in coda alla procedure division. Le strutturew-clv-chia3/w-clv-chia4fungono da appoggio per le chiavi di restart della paginazione. - Validazione lavorante: il magazzino indicato deve avere
magz-fl-tip = "L"(tipo lavorante), altrimenti viene segnalato "Devi indicare un lavorante!". - Filtro minimo: e' obbligatorio indicare almeno un lavorante o un articolo; non e' consentita l'estrazione totalmente non filtrata.
- Dimensione sorgente: circa 1.162 righe (
cbl/cogm98.cbl).