COGG23 - Esporta Dati Contratti x MS Excel¶
Sorgente: cbl/cogg23.cbl | Program-ID: COGG23 | Tipo: Esportazione
Menu: Vendite > Mediatori > Esporta Dati x MS Excel
Scopo¶
Esporta i dati di un contratto di vendita su file di testo (EXPG23.TXT) importabile in Excel. Il file contiene: dati ordine, anagrafica venditore e committente, e righe di consegna con prezzi in valuta estera. Vengono esportate solo le righe con currency diversa da "L" (Lire) e "E" (Euro).
Struttura della maschera¶
Maschera a caratteri inline (mm-1, 7 righe x 80 colonne). Campi: anno ordine, numero ordine, codice venditore (con descrizione), codice committente (con descrizione). Se chiamato con parametri in linkage (i-tip valorizzato), i campi ordine vengono precompilati.
Logica di elaborazione¶
Flusso principale¶
- Inizializzazione (
a000): costruisce path file export (ext-tmp-dir + EXPG23.TXT),open-files,rd-azi, display maschera. Se richiamato da altra funzione (wko-tip valorizzato), salta direttamente al caricamento ordine. - Accept ordine (
a20-ann,a20-num): accept anno (tramiteCOGS52) e numero ordine. - Lettura ordine (
a20-go): legge COGTESOR (rd-cogtesor). Se non trovato, messaggio errore. - Scrittura export:
- Apre
cogexportin output. - Scrive record "O" con anno+numero ordine.
- Scrive record "V" con codice+nome venditore (da COGGEANA).
- Scrive record "C" con codice+nome committente (da COGGEANA).
- Ciclo sulle consegne: START su COGCONOR per chiave ordine, READ NEXT. Per ogni consegna legge COGRIGOR per ottenere prezzo e currency. Se currency diversa da spaces, "L", "E": scrive record "R" con data, quantita', prezzo, valuta.
- Fine: se ctr-wr = 0 (nessun dato esportato), cancella il file. Altrimenti messaggio con conteggio righe.
Formato file export¶
| Flag | Contenuto |
|---|---|
| O | Anno (4) + Numero ordine (7) |
| V | Codice venditore (5) + Nome (40) |
| C | Codice committente (5) + Nome (40) |
| R | Data (8) + Quantita' (7,999) + Prezzo (12,999999) + Valuta (2) |
Sottoprogrammi chiamati¶
| Programma | Scopo |
|---|---|
| COGS52 | Accept campo anno con validazione |
File utilizzati¶
| File | Copybook | Accesso | Utilizzo |
|---|---|---|---|
| FEURTAB | cogfiles.cpy | Random | Tabella file generali |
| COGMERCI | cogmerci.cpy | External | Anagrafica merci (non usata direttamente nel flusso principale) |
| COGGEANA | coggeana.cpy | Input | Anagrafica clienti/fornitori |
| COGTESOR | cogtesor.cpy | Input | Testata ordini |
| COGRIGOR | cogrigor.cpy | Input | Righe ordine (prezzo, valuta) |
| COGCONOR | cogconor.cpy | Input | Consegne ordine |
| COGEXPORT | - | Output, Line Sequential | File di testo esportato (EXPG23.TXT) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| feurtab.fd, cogmerci.fd, coggeana.fd, cogtesor.fd, cogrigor.fd, cogconor.fd | SELECT dei file |
| cogmerci.cpy, coggeana.cpy, cogtesor.cpy, cogrigor.cpy, cogconor.cpy | Record layout |
| wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy | Variabili standard |
| cogazien.cpy | Dati azienda |
| utilm96.cpy | Utility M96 |
| utils17l.cpy, utils25.cpy, utils26.cpy, utils52.cpy, utils68.cpy | Interfacce subroutine |
| utilw28.cpy | Utility W28 |
| wcont.cpy, wcont1.cpy, utils16.cpy | Linkage standard |
| stato.cpy, stato1.cpy, winmsg.cpy, grave.cpy, open1.cpy, mmmask.cpy | Procedure standard |
| cogmerci.k01, coggeana.k01, cogtesor.k01, cogrigor.k01, cogrigor.k02, cogconor.k01, cogconor.k02 | Chiavi tabelle |
Linkage¶
Il programma riceve parametri tramite redefines di user-area:
util-inp: tipo (1), anno (4), numero (7), progressivo (1) dell'ordine da esportare.util-o16: stessa struttura, per output.util-m97: area per parametri merce e lotto.
Se i-tip e' valorizzato, il programma salta l'accept dell'ordine e usa i dati dalla linkage.
Note tecniche¶
- Il file export e' di tipo LINE SEQUENTIAL, leggibile da Excel come testo delimitato.
- Il prezzo viene esportato con 6 decimali (
pic 9(12),999999), a differenza del vecchio formato a 2 decimali (commentato nel sorgente). - La scansione delle consegne usa la chiave secondaria di COGCONOR (k02) per filtrare per ordine.