Vai al contenuto

COGY07 - Vendite per Zona

Sorgente: cbl/cogy07.cbl | Program-ID: COGY07 | Tipo: Programma interattivo (estrazione con griglia + export Excel + stampa)

Menu: Statistiche > Vendite x Zona


Scopo

Estrae una statistica di vendita raggruppata per zona geografica o classificazione cliente, scelta dinamicamente dall'utente tramite tm-tip-rag (N = Nazione, R = Regione, P = Provincia, C = Tipologia cliente). I dati provengono direttamente da cogstati (alimentato da COGY12). Per ciascun cliente nelle statistiche il programma legge coggeana per ricavare provincia/nazione, decodifica regione tramite cogtabel tipo 26, e classifica per tipologia tramite cogappog. Visualizza la griglia su file di transito cogtrans con tre chiavi di ordinamento alternative.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
COGTRANS ISAM (temp.) Output / I-O File di transito; chiave primaria trs-chia1 (tipo + rag-cod + cliente + dati-mov), alternate keys trs-chia2 per nome, trs-chia3 per importo
COGSTATI ISAM Input Archivio statistiche di vendita (chiave per data chia3: stt-tip + stt-data)
COGGEANA ISAM Input Anagrafica clienti (province, nazione, classificazione)
COGAPPOG ISAM Input Tabella appoggio anagrafica (tipologia cliente in app-tip-stt)
COGTABEL ISAM Input Decodifica province/regioni (tipo 26), stati (tipo 54), categorie cliente (tipo 84)
TRAN-COGS96 ISAM (temp.) I-O Buffer agenti dell'operatore
FEURTAB ISAM Input Tabella features/abilitazioni utente

Copybook utilizzate

Copybook Descrizione
cogy07.select, cogy07.fd, cogy07.wrk SELECT, FD, working storage (Screens)
cogy07-01.scr, cogy07.tm, cogy07.prc, cogy07.decla Schermata, tab maschera, procedure I/O, declaratives
tran-cogs96.fd, tran-cogs96.cpy, tran-cogs96.k01 FD/record/chiave file agenti
cogtrans.k01, cogtrans.k02, cogtrans.k03 Chiavi file di transito (3 alternate keys)
cogstati.k03 Chiave secondaria cogstati per tip + data
k-u10.cpy Costanti utility valuta
wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, wgrid.cpy Working storage standard + griglia
cogazien.cpy Dati azienda
utilgdad.cpy, utilncnf.cpy, utilrcnf.cpy Supporto griglia + configurazioni RNEWCONF
utils52.cpy, utils54.cpy, utils60.cpy, utils68.cpy Utility calendario, stampa, scelte codificate, ricerca merce
utilu10.cpy Utility COGU10 (divisa, conversione)
utilcogs96.cpy Utility COGS96 (filtro agenti)
utilw138.cpy Utility WIN138 (dettaglio cliente della zona)
utilf09.cpy, utilf62.cpy, utile04.cpy, utilf10.cpy Utility selezione provincia, regione, nazione, tipologia cliente
getdcont.cpy, dtab.cpy, fscrol2.cpy, utilpggr.cpy Lettura contatori, tabelle, scrolling, paginazione
wcont.cpy, wcont1.cpy Linkage standard
stato, stato1, winmsg, grave, mmmask, opengen Infrastruttura standard

Logica di elaborazione

Inizializzazione (apri): Apre i file, abilita F3 conferma, F7 filtra, F8 aiuto/calendario, F9 stampa/ricerca avanzata, Shift+F4 griglia, Shift+F5 esporta Excel. Carica divisa di conto via COGU10W. Compone il nome di cogtrans come <tmp-dir>/#$COGY07.<operatore>. Crea pulsante custom F7 "Dettaglio Cliente". Legge configurazione STATSTPARA via RNEWCONF (chiavi c018-ela, c018-mag, c018-imp, c018-na, c018-stat-ext).

Fase parametri (a4): Carica agenti dell'operatore via carica-agenti (COGS96 popola tran-cogs96). Default: tm-tip-rag = "N", tm-mov = "R", tm-ord = "C". Pagina 1 con accept dei campi: - tm-tipo-stat — tipo statistica - tm-mag — magazzino (F8 = WIN036) - tm-tip-rag — tipo raggruppamento (N/R/P/C). Pilota la visibilita' dei campi seguenti: - tm-prov-cod — provincia (F8 = COGF09), visibile solo se tm-tip-rag = "P" - tm-regio-cod — regione (F8 = COGF62), visibile solo se tm-tip-rag = "R" - tm-nazio-cod — nazione (F8 = COGE04), visibile solo se tm-tip-rag = "N" - tm-tip-cli-cod — tipologia cliente (F8 = COGF10), visibile solo se tm-tip-rag = "C" - tm-tip-mov — tipo movimento (T/N/M) - tm-art (gru/sot/cod, cma, cmf, cmc, bc) — filtro articolo (selezione via COGS68W) - tm-data-da, tm-data-a — periodo (F8 = COGS52) - tm-mov — livello dettaglio - tm-ord — ordinamento (C/N/I)

Elaborazione (inizio-ela, a F3): - Apre cogtrans in output e poi i-o. - Parte da stt-tip = tm-tipo-stat e stt-data = tm-data-da, scorre cogstati con rdnxt (chiave k03). - Esce quando stt-tip not = tm-tipo-stat oppure stt-data > tm-data-a. - a1-scrivi-transito: per ogni record legge coggeana del cliente e calcola a1-rag-cod in base a tm-tip-rag: - "N" -> ana-st-cod (codice stato cliente), default "ITA" se vuoto. Filtra se tm-nazio-cod valorizzato. - "R" -> legge cogtabel tipo 26 con cod = "P" + ana-prov e prende euta-lo-app (regione). Filtra se tm-regio-cod valorizzato. - "P" -> ana-prov. Filtra se tm-prov-cod valorizzato. - "C" -> legge cogappog per il cliente e prende app-tip-stt (tipologia). Filtra se tm-tip-cli-cod valorizzato. - Per ogni record applica i filtri agente, articolo, magazzino (analogo a COGY06). - Scrive su cogtrans tre record per riga statistica: - trs-tipo = "R" con trs-rag-cod = a1-rag-cod (raggruppamento zona) - trs-tipo = "C" con trs-rag-cod e trs-cli (cliente nella zona) - trs-tipo = "T" con trs-rag-cod = "999", trs-rag-nome = "TOTALETOTALE" (totale generale) - opera-transito decodifica trs-rag-nome in base a tm-tip-rag: - "N" -> cogtabel tipo 54 (stati), forzando "ITALIA" per trs-rag-cod = "ITA" - "R" -> cogtabel tipo 26 con cod = "R" + rag-cod (descrizione regione) - "P" -> cogtabel tipo 26 con cod = "P" + rag-cod (descrizione provincia) - "C" -> cogtabel tipo 84 con cod = "C" + rag-cod (descrizione tipologia cliente) - Conversione valuta tramite COGU10W (x1-calcola-imp) se necessario.

Griglia (vis-tabella): Spaginamento su cogtrans filtrato per trs-tipo = "R", ordinato secondo tm-ord. Le righe mostrano: codice zona, descrizione, quantita', importo, val. FIFO, margine, margine percentuale. F8 (con tasto-premuto = k-f7) apre WIN138 per il dettaglio per cliente della zona. Shift+F4 GRIDADMN, Shift+F5 export Excel, F9 stampa.

Chiamate a sottoprogrammi

Programma Utilizzo
COGS96 Caricamento agenti dell'operatore in tran-cogs96
COGU10W Conversione valuta / arrotondamento / GetDivisaConto
COGS54 Selezione device/parametri di stampa (F9)
COGS52 Calendario (F8 sui campi data)
COGS68W Ricerca/selezione codice articolo
COGF09 Selezione provincia (F8 su tm-prov-cod)
COGF62 Selezione regione (F8 su tm-regio-cod)
COGE04 Selezione nazione (F8 su tm-nazio-cod)
COGF10 Selezione tipologia cliente (F8 su tm-tip-cli-cod)
WIN036 Selezione magazzino (F8 su tm-mag)
WIN138 Dettaglio per cliente della zona selezionata
GRIDADMN Gestione griglia, personalizzazione, export Excel
RNEWCONF Lettura configurazioni STATSTPARA

Note implementative

  • Autore: Claudio Chiossi.
  • k-max-ele-tab = 100: dimensione massima tm-tab come buffer in memoria; la griglia vera e' su cogtrans paginato.
  • Il file cogtrans e' per-operatore (wo-oper nel nome) per evitare conflitti.
  • Costanti cogtabel: tipo 26 con prefisso "P"/"R" per province/regioni, tipo 54 per stati, tipo 84 con prefisso "C" per categorie clienti.
  • A differenza di COGY15, questo programma non passa da tran-cogs96 per le righe statistiche: legge direttamente cogstati. COGS96 e' usato solo come filtro agenti.
  • Configurazioni rilevanti (gruppo STATSTPARA): euta-c018-ela, euta-c018-mag, euta-c018-imp, euta-c018-na, euta-c018-stat-ext.
  • La nazione di default per i clienti senza ana-st-cod valorizzato e' "ITA".
  • I tre tipi di record su cogtrans (R/C/T) permettono di mantenere in unica tabella sia il raggruppamento di zona, sia il dettaglio cliente, sia il totale generale; la griglia filtra per trs-tipo = "R".