ASN039 - Stampa Clienti x Tipologia¶
Sorgente: cbl/asn039.cbl | Program-ID: ASN039 | Tipo: Stampa (estrazione + report a 132 col)
Menu: Assist 2.0 > Archivi > Stampe > Clienti x Tipologia
Scopo¶
Estrae i clienti dell'anagrafica filtrati per tipologia nominativo, zona, presenza/assenza di chiamate e (opzionale) presenza di interventi su una specifica prestazione. Produce una stampa ordinata per zona e ragione sociale in due possibili livelli di dettaglio: Ridotto (solo anagrafica) o Dettaglio (anagrafica, dati bancari, dati fiscali, dati pagamento).
File e tabelle¶
| File/Tabella | Tipo | Modalita' | Descrizione | Chiave |
|---|---|---|---|---|
| FEURTAB | ISAM | Input | Parametri generali azienda | std |
| COGGEANA | ISAM | Input | Anagrafica nominativi (clienti, tipo "C") | ana-tipo+ana-cod; chia2 = nome |
| COGAPPOG | ISAM | Input | Dati appoggio anagrafica (tip-stt, tel/fax, abi/cab, c-corr) | app-tipo+app-cod |
| COGTABEL | ISAM | Input | Tabella generica: tipi 14 (pagamenti), 54 (stati), 84 (tipologie), 88 (zone) | euta-tipo + euta-cod |
| COGMERCI | ISAM | Input | Anagrafica merci/prestazioni (lookup descrizione) | mer-chia |
| COGSCONT | ISAM | Input | Sconti per anagrafica | scc-tip+scc-ana-tip+scc-ana-cod |
| ASNCHTES | ISAM | Input | Testate chiamate (verifica presenza chiamate per cliente) | chia3 = acht-cli-ass-tip+acht-cli-ass-cod |
| ASNINTES | ISAM | Input | Testate interventi (per filtro prestazione) | chia2 = acit-id-chiamata |
| ASNINDET | ISAM | Input | Dettagli interventi (merce/prestazione) | acid-id |
| COGTRANS | ISAM | I-O (random) | Archivio di transito personale per ordinamento zona+nome+cod | trs-chia1 |
| flsta | LINE | Output | File di stampa | - |
Chiavi secondarie: coggeana.k02, cogtrans.k01, asnchtes.k03, asnindet.k02, asnintes.k02.
Copybook utilizzate¶
| Copybook | Ruolo |
|---|---|
asn039.select, asn039.fd, asn039.wrk, asn039-01.scr, asn039.prc, asn039.decla |
Screen Designer |
cogfiles.cpy, flsta.cpy |
Layout FEURTAB / file stampa |
wgrave, wnscr, wopenf, wstato, cogazien |
Working storage standard |
utilf01, utilf10, utils54, utils68, utilu03, utilu22 |
Utility (lookup zone, tipologie, dispositivo stampa, sportelli bancari, pagamenti) |
sendu22.cpy |
Routine lookup tipi pagamento |
Logica di elaborazione¶
apri: open files, costruzione path del file di transito personale (#$ASN039.<wo-oper>inext-tmp-dir); il file viene aperto in OUTPUT con check sustatoper impedire l'avvio simultaneo da parte dello stesso operatore, poi riaperto in I-O.- Sezione accept (con navigazione F2/F3):
a-tm-tip-stt: codice tipologia (F8 →COGF10)a-tm-solo-spazio: flag "solo tipologia vuota"a-tm-presenza: presenza/assenza chiamatea-tm-merce: prestazione (vias68)a-tm-zona: zona (F8 →COGF01)a-tm-tip: tipo stampa Ridotta/Dettaglioa-richiesta-conferma: validazione finale, scelta dispositivo di stampa viaCOGS54.x1-creo-sort: scanCOGGEANAper tipo "C". Per ogni cliente applica i filtri:- tipologia (in
app-tip-sttda COGAPPOG) - solo-spazio
- zona (
ana-zona) - presenza chiamate (
st-asnchtes-notmin-chia3) - prestazione: se richiesta, attraversa ASNCHTES -> ASNINTES (chia2) -> ASNINDET cercando
acid-merce = tm-merce. Per i clienti che passano tutti i filtri scrive il record inCOGTRANS(chiave: zona + nome + codice) per ordinarli. stampa: scan ordinato diCOGTRANS, per ogni recordrd-coggeana+rd-cogappog, lookup banca/sportello viaCOGU03, lookup descrizione pagamento viaCOGTABELtipo 14, lookup sconti viaCOGSCONT, lookup tipo pagamento viaCOGU22. Produce righer1(anagrafica), e in caso di dettaglio ancher2(banca/pagamento) er3(fiscali/sconti).fine-sta: chiusura stampa conCOGS54, messaggio "non ho trovato nulla" se nessuna riga.z-chiudi: cancellazione file di transito (delete file cogtrans).
Programmi richiamati: COGF01, COGF10, COGS54, COGU03, COGU22.
Linkage¶
Solo stringhe. Programma standalone non invocato in modalita' selezione.
Note¶
- Lunghezza riga di stampa:
k-chr-stampa = 132. - File di transito personale per operatore: previene corse multiple dello stesso operatore (controllo
stato not = "00"su open OUTPUT). - L'ordinamento avviene tramite COGTRANS (chiave zona + nome + cod): non si appoggia a SORT esterno.
- Tipi COGTABEL usati: 14 (pagamenti), 54 (stati esteri), 84 (tipologie nominativi, prefisso "C"), 88 (zone).
- Per il filtro prestazione, la presenza di anche un solo intervento con
acid-merce = tm-mercesu una chiamata del cliente fa includere il cliente.