Vai al contenuto

COGO81 - Stampa Ordinato per Reparto / Cliente

Sorgente: cbl/cogo81.cbl | Program-ID: COGO81 | Tipo: Programma interattivo con stampa

Menu: Ordini > Clienti > Stampe


Scopo

Stampa l'ordinato (righe ordini clienti aperti) per reparto di produzione e/o per cliente, su un intervallo di date di consegna o di numeri d'ordine. Supporta due modalita' di ordinamento della stampa: per reparto-cliente (default) o per cliente-reparto con distinzione turno giorno/notte. Utilizza un file di transito temporaneo (COGTRANS) per separare la fase di raccolta dati dalla fase di stampa.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
COGCONOR ISAM Input Righe ordini clienti; lettura tramite k02 (per data consegna) e k04 (per numero ordine)
COGMERCI ISAM Input Anagrafica merci; lettura k03 per descrizione e unita' di misura
COGTABEL ISAM Input Tabella codifiche; lettura tipo "AN" per descrizione articoli speciali
COGTRANS ISAM (temp.) Output / I-O File di transito temporaneo per ordinamento e stampa
FLSTA Seq. Output File di spool stampa
FEURTAB ISAM Input Tabella features/abilitazioni utente

Copybook utilizzate

Copybook Descrizione
cogo81.select Definizioni SELECT dei file
cogo81.fd FD dei file
cogo81.wrk Working storage specifica
cogo81.prc Procedure di I/O sui file
cogo81-01.scr Schermata principale (Screen Designer)
cogo81.decla Declaratives
flsta.fd, flsta.cpy FD e record del file di spool stampa
wcont.cpy, wcont1.cpy Linkage section standard
k-personal.cpy Codice personalizzazione azienda
wstato.cpy, wopenf.cpy, wgrave.cpy, wnscr.cpy Standard di programma
cogazien.cpy Dati azienda
utils50.cpy, utils52.cpy, utils54.cpy Utility selezione (radio, data, stampante)
utilw80.cpy Utility WIN080 (selezione reparto)
stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, mmmask.cpy, opengen.cpy Infrastruttura standard
printer.cpy Gestione stampante
cogfiles.cpy Record FEURTAB

Logica di elaborazione

Fase 1 - Raccolta dati (ela-00):

Apre COGTRANS in output (file temporaneo nel directory ext-tmp-dir, con nome #$COGO81.<oper>). In base al tipo di ricerca: - tm-ric = "D" (per data): scansiona COGCONOR tramite k02 (indice per reparto/zona/cliente/ordine/data) nell'intervallo di date impostato. Per ogni riga d'ordine trovata scrive un record in COGTRANS con la struttura di ordinamento (reparto, zona, cliente, ordine, articolo, quantita', note). - tm-ric = "O" (per ordine): scansiona COGCONOR tramite k04 (indice per numero ordine) nell'intervallo specificato.

La chiave di COGTRANS e' costruita in modo da garantire l'ordinamento per reparto-zona-cliente-ordine-articolo (stampa per reparto) oppure per reparto-g/n-cliente-ordine-articolo (stampa per turno giorno/notte).

Fase 2 - Selezione stampante: Chiama COGS54 per la selezione della destinazione di stampa (schermo, stampante, file).

Fase 3 - Stampa (st-00, st-10-loop): Apre COGTRANS in input e scansiona sequenzialmente. Gestisce le rotture di controllo: - s1-rottura-x-reparto: rottura per reparto con intestazione di pagina per cliente - s2-rottura-x-cliente-reparto: rottura per cliente-reparto in modalita' giorno/notte

Per ogni riga letta da COGTRANS: legge COGMERCI per descrizione e UM; per articoli speciali (tipo '2') legge COGTABEL tipo "AN" per la descrizione. Scrive la riga di stampa su FLSTA. Calcola i totali per reparto.

Al termine stampa il salto pagina e richiama COGS54 per la notifica di fine stampa (s54-after-print).

Selezione reparto (F8 sul campo reparto): chiama WIN080 con w80-tip = 85.

Chiamate a sottoprogrammi

Programma Utilizzo
COGS54 Selezione stampante e gestione output stampa
WIN080 Finestra di selezione reparto (F8 sul campo reparto)