COGP12 - Listino per Riordino (stampa alimentari con barcode)
Panoramica
Programma di stampa batch con maschera GUI, che produce un listino articoli su
stampante laser KYOCERA (linguaggio PRESCRIBE). Per ogni prodotto nell'intervallo
selezionato stampa descrizione, codice interno, barcode EAN, quantita' per
confezione, prezzo di acquisto (prezzo medio da COGL61), prezzo di vendita (dal
listino "L") e il progressivo acquistato nell'anno. E' pensato come supporto al
riordino. Viene avviato dal menu ricevendo il gruppo linkage stringhe.
| Menu |
Percorso |
| Magazzino |
Archivi & Tabelle > Stampe > Listini > Listino x Riordino |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
feurtab |
Indexed (via cogfiles.cpy) |
Contenitore delle tabelle COGE lette |
COGMERCI |
Indexed |
Anagrafica articoli/merci: scansione principale nell'intervallo tm-da-merce..tm-a-merce (chiave mer-chia) |
COGTESLS |
Indexed |
Testata listini: recupero divisa del listino "L" (tls-div) |
COGLISNW |
Indexed |
Righe listino (nuovo formato): prezzo di vendita valido alla data (lnw-pre) per listino "L", fascia 1, rif 1 |
COGMOMAG |
Indexed |
Movimenti di magazzino: somma del progressivo acquistato nell'anno (mag-entrusc = 'E', mag-tipob3 = 'C'), chiave mag-chia3a |
flsta |
Stampa |
File di stampa (record riga) |
Copybook principali
| Copybook |
Descrizione |
cogfiles.cpy |
Layout record delle tabelle in feurtab |
cogp12.select / cogp12.fd / cogp12.wrk / cogp12.prc / cogp12.decla / cogp12-01.scr |
File generati da Screens per il programma |
k-u10.cpy |
Costanti per la subroutine di editing importi COGU10 |
cogazien.cpy |
Record azienda (verifica az-laser, az-int, az-main-mag) |
utils54.cpy |
Area parametri subroutine di stampa/conferma (S54) |
utilu10.cpy |
Area parametri subroutine di editing valuta (U10) |
utils68.cpy |
Area parametri ricerca merci (S68) |
utilcogl61.cpy |
Area parametri per COGL61 (prezzo medio) |
getdcont.cpy |
Paragrafo get-divisa-conto (divisa di conto tramite COGU10W) |
wstato / wopenf / wgrave / wnscr |
Copybook standard di stato/apertura/errori/schermo |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
COGS54 |
Selezione stampante / conferma stampa (emulazione PRESCRIBE, 132 col) e chiusura post-stampa |
COGU10W |
Editing/formattazione importi in valuta (prezzo vendita e prezzo acquisto) e divisa di conto |
COGS68W |
Ricerca generalizzata articoli/merci per i campi "Da Prodotto" e "A Prodotto" |
COGL61 |
Utility che restituisce prezzo medio acquisto dell'articolo alla data (cerca-prmed) |
Note su chiamate indirette
get-divisa-conto (da getdcont.cpy) chiama a sua volta cogu10w.
Logica di elaborazione
apri: init programma, ctr-abil, lingua, rd-azi, open-files. Verifica
az-laser = 'L': se manca la stampante laser KYOCERA mostra un messaggio e va a
fine. Prepara i controlli di ricerca merci (S68) e la data di sistema; recupera
la divisa di conto (get-divisa-conto).
a4 / a-tm-da-merce / a-tm-a-merce: accept dei due prodotti estremi con
ricerca S68, gestione mouse (x-test-mouse) ed eccezioni; controlli in
x-controlla-tm-da-merce/x-controlla-tm-a-merce (verifica esistenza su
COGMERCI, gestione valori nulli "dall'inizio"/"alla fine", coerenza da<=a).
a-tm-conf: alla conferma (F3) esegue x-imposta-conferma; a222 chiama
COGS54 per la scelta stampante (emulazione PRESCRIBE).
st-10: inizio elaborazione. Imposta la testata con la data odierna, gestisce
l'estremo finale ZZ/ZZ/99999, fa start su COGMERCI.
st-10-loop: scorre COGMERCI; per ogni articolo entro l'estremo finale:
st-30-loop: cerca sul listino COGLISNW (tipo "L", fascia 1, rif 1) il
prezzo di vendita valido alla data (lnw-pre con lnw-data not > datasis);
la divisa del listino e' letta da COGTESLS.
st-40: formatta il prezzo di vendita con COGU10W.
st-50-loop: somma il progressivo acquistato nell'anno scorrendo COGMOMAG
(solo entrate E con tipo bolla C dell'anno corrente).
st-60: gestisce salto pagina (testa), stampa riga articolo, barcode
(wr-barc con mer-ean), prezzo di acquisto tramite COGL61/cerca-prmed e
COGU10W, quantita' confezione; disegna box e linee di prefincato.
st-80-end: chiude il flusso di stampa (RES; EXIT;), messaggio di fine.
z-chiudi / fine: COGS54 con s54-after-print, z-close-files, chiusura
finestra, z-99-exit-program, cancel "COGL61", exit program.
Note tecniche
- Stampa specifica per stampante laser KYOCERA: le righe sono comandi PRESCRIBE
(
TEXT, BARC, BOX, MAP/DAP, FONT, SCPI, PAGE, RES) scritti su
riga tramite le routine wr-riga-n (testo normale), wr-riga-e (testo a fine
riga) e wr-barc (barcode EAN mer-ean). Il programma esce subito se az-laser
non e' 'L'.
- Il commento sorgente indica "Stampa listino alimentari": il programma e' una
variante alimentare/retail (barcode, prezzo per confezione, progressivo
acquistato); l'etichetta di menu "Listino x Riordino" ne descrive la finalita'
operativa. Nessuna discrepanza sostanziale.
- Il prezzo di vendita e' preso dal listino nuovo
COGLISNW (tipo "L", fascia 1,
rif 1) valido alla data; il prezzo di acquisto e' il prezzo medio restituito da
COGL61 (cerca-prmed, cogl61-in-prezacq = 'S').
- Salto pagina gestito con contatore
ctr-rig (soglia 26 righe corpo);
reinizializzazione stampante quando ctr-rig > 100 (!R! RES).
- Righe di dettaglio numeriche editate in valuta di conto tramite
COGU10W.