COGR15 - Ricostruzione ricerca: Piano Dei Conti¶
Sorgente: cbl/cogr15.cbl | Tipo: Programma di menu / elaborazione batch | Program-ID: COGR15
Menu: Sistema > Archivi > Ricostruzioni > Ricerche [Piano Dei Conti]
Scopo¶
COGR15 svuota e ricostruisce l'archivio di ricerca per stringa del piano dei conti COGSTPCO. Scandisce integralmente il piano dei conti (COGPNCON) e, per ogni conto, spezza la descrizione (pco-des) in parole-chiave di ricerca tramite la subroutine COGS34; per ciascuna parola aggiorna un indice inverso parola -> elenco dei codici conto. E' la struttura usata a runtime dalle finestre di ricerca del piano dei conti per descrizione.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGPNCON | cogpncon.fd / cogpncon.cpy (pco-rec) |
Piano dei conti: sorgente scandita in sequenza su pco-chia; letta la descrizione pco-des |
| COGSTPCO | cogstpco.fd / cogstpco.cpy (stpc-rec) |
Indice di ricerca per parola: file di destinazione, svuotato e ricostruito |
| COGTABEL | cogtabel.fd / cogtabel.cpy (euta-rec) + cnfgrice.cpy |
Tabella #70 (arg RICE, key DEFINE): abilitazione ricerche |
feurtab (cogfiles.cpy) |
cogfiles.cpy |
File tabellare generale usato dal framework |
Struttura del record COGSTPCO (cogstpco.cpy) - record a lunghezza variabile 17..337:
stpc-key1=stpc-paro1PIC X(9) +stpc-prog1PIC 9(4) COMP-4 - parola di 9 byte + progressivo di chiave primariastpc-ultiPIC 9(8) COMP-4 - puntatore al primo elemento tabellare liberostpc-puntPIC 9(2) - numero elementi presenti (DEPENDING ON)stpc-tabeOCCURS 0..40 PIC 9(10) COMP-4 - elenco codici piano dei conti (pco-chia)
Flusso principale¶
main / a000- impostaprog-err,ctr-abil,open-files,rd-azi; disegna la finestra di stato (vis-win) con intestazione "Stringhe Piano Dei Conti" e i tasti ESC/F3.- Legge la configurazione ricerche
COGTABELtipo 70 (argRICE, keyDEFINE) viard-tab; blocca con messaggio se assente o seeuta-c008-pco = 'N'(ricerca piano dei conti non abilitata). a010- conferma viaacc-conf; ESC esce, prosegue solo con F3.a020- svuotamento file:open output cogstpco,close,open i-o cogstpco.a1-agg-mer- posizionaCOGPNCONconstartsupco-chia = low-valuee scandisce in sequenza (read cogpncon next):- per ogni conto passa
pco-desa COGS34 (s34-key = 'RICPCO',s34-l-str = 40) che restituisce le parole di ricerca; - esegue
aggpalper inserire nell'indice ciascuna parola col codice conto. aggpal- per ogni parola non vuota costruiscestpc-key1(parola + progressivo 0) e leggeCOGSTPCO:- parola non presente ->
aggpal-1: crea il record base della parola con il codice conto come primo elemento; - parola presente con
stpc-ulti < 40->aggpal-2: aggiunge il codice conto in coda (rewrite); - record saturo (
stpc-ulti >= 40):div1 = stpc-ulti / 40,div2 = resto; resto 0 ->aggpal-3(nuovo record paginadiv1), altrimenti ->aggpal-4(aggiunge alla paginadiv1in posizionediv2+1); in entrambi i casi aggiornastpc-ultisul record base. Il codice contopco-chiaviene trasferito inwzeta10PIC 9(10) prima di scriverlo negli elementistpc-tabe. - A fine scansione mostra "Fine Elaborazione".
fine-close cogpncon cogstpco cogtabel,z-99-exit-program,exit program.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGS34 | Tokenizzatore: spezza pco-des in parole-chiave di 9 byte secondo i parametri della tabella #70 individuata da s34-key = 'RICPCO'; interfaccia util-s34 (utils34.cpy). Richiamato con call + cancel a ogni conto |
Le restanti routine (stato file stato, apertura open1, messaggistica winmsg, errori grave, schermo scree) sono incluse via copybook.
Configurazioni (COGTABEL / RNEWCONF)¶
| Tabella | Arg | Key | Campo | Uso |
|---|---|---|---|---|
| #70 | RICE | DEFINE | euta-c008-pco (cnfgrice.cpy) |
Abilitazione ricerca piano dei conti: se N la ricostruzione e' bloccata |
| #70 | RICPCO | - | (letta da COGS34) | Parametri di spezzatura descrizione in parole di ricerca conti |
Note¶
- Il record di indice usa lo schema a paginazione (record base con progressivo 0 + pagine successive di 40 elementi), che consente a una parola di puntare a piu' di 40 conti.
- Il paragrafo
search-file(congo to ... depending on w-ind-fl) e' presente ma di fatto marginale: il ramo di apertura diCOGSTPCOe' commentato (*ste); l'apertura effettiva del file di destinazione avviene ina020. - Etichetta di menu e funzione reale coincidono.