COGI10 - Voci di controllo (Colture)¶
Panoramica¶
Programma interattivo a carattere (maschera testuale in finestra) per la gestione dell'anagrafica delle "Voci di controllo" del modulo Colture. E' una gestione di archivio classica (inserimento / variazione / cancellazione) su un solo file, CICLAVOR, che memorizza una coppia codice numerico + descrizione. Nel sorgente e nelle etichette video la stessa entita' e' chiamata anche "Lavorazione" / "Gruppo di Attivita'"; il copybook ciclavor.cpy la definisce esplicitamente come "Anagrafica Voci di controllo". Il programma non produce stampe: aggiorna direttamente l'archivio a valle della conferma dell'operatore.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Colture > Archivi di Base > Voci di controllo |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema / anagrafica azienda (letta da rd-azi) |
| CICTABEL | I-O | Tabella generica del modulo Colture (aperta ma non movimentata in questo programma) |
| CICLAVOR | I-O | Anagrafica Voci di controllo / Lavorazioni (codice + descrizione): file gestito |
| COGMAGAZ | Input | Anagrafica magazzini (usata solo per recuperare mag-nome in visualizzazione) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cictabel.fd / ciclavor.fd / cogmagaz.fd | SELECT / File Description dei file |
| cogfiles.cpy | Record di FEURTAB |
| cictabel.cpy / ciclavor.cpy / cogmagaz.cpy | Layout record dei file |
| ciclavor.k01 | Chiave primaria di CICLAVOR (per codice) |
| wstato.cpy / wgrave.cpy / wopenf.cpy / wnscr.cpy | Working storage standard (stato verbi, errori gravi, apertura file, gestione video) |
| cogazien.cpy | Dati azienda |
| utili07.cpy / utili08.cpy | Interfacce di ricerca/help per descrizione (I07) e per codice (I08) |
| utils21.cpy | Utilita' di supporto |
| sendi07.cpy / sendi08.cpy | Routine di chiamata ai moduli di help I07/I08 |
| stato.cpy / stato1.cpy | Routine di gestione stato dei verbi di I/O |
| winmsg.cpy / grave.cpy | Gestione messaggi a video ed errori gravi |
| open1.cpy / openc.cpy | Routine di apertura file (open-files, open-files-ci) |
| mmmask.cpy | Gestione maschera in finestra (rd-msk-pop, disp-msk, z-99-exit-program) |
| wcont.cpy / wcont1.cpy | Aree di linkage con il chiamante (stringhe) |
Chiamate a sottoprogrammi (CALL)¶
Il programma non contiene CALL dirette esplicite nel sorgente. Le funzioni di ricerca/help sono invocate tramite le routine send-i07 e send-i08 (copybook sendi07.cpy / sendi08.cpy), che pilotano rispettivamente la ricerca per descrizione e per codice.
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta il nome programma per help ed errori (COGI10), apre i file di sistema (open-files) e i file del modulo Colture (open-files-ci, che apre CICTABEL e CICLAVOR tramite search-file-ci), legge i dati azienda (rd-azi). Carica la maschera testuale mm-1 (7 righe da 67 colonne) come main-mask, ne imposta dimensione e posizione e la visualizza in finestra (rd-msk-pop).
2. Presentazione maschera (a4)¶
Visualizza la maschera e il titolo " Attivita' ", legge la data di sistema, mostra la barra funzioni (ESC=Esci) e inizializza le aree di lavoro tab-maschera e mag-rec.
3. Accettazione del codice (a6)¶
Mostra il tasto F8=Aiuto e accetta il codice tm-stm. Gestione tasti:
- ESC -> uscita (fine);
- F2 -> ripete l'accept;
- F8 -> ricerca per codice via send-i08 (file CICLAVOR, indice ci-name-2); se l'utente non seleziona nulla si resta in a6, altrimenti il codice scelto e' riportato in tm-stm;
- se il codice e' zero o spazi, si passa all'accettazione della descrizione (acc-des) e, con F8, alla ricerca per descrizione via send-i07.
4. Lettura e biforcazione (a10)¶
Se il codice e' nullo segnala "Codice Lavorazione non significativo!" e torna in a6. Altrimenti sposta tm-stm in cic-lav-cod, legge CICLAVOR (rd-ciclavor): se il record non esiste (w-verbo-invalido) va in inserimento, altrimenti in variazione.
5. Variazione / Cancellazione (variazione)¶
Visualizza il record (visualizza: descrizione da cic-lav-des, ed eventuale nome magazzino) e mostra F3=Varia, F4=Cancella. In varia00 accetta la nuova descrizione; F3 conferma (varia48), F4 cancella (cancella), F2 ripete, ESC torna in a4.
- Variazione (varia90): sposta tm-des in cic-lav-des, tenta la riscrittura (rwr-ciclavor) e, se il record non esiste piu', lo riscrive con wr-ciclavor.
- Cancellazione (cancella): dopo conferma (acc-conf, tasto F3) esegue del-ciclavor.
6. Inserimento (inserimento)¶
Mostra F3=Inserisce, accetta la descrizione (inser00); se la descrizione e' vuota segnala "Digitare codice o descrizione". Dopo conferma (inser48, tasto F3) in inser90 inizializza cic-lav-rec, valorizza codice e descrizione e scrive il nuovo record con wr-ciclavor.
7. Chiusura (fine / z-chiudi)¶
Chiude CICLAVOR e CICTABEL, chiude la finestra della maschera (close window), esegue z-99-exit-program ed esce con exit program.
Note tecniche¶
- Divergenza etichetta/entita': la voce di menu e' "Voci di controllo"; nel sorgente titoli ed messaggi parlano di "Attivita'" / "Lavorazione". Il copybook
ciclavor.cpychiarisce che si tratta della stessa entita' ("Anagrafica Voci di controllo"), gestita sul fileCICLAVOR. - Struttura record CICLAVOR:
cic-lav-cod(codice numerico9(03)) +cic-lav-des(descrizionex(50)), con flagcic-lav-val= "C" per il cancellato; chiave secondaria per descrizione (cic-lav-chia1) usata dal modulo di ricerca I07. - Interfaccia a carattere: il programma usa la vecchia tecnica della maschera testuale (
mm-1con caratteri semigrafici) gestita dammmask.cpy, non una griglia GUI. - File aperti ma non gestiti: CICTABEL viene aperto in I-O ma non risulta letto/scritto in questo programma; COGMAGAZ e' aperto solo in input per la descrizione magazzino in
visualizza. - Nessuna configurazione RNEWCONF viene letta.
- Dimensione sorgente: circa 352 righe (
cbl/cogi10.cbl).