Vai al contenuto

COGV08 - Stampa rubrica / listino

Sorgente: cbl/cogv08.cbl | Tipo: Programma interattivo GUI di stampa | Program-ID: COGV08

Menu:

  • Magazzino > Archivi & Tabelle > Stampe > Listini > Rubrica
  • Contanti > Listini > Stampa

Scopo

Stampa il listino di vendita delle merci (nel commento di testata del sorgente: "Stampa rubrica listino"). L'operatore imposta un cliente, un intervallo di merci, un ordinamento e fino a cinque colonne di listino da confrontare affiancate (tipo listino standard o listino cliente, con fascia), e opzionalmente colonne aggiuntive: P.U.A., giacenza, locazione, provvigione, prezzo medio d'acquisto.

Il programma estrae le merci selezionate in un archivio di transito indicizzato (COGTRANS) con piu' chiavi (per descrizione, raggruppamento, codice avanzato, nome raggruppamento), quindi produce la stampa vera e propria in ordine scelto, con testate, rotture di gruppo/sottogruppo/reparto e raggruppamento. In alternativa alla stampa puo' creare un file dati (LIS<cliente>.TXT) e un file di export (listout2.txt) con i prezzi per articolo.


Struttura del programma

Flusso principale

  1. Inizializzazione (inizio): abilitazione, apertura file, lettura azienda, lettura configurazione RNEWCONF (x99-confi), costruzione nome file di transito #$COGV08.<operatore>, apertura COGTRANS, abilitazione tasti F1 dettaglio stampa, F3 conferma, F8 aiuto, F9 ricerca avanzata.
  2. Reset / default (a4): inizializza tab-maschera con i valori di default (ordinamento, data odierna, stampa completa "S", rottura per gruppo, considera giacenza "T", ecc.).
  3. Accept parametri (paragrafi a-tm-*): cliente (COGS65W), ordine stampa, ordine reparto, merce da/a (COGS68W), magazzino, fino a 5 reparti, data validita' (COGS52), 3 raggruppamenti (win W29), rottura, listino particolare, giacenza, spaziatura, stampa completa, descrizione, filtro CMC, condizione cliente, classe, i 5 riferimenti listino (tipo + rif + cliente + fascia, aiuto via WIN096), i flag colonne P.U.A./giacenza/locazione/provvigione, agente (COGE35). Navigazione F2/F3/mouse (x-test-mouse).
  4. Conferma (a-richiesta-conferma, x-imposta-conferma): rivalida tutti i campi.
  5. Scelta output (a221): per la personalizzazione "BO" chiede via DIALOGS se stampare (F1) o creare file dati (F5); altrimenti stampa diretta. Determina le colonne attive (fill-tm-dat-con-stampa-anche, a1-set-page).
  6. Dialogo stampante (a222): configura la stampa via COGS54.
  7. Estrazione (b-elabora): scandisce COGMERCI/COGRACMC secondo l'ordine, applica i filtri (reparto, CMC, listino significativo, classe, giacenza, raggruppamenti) e scrive i record selezionati in COGTRANS.
  8. Stampa (c-stampa): rilegge COGTRANS nell'ordine scelto, gestisce testate e rotture, ricerca i prezzi di listino (COGLISNW o COGS01 per condizioni cliente), giacenza (COGSLMAG), prezzo acquisto (COGL61), locazione (COGLGMER), e stampa le righe; in parallelo scrive listout2.txt.
  9. Chiusura (fine): chiude e cancella COGTRANS, chiude COGS01/COGS50.

Estrazione (b-elabora)

  • ordine: D = per descrizione (COGMERCI k1 descrizione), A = per codice avanzato (COGRACMC), C/default = per codice merce (COGMERCI);
  • filtri: listino particolare/standard (tm-tutti), merce di classe "C" esclusa, filtro reparti (map-reparto), filtro CMC per cliente (COGMERCL), filtro listino significativo (per ognuno dei 5 riferimenti tramite COGS01, escludendo merci senza prezzo salvo zero logico), filtro classe merce, filtro giacenza (map-fl-gia), filtro stampa (mer-stampa), selezione per raggruppamento (con codici speciali ?? = solo senza raggruppamento, !! = qualsiasi raggruppamento);
  • scrive in COGTRANS merce, descrizione, raggruppamento, reparto, codice avanzato (COGRACMC), nome raggruppamento (COGTABEL tipo 17).

Stampa (c-stampa)

  • start su COGTRANS per la chiave coerente con l'ordine (.chia1...chia5);
  • per ogni merce: testata di pagina (c2-testa), rottura raggruppamento/reparto/gruppo/sottogruppo;
  • prezzi (c-30): per ogni colonna listino, se e' richiesta la condizione cliente usa COGS01, altrimenti legge da COGLISNW (retro-scansione fino alla data), con gestione dello zero logico;
  • giacenza (c-40): somma i saldi COGSLMAG per la merce (filtrata per magazzino);
  • colonne extra (c11-fill): P.U.A., giacenza, locazione (COGLGMER), provvigione, prezzo medio d'acquisto (COGL61, cerca-prmed), tutte editate via COGU10W;
  • scrive la riga (c1-wr-riga) tramite COGS50 per la formattazione del codice/descrizione merce; se personalizzazione "BO" usa layout dedicato e stampa i componenti di distinta base (COGDBASE).

Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema
COGMERCI mer-chia / .k02 desc Anagrafica merci
COGMERAP map-chia Merci - dati aggiuntivi (reparto, raggruppamenti, flag giacenza, descrizioni)
COGRACMC .k02 (merce) / cod. avanzato Codici alternativi / avanzati merce
COGMERCL mcl-merce+mcl-cli Merce - cliente (filtro CMC)
COGLISNW lnw-merce+lnw-tip-lis+lnw-rif+lnw-fascia+lnw-data Listini di vendita
COGSLMAG msal-chia1 Saldi di magazzino (giacenza)
COGLGMER lgm-chia1 Locazioni merce (box/corsia/colonna/piano)
COGDBASE dba-merce Distinta base (componenti, layout "BO")
COGTABEL tipo 17 (raggr.), tipo 85 (reparti) Tabelle generiche (descrizioni raggruppamenti e reparti)
COGGEANA ana-tipo+ana-cod Anagrafica clienti / agenti
COGTRANS primaria trs-chia1; sec. .k02 desc, .k03 raggr., .k04 cod.avanzato, .k05 nome raggr. Transito temporaneo #$COGV08.<operatore> (merce, descrizione, cod. avanzato, raggruppamento, nome raggruppamento)
FILOUT line sequential File dati LIS<cliente>.TXT (output "crea file")
LISTOUT1 line sequential File anagrafica cliente (listout1.txt)
LISTOUT2 line sequential File export prezzi articolo (listout2.txt)
FLSTA - Gestione file di stampa

COPY incluse

Working-Storage

cogv08.wrk, wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy, utilncnf.cpy, utils21.cpy, utils50.cpy, utils52.cpy, utils65.cpy, utils68.cpy, utilu10.cpy, utilu16.cpy, utilw06.cpy, utile35.cpy, utilw36.cpy, utilw80.cpy, wdisp001.cpy, wdisp002.cpy, utildlg.cpy, utilw29.cpy, UTILW96.CPY, cogazien.cpy, utils54.cpy, utilcogl61.cpy

Linkage

wcont.cpy, util021.cpy, utils01.cpy, wcont1.cpy

Procedure Division

cogv08.decla, cogv08-01.scr (screen), stato.cpy, stato1.cpy, winmsg.cpy, opengen.cpy, mmmask.cpy, grave.cpy, sendw06.cpy, sendw36.cpy, sendw80.cpy, sendw29.cpy, cogmerci.k02, cogracmc.k02, cogv08.prc


CALL a sottoprogrammi

Programma Scopo
COGS65W Ricerca/help anagrafica cliente e agente
COGS68W Ricerca/help merce (da/a)
COGS50 Formattazione codice/descrizione merce in stampa (s50-fun = S/I)
COGS54 Configurazione e gestione stampa (dialogo stampante, after-print)
COGS01 Calcolo prezzo netto listino con condizioni particolari cliente
COGL61 Calcolo prezzo medio d'acquisto (colonna P.M.A.)
COGU10W Edita, arrotonda e converte importi/prezzi in divisa
COGU16W Popolamento combo ordinamento merce
COGE35 Help/selezione agente
COG021 Dettaglio stampa (F1 su cliente)
win096 / WIN096 Help riferimento listino
DIALOGS Dialogo stampa/crea-file (personalizzazione "BO")
RNEWCONF Lettura configurazioni

Ulteriori help su reparto/raggruppamento sono richiamati tramite le copybook sendw36, sendw80, sendw29, sendw06.


Configurazioni RNEWCONF

Lette in x99-confi (pacchetto "C", file ODONTO.CNF, 1 chiave):

Chiave Variabile Descrizione
GESTIONE-REPARTI tm-cfg-fl-rep Abilita la gestione/filtro per reparto (colonne reparto in maschera e rotture di reparto in stampa)

Note tecniche

  • Cinque colonne listino affiancate: la struttura tm-dati-rif (occurs 5) contiene tipo listino ("L" standard, "C" cliente), riferimento, cliente, fascia; a1-set-page / a2-fill-ts3 calcolano le posizioni e le intestazioni delle colonne in stampa.
  • Ordinamento configurabile via chiavi COGTRANS: la stampa parte da una delle 5 chiavi del transito (codice, descrizione, raggruppamento, codice avanzato, nome raggruppamento) secondo tm-ord.
  • Filtro "listino significativo" (blocco marcato 140607): scarta le merci prive di prezzo su tutti i 5 riferimenti richiesti, salvo lo zero logico (s01-o-fl-zero); per la personalizzazione "E4" applica una regola sull'anno del listino.
  • Personalizzazione "BO": layout di stampa dedicato (rigel-broc, testa3-bo), intestazione con anagrafica cliente e stampa dei componenti di distinta base; inoltre attiva il dialogo stampa/crea-file.
  • Doppio output: oltre alla stampa (crea-stampa) puo' generare il file dati LIS<cliente>.TXT (crea-file, FILOUT) e sempre il file export listout2.txt (prezzo interno / prezzo cliente per articolo) con intestazione <DD> e righe <D>.
  • Dimensione sorgente: circa 5.917 righe (cbl/cogv08.cbl).