COGI21 - Macchine (Colture)¶
Panoramica¶
Programma interattivo a carattere (maschera testuale in finestra) per la gestione dell'anagrafica di base delle Macchine del modulo Colture. Ogni Macchina e' individuata da un codice e da una descrizione, con un coefficiente, e ha collegate una lista di attivita' (Voci di controllo) che ne compongono la distinta. La gestione consente inserimento, modifica e cancellazione della testata (file CICBASTE) e delle righe di collegamento alle attivita' (file CICBASRI), risolvendo la descrizione di ciascuna attivita' dal file CICLAVOR.
Il sorgente e' identico a quello di COGI20 (Lavorazioni) e COGI22 (Risorse): la funzione effettiva e' selezionata dal campo interno w-tipo, che in COGI21 vale '2' (Macchine).
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Colture > Archivi di Base > Macchine |
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 direttamente) |
| CICLAVOR | Input | Anagrafica Voci di controllo / attivita': letta per risolvere la descrizione delle attivita' collegate |
| CICBASTE | I-O | Anagrafica di Base - testata (codice, descrizione, coefficiente); file gestito, discriminato per cic-bas-tipo |
| CICBASRI | I-O | Anagrafica di Base - righe: legami fra la testata e le attivita' collegate |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd / cictabel.fd / ciclavor.fd / cicbaste.fd / cicbasri.fd | SELECT / File Description dei file |
| cogfiles.cpy | Record di FEURTAB |
| cictabel.cpy / ciclavor.cpy / cicbaste.cpy / cicbasri.cpy | Layout record dei file |
| cicbaste.k01 / cicbasri.k01 / ciclavor.k01 | Chiavi primarie dei file gestiti |
| wstato.cpy / wgrave.cpy / wopenf.cpy / wnscr.cpy | Working storage standard (stato verbi, errori gravi, apertura file, gestione video) |
| cogazien.cpy | Dati azienda |
| utili06.cpy | Interfaccia del modulo di ricerca I06 (COGI06) |
| utili08.cpy | Interfaccia del modulo di help I08 |
| sendi08.cpy | Routine di chiamata al modulo di help I08 |
| dtab.cpy | Routine di gestione tabella a video (disp-tab, disp-riga) |
| tstfun1.cpy | Routine di gestione tasti di navigazione tabella (tst-fun) |
| 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) |
| wcont.cpy / wcont1.cpy | Aree di linkage con il chiamante (stringhe) |
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| COGI06 | Ricerca/immissione guidata del codice o della descrizione della testata (chiamato in a1-acqui-tmbase, area util-i06) |
I08 (via send-i08) |
Help sul codice attivita' durante l'inserimento delle righe (file di ricerca CICLAVOR) |
Logica di elaborazione¶
1. Inizializzazione (apri)¶
Imposta il nome programma (COGI21), apre i file di sistema e i file del modulo (CICTABEL in I-O, CICLAVOR in input, CICBASTE e CICBASRI in I-O), legge i dati azienda. Imposta w-tipo = '2' (Macchine), carica la maschera testuale mm-1 (15 righe da 58 colonne) e la visualizza.
2. Presentazione maschera (a4)¶
Visualizza la maschera con titolo "Anagrafiche di Base:" e, in base a w-tipo, l'etichetta "Macchine". Mostra la barra ESC=Esci e inizializza tab-maschera.
3. Acquisizione codice (a6 / a1-acqui-tmbase)¶
Chiama COGI06 per l'immissione guidata del codice/descrizione della testata (tipo record w-tipo = '2'). Al ritorno riporta l'esito in funzio e il codice in tm-stm. ESC esce; con esito "Y" prosegue in a10.
4. Lettura testata e righe (a10)¶
Legge CICBASTE per tipo+codice: se non esiste imposta inserimento (sw-inserimento = "I") e salta a a-45; se esiste mostra descrizione e coefficiente e carica le attivita' collegate scandendo CICBASRI (y1-start-cicbasri + a1-car). In a-30 risolve la descrizione di ogni attivita' leggendo CICLAVOR.
5. Editing testata (a-40 / a-45 / a-47 / a-48)¶
Mostra F3=Aggiorna, F4=Cancella. Accetta descrizione, parte intera e parte decimale del coefficiente. F2 torna indietro, F4 cancella (b-cancella), ESC esce.
6. Inserimento attivita' collegate (a-50 / a-50-tab)¶
Ciclo di immissione dei codici attivita' nella tabella tm-tab (max 50). F8 attiva l'help I08 su CICLAVOR; i tasti di scorrimento sono gestiti da tst-fun; alla conferma verifica l'esistenza dell'attivita' su CICLAVOR ("Attivita' non esistente!!" se assente) e ne mostra la descrizione. F3 conferma e passa all'aggiornamento (a-90).
7. Aggiornamento (a-90 / b-aggiorna / aggio-cicbaste)¶
Scrive/riscrive la testata su CICBASTE (wr-cicbaste / rwr-cicbaste), cancella le righe attivita' preesistenti su CICBASRI (b1-del) e riscrive le nuove per ogni tm-att-cod non nullo (wr-cicbasri / rwr-cicbasri). Torna in a4.
8. Cancellazione (b-cancella)¶
Dopo conferma (F3) cancella la testata su CICBASTE e scorre/cancella tutte le righe collegate su CICBASRI per la coppia tipo+codice corrente.
9. Chiusura (fine / z-chiudi)¶
Chiude CICTABEL, CICLAVOR, CICBASTE e CICBASRI, chiude la finestra ed esce.
Note tecniche¶
- Sorgente condiviso a tre funzioni: COGI20, COGI21 e COGI22 hanno lo stesso codice; differiscono per
program-ide per il valore diw-tipo('1'= Lavorazioni,'2'= Macchine,'3'= Risorse). Il campocic-bas-tipo/cic-bri-tipodiscrimina i record dei tre archivi condivisi CICBASTE/CICBASRI. - Testata + righe: la testata sta in CICBASTE (coefficiente
9(03)v99), le righe di collegamento alle attivita' in CICBASRI (cic-bri-att= codice attivita'). Le descrizioni delle attivita' sono risolte da CICLAVOR (sola lettura). - Interfaccia a carattere: maschera testuale semigrafica (
mm-1,mmmask.cpy) con tabella scorrevole, non una griglia GUI. - Uso di PERFORM ... THRU e GO TO: codice legacy con uso estensivo di
GO TOePERFORM ... THRU, mantenuti per compatibilita'. - Nessuna configurazione RNEWCONF viene letta.
- Dimensione sorgente: circa 593 righe (
cbl/cogi21.cbl).