COGO85 -- Stampa Riepilogo Ordini per Merce¶
Sorgente: cbl/cogo85.cbl | Program-ID: COGO85 | Tipo: Stampa
Menu: Ordini > Clienti > Stampe > Riepilogo x Merce, Ordini > Fornitori > Stampe > Riepilogo x Merce
Scopo¶
Stampa riepilogativa degli ordini raggruppata per prodotto (merce). Per ogni articolo elenca gli ordini che lo contengono, con quantita' ordinate, consegnate e residue. L'elaborazione avviene in due fasi: prima la creazione di un file di transito con i dati aggregati, poi la lettura del transito per la stampa ordinata.
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione |
|---|---|---|---|
| FEURTAB | Tabella sistema | Input | Tabella di sistema |
| COGTESOR | Testata ordini | I-O | Testata ordini (lettura + allineamento agente) |
| COGRIGOR | Righe ordini | Input | Righe degli ordini |
| COGGEANA | Anagrafica | Input | Anagrafica clienti/fornitori (per allineamento agente e stampa nome) |
| COGMERCI | Anagrafica merci | Input | Descrizioni e unita' di misura prodotti |
| COGRACMC | Raccolta merci | Input | Classificazioni alternative merci (per ordinamento per classificazione) |
| COGTABEL | Tabella generica | Input | Tabelle di decodifica |
| COGTRANS | File di transito | I-O (temp) | File temporaneo per aggregazione dati, due chiavi: chia1 (merce+ordine), chia2 (ordinamento) |
| FLSTA | Stampa | Output | File di stampa |
Copybook utilizzate¶
| Copybook | Descrizione |
|---|---|
| cogo85.select | SELECT dei file |
| cogo85.fd | File Description |
| cogo85.wrk | Working storage generata |
| cogo85.prc | Procedure generate da Screens |
| cogo85-01.scr | Screen section |
| cogo85.decla | Declaratives |
| utils22.cpy | Interfaccia COGS22 |
| utils50.cpy | Interfaccia COGS50 (descrizione merce per stampa) |
| utils52.cpy | Interfaccia COGS52 (accept campi) |
| utils54.cpy | Interfaccia COGS54 (gestione stampa) |
| utils68.cpy | Interfaccia COGS68W (ricerca merci) |
| utilu16.cpy | Interfaccia COGU16W (gestione ordinamento/selezione merci) |
| cogtrans.k01 | Chiave primaria transito |
| cogtrans.k02 | Chiave secondaria transito (ordinamento) |
| cogracmc.k02 | Chiave secondaria raccolta merci commesse |
| printer.cpy | Routine di stampa |
| cogazien.cpy | Dati azienda |
Struttura del programma¶
Variabili principali¶
tab-maschera(tm-*): parametri di selezione (ordinamento, range merci, tipo ordini, anno, tipo stampa, selezione ordine).w-tipo: "C" per clienti, "F" per fornitori (dawo-parametro).n-release: contatore record scritti nel transito.k-chr-stampa: 132 colonne (formato largo).old-art: ultimo articolo stampato (per rottura di chiave).tot-ord,tot-con,tot-res,tot-colli: totalizzatori per articolo.
Flusso principale¶
- Inizializzazione (
apri): determina tipo (C/F) da parametro. Crea file di transito temporaneo (#$COGO85.<operatore>). Allinea agente sugli ordini clienti senza agente (a4, ciclo su COGTESOR). - Selezione parametri (
a-tm-ord...a-tm-sel-ord): accept ordinamento stampa, range merci (da/a con ricerca S68), tipo ordini (aperti/chiusi/tutti), anno, tipo stampa, selezione tipo ordine. - Conferma (
a-richiesta-conferma): valida tutti i campi, inizializza COGS54 per la stampa.
Fase 1 -- Creazione transito (ela-00 ... ela-10-wr)¶
- Scansione ordini (
ela-00-loop): scorre COGTESOR per l'anno e tipo selezionato. Filtra per tipo ordine (aperti/chiusi), e per ordini clienti filtra anche per sottotipo (standard, preventivi, riparazioni). - Scansione righe (
ela-10-loop): per ogni ordine valido, scorre COGRIGOR. Filtra per range merci (codice o classificazione). Setm-tip-sta = "NO"(solo con residuo), esclude righe completamente evase. - Aggregazione (
ela-10-wr): per ogni riga valida, cerca un record di transito esistente per la stessa merce+ordine. Se esiste, somma le quantita'; altrimenti crea un nuovo record. L'ordinamento secondario (trs-chia2) viene impostato dalla classificazione merce (se ordinamento per classificazione) o dalla chiave primaria.
Fase 2 -- Stampa (st-00 ... st-99)¶
- Lettura transito (
st-10-loop): legge il file di transito ordinato pertrs-chia2. Per ogni cambio di articolo stampa i totali del precedente e l'intestazione del nuovo. - Riga dettaglio : per ogni record, legge il nome cliente/fornitore da COGGEANA, stampa data, ordine, stato (A/C), unita' di misura, quantita' ordinate/consegnate/residue ed eventualmente colli.
- Totali articolo (
wr-tot): stampa i totali per articolo. - Descrizione articolo (
wr-art): usa COGS50 per ottenere la descrizione formattata del prodotto.
Chiamate esterne¶
| Programma | Modalita' | Scopo |
|---|---|---|
| COGS54 | CALL | Gestione stampa (inizializzazione e chiusura) |
| COGS50 | CALL | Descrizione merce formattata per stampa |
| COGU16W | CALL | Gestione ordinamento e selezione range merci |
| COGS68W | CALL (via copy) | Ricerca merci con interfaccia grafica |
| COGS52 | CALL (via copy) | Accept campi con validazione |
Note¶
- Il file di transito e' temporaneo (
#$COGO85.<operatore>) e viene eliminato alla chiusura del programma. - All'avvio, il programma corregge automaticamente gli ordini clienti senza agente assegnato, copiando l'agente dall'anagrafica del cliente (ciclo in
a4su COGTESOR con REWRITE). - La selezione tipo ordine (standard/preventivi/riparazioni) e' disponibile solo per ordini clienti; per fornitori viene saltata.
- La gestione dei colli nella stampa e' condizionata dalla configurazione aziendale (
az-imballi = "SI"). - Formato stampa: 132 colonne.