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) |