COGN08 - Configurazione tipi di ricerca merce¶
Sorgente: cbl/cogn08.cbl | Tipo: Programma interattivo carattere (maschera di configurazione) | Program-ID: COGN08
Menu:
- Sistema > Configurazione (voce "Ricerche")
Scopo¶
Configura quali tipi di ricerca l'applicazione deve rendere disponibili quando l'operatore cerca un articolo o un'anagrafica tramite stringhe. Per ciascun canale di ricerca (codice merce interno, descrizione merce, codice merce fornitore, listini generali per descrizione/codice, codice merce cliente, anagrafiche clienti/fornitori, piano dei conti, centri di costo, clienti potenziali, cespiti, contatti/riferimenti, descrizioni aggiuntive merce) l'utente indica S/N per abilitarlo.
Per i canali abilitati e' inoltre possibile accedere (tasto F1) alla configurazione di dettaglio del singolo tipo di ricerca, gestita dal sottoprogramma COGN10. La configurazione complessiva e' salvata come record di tipo 70 su COGTABEL, con chiave logica RICE/DEFINE, nel campo euta-c008 (copybook cnfgrice.cpy).
Struttura del programma¶
Il programma apre una finestra (vis-win) con la maschera statica screen-1 (16 righe) e raccoglie i 13 flag S/N in tab-maschera (tm-cm, tm-dm, tm-cmf, tm-lidm, tm-licmf, tm-cmc, tm-ana, tm-pco, tm-cco, tm-cpt, tm-csp, tm-rif, tm-dam). L'input di ogni flag e' gestito dalla subroutine di scelta a opzioni COGS21.
Inizializzazione e lettura configurazione (a000)¶
ctr-abil, open-files, rd-azi, poi lettura del record di tipo 70 con euta-cfg-arg = 'RICE' / euta-cfg-key = 'DEFINE' (rd-tab). Se il record non esiste, euta-c008 viene inizializzato. I singoli campi euta-c008-* sono trasferiti nei flag tm-* e visualizzati.
Accettazione flag (a-10 ... a-tm-dam)¶
Sequenza di accept, uno per canale, tramite COGS21 (opzioni SN). Per i canali con configurazione di dettaglio (descrizione merce, codice merce fornitore, listini, codice merce cliente, anagrafiche, piano conti, centri di costo, clienti potenziali, cespiti), se il valore e' S e viene premuto F1 il programma richiama COGN10 passando in n09-prg il codice del tipo di ricerca (es. RICDM, RICCMF, RICLDM, RICLCM, RICCMC, RICANA, RICPCO, RICCCO, RICCPT, RICCSP), poi rilegge la relativa sotto-configurazione (x99-cfg). F2 torna al campo precedente, ESC esce.
Conferma e aggiornamento (a-90)¶
Al termine chiede conferma (acc-conf); su F3 rilegge il record di tipo 70, aggiorna tutti i campi euta-c008-* con i flag tm-* e scrive/riscrive il record (write ... invalid key rewrite).
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | File di sistema aziende (aperto via cogfiles.cpy, rd-azi) |
| COGTABEL | primaria euta-key (euta-tipo + euta-key-cfg = euta-cfg-arg + euta-cfg-key); aperto in I/O |
Tabella generalizzata. Record di tipo 70 con chiave RICE/DEFINE: flag di abilitazione dei tipi di ricerca (euta-c008) |
COPY incluse¶
Working-Storage¶
feurtab.fd, cogtabel.fd (SELECT), cogfiles.cpy, cogtabel.cpy, wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, utils21.cpy, cogazien.cpy (la redefine euta-c008 proviene da cnfgrice.cpy, inclusa nella catena di cogtabel.cpy)
Linkage¶
wcont.cpy, wcont1.cpy
Procedure Division¶
cogtabel.k01, stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, open1.cpy, scree.cpy (routine finestra vis-win/acc-conf), config.cpy
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGS21 | Subroutine di scelta a opzioni (S/N) per ogni flag di abilitazione ricerca |
| COGN10 | Configurazione di dettaglio del singolo tipo di ricerca abilitato (F1); riceve il codice tipo ricerca in n09-prg |
Configurazioni RNEWCONF¶
Il programma non usa RNEWCONF: la configurazione e' persistita direttamente su COGTABEL (tipo 70, chiave RICE/DEFINE, campo euta-c008). Il paragrafo x99-src-cfg qui presente e' una lettura di COGTABEL, non una chiamata a RNEWCONF.
Note tecniche¶
- Persistenza su COGTABEL: i 13 flag S/N sono impacchettati nella redefine
euta-c008del record di tipo 70;cnfgrice.cpydocumenta i primi campi (cm,dm,cmf,lidm,licmf,cmc,ana,pco,cco,cpt,csp,rif), mentre il flagtm-dam(descrizioni aggiuntive merce) e' gestito nel sorgente sul relativo byte del campo descrizione. - Sotto-configurazioni: per i canali abilitati la configurazione fine (lunghezze, delimitatori, ecc.) e' delegata a COGN10, richiamato con codici
RIC*specifici del canale. - Canali senza dettaglio: per contatti/riferimenti (
tm-rif) e descrizioni aggiuntive merce (tm-dam) la chiamata a COGN10 e' commentata: la loro configurazione di ricerca coincide con quella delle descrizioni merce. - Il copybook
cnfgrice.cpynon include il campodam: il byte corrispondente e' comunque salvato nel campo descrizione del record tipo 70.