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¶
- 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. - Reset / default (
a4): inizializzatab-mascheracon i valori di default (ordinamento, data odierna, stampa completa "S", rottura per gruppo, considera giacenza "T", ecc.). - 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). - Conferma (
a-richiesta-conferma,x-imposta-conferma): rivalida tutti i campi. - 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). - Dialogo stampante (
a222): configura la stampa via COGS54. - 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. - 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 scrivelistout2.txt. - 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-ts3calcolano 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 datiLIS<cliente>.TXT(crea-file, FILOUT) e sempre il file exportlistout2.txt(prezzo interno / prezzo cliente per articolo) con intestazione<DD>e righe<D>. - Dimensione sorgente: circa 5.917 righe (
cbl/cogv08.cbl).