COGP75 — Stampa Sconti per Cliente¶
Sorgente: cbl/cogp75.cbl | Tipo: interattivo a maschera + stampa | Program-ID: cogp75
Menu: Contabilita' > Archivi & Tabelle > Stampe > Clienti > Sconti per Cliente ; Magazzino > Archivi & Tabelle > Stampe > Sconti > Sconti per Cliente
Scopo¶
Produce la stampa degli sconti riservati ai clienti. Per ogni cliente selezionato riporta il riferimento listino e gli sconti generici a livello anagrafica (ts3-sco1/ts3-sco2 dal record sconto con scc-merce = k-merce-null) e, sotto, gli sconti di dettaglio per singola merce/gruppo merceologico (percentuali scc-sco-1/scc-sco-2 e prezzo finito scc-pre editato in divisa tramite COGU10).
La maschera raccoglie i parametri di selezione: ordinamento (per Codice o per Alfabetico/descrizione, campo tm-ord), cliente di partenza e di arrivo (tm-da-cli/tm-a-cli, con relative descrizioni risolte da COGGEANA) e il flag tm-sconti-zero che decide se stampare anche le righe con sconti tutti a zero.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGGEANA | coggeana.k02 (chiave alfabetica) |
Anagrafica clienti (k-ana-tipo-cli): ciclo di stampa e validazione codici. Letta per codice (st-coggeana-notmin) o per nome (st-coggeana-notmin-chia1) in base a tm-ord |
| COGSCONT | cogscont.k01 |
Sconti cliente. Scansione per anagrafica (scc-tip="A", scc-ana-tip, scc-ana-cod); scarta i cancellati logici (scc-val="C") |
| flsta | flsta.fd / flsta.cpy |
File di stampa (write riga) |
Flusso principale¶
apri— inizializzazione programma,open-files, caricamento lingua e azienda; attiva i tasti funzione F8 aiuto, F3 conferma, F9 ricerca avanzata; costruisce i controlli della maschera (z-costruisci-controlli).a4— resettab-maschera, defaulttm-ord="A"etm-sconti-zero="S".a-tm-ord/a-tm-da-cli/a-tm-a-cli/a-tm-sconti-zero— accept in sequenza dei parametri. Cliente di partenza e arrivo gestiti dalla subroutine di ricerca COGS65W (z-s65-tm-da-cli,z-s65-tm-a-cli); combo di ordinamento e flag sconti-zero via COGS60. Controlli di coerenza inx-controlla-tm-da-cli/x-controlla-tm-a-cliecontrolla-ordine.a-riga-fine— verifica requisiti (x-imposta-conferma), poi chiama COGS54 per la scelta stampante/anteprima e avvia la stampa (c-stampa).c-stampa/c-10-loop— scandisce COGGEANA nel range richiesto; per ogni cliente eseguec2-src-sco.c2-src-sco/c2-10-loop— legge gli sconti del cliente su COGSCONT, applica i filtri (cancellati, sconti a zero) e stampa viac1-riga.c1-riga— stampa testata pagina (x1-testa), dati cliente (daticli), sconti generici (datiscon) o sconti per merce (datimer).fine/z-chiudi— chiusura file, chiusura finestra,exit program.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGS54 | Selezione periferica di stampa / anteprima, s54-after-print a fine stampa |
| COGS65W | Ricerca e validazione anagrafica cliente (codice + descrizione) sui campi da/a |
| COGS68W | Ricerca/edit gruppo merceologico per la riga sconti-merce (z-s68-tmr-merce) |
| COGU10 | Editing del prezzo finito scc-pre in divisa (z-u10) |
| COGS60 | Combo-box di ordinamento e flag sconti-zero (gestori z-s60-* da .prc) |
Note¶
- Il codice usa estesamente
PERFORM ... THRU(es.c-stampa thru ex-c,c2-src-sco thru ex-c2,c1-riga thru ex-criga,controlla-ordine thru ex-controlla-ordine) e numerosiGO TOper la navigazione tra i paragrafi di accept e per le rotture di ciclo: pattern legacy tipico dei programmi di stampa a maschera, da non replicare nei nuovi sviluppi. - Le righe marcate
220222documentano l'aggiunta del flagtm-sconti-zero(stampa/esclusione dei clienti con sconti a zero) e del relativo controllo/handler mousea-tm-sconti-zero. - Il salto pagina e la ripetizione della testata cliente sono gestiti confrontando
ctr-rigcons54-stm-lin - 8(numero righe utili di pagina restituito da COGS54). - Le righe sconto-merce distinguono la prima occorrenza (stampa
testa4di colonna) tramite il flag localefl.