COGF65 -- Vendite Comparate per Agente/Mese¶
Sorgente: cbl/cogf65.cbl | Tipo: Programma statistico con griglia paginata e stampa | Program-ID: cogf65
Menu: Statistiche
Scopo¶
Stampa statistica delle vendite per agente e mese con confronto anno su anno. Richiede un agente (o tutti) e un anno; produce un riepilogo mensile delle vendite dell'anno selezionato raffrontate con quelle dell'anno precedente, calcolando differenze assolute e percentuali.
File e tabelle¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella generale |
| COGCLVEN | Input | Classifiche vendita per agente (scansione per anno/mese) |
| COGTABEL | Input | Tabelle generiche (tipo 21 = agenti) |
| COGGEANA | Input | Anagrafica generale (tipo "F" = fornitori/agenti) |
| COGTRANS | I/O | File di transito temporaneo (chiave: agente + mese) con chiave alternata (mese + agente) |
| FLSTA | Output | File stampa |
| File da cogf65.select | Vari | File dichiarati dalla screen |
Copybook principali¶
| Copybook | Sezione | Descrizione |
|---|---|---|
| cogf65.select | FILE-CONTROL | SELECT dei file |
| cogf65.fd | FILE SECTION | FD dei file |
| cogf65.wrk | WORKING-STORAGE | Variabili di lavoro |
| cogf65-01.scr | SCREEN SECTION | Definizione maschera |
| cogf65.decla | PROCEDURE | Declaratives |
| cogf65.prc | PROCEDURE | Procedure generate da Screens |
| k-u10.cpy | WORKING-STORAGE | Costanti divise |
| wrk-u10.cpy | WORKING-STORAGE | Working divise |
| cogconta.cpy | WORKING-STORAGE | Record piano dei conti |
| wgrid.cpy | WORKING-STORAGE | Gestione griglia paginata |
| utilgdad.cpy | WORKING-STORAGE | Utility griglia |
| utils52.cpy | WORKING-STORAGE | Utility data |
| utils54.cpy | WORKING-STORAGE | Utility stampa (COGS54) |
| utilu10.cpy | WORKING-STORAGE | Utility divise |
| utils65.cpy | WORKING-STORAGE | Utility selezione anagrafica |
| utile35.cpy | WORKING-STORAGE | Utility selezione agenti |
| utilf65.cpy | LINKAGE | Parametri di chiamata (called) |
Record di transito (COGTRANS)¶
trs-chia1:
trs-age PIC 9(05) -- codice agente
trs-mese PIC 9(02) -- mese
trs-imp PIC S9(12)V999999 -- importo anno corrente
trs-imp-cfr PIC S9(12)V999999 -- importo anno precedente
Chiave alternata trs-chia2 = trs-mese + trs-age
Struttura del programma¶
main section
apri -- inizializzazione, apertura file
a4 -- reset, apertura cogtrans
a-tm-age -- accept agente
a-tm-ann -- accept anno
a-acc-conf / a-inizio-dati -- validazione e conferma
fill-file -- elaborazione
carica-trs -- creazione file di transito
b1-elabora -- scansione COGCLVEN per anno corrente
b1-elabora-cfr -- scansione COGCLVEN per anno precedente
vis-tabella..ex-vis-tab -- visualizzazione griglia paginata
stampa..ex-stampa -- stampa
fine / z-chiudi -- chiusura
Logica di elaborazione¶
Parametri¶
- Agente (
tm-age): codice agente. Se zero, vengono elaborati tutti gli agenti. Validazione: deve esistere in COGGEANA tipo "F" e in COGTABEL tipo 21. - Anno (
tm-ann): anno di riferimento. L'anno di confronto (tm-ann-cfr) e' calcolato cometm-ann - 1.
Elaborazione (carica-trs)¶
- Anno corrente (
b1-elabora): scansione COGCLVEN per l'anno selezionato. Per ogni mese e agente trovati: - Se
tm-agee' valorizzato, filtra solo quell'agente. - Accumula gli importi per agente/mese.
- Costruisce la tabella degli agenti trovati (
tab-agenti-trovati). -
Scrive o aggiorna il record sul file di transito (
trs-age+trs-mese) contrs-imp. -
Anno precedente (
b1-elabora-cfr): stessa scansione per l'anno precedente, aggiornatrs-imp-cfrnei record di transito. -
Costruzione griglia: per ogni agente trovato e per ogni mese (1-12):
- Calcolo differenza:
tm-imp-dif = tm-imp-att - tm-imp-pre. - Calcolo percentuale:
tm-dif-perc = (dif / imp-pre) * 100(se imp-pre diverso da zero). - Aggiunta riga TOTALE per ogni agente.
Griglia paginata¶
Colonne: Mese, Importo anno corrente, Importo anno precedente, Differenza, Diff. %, Agente, Descrizione agente. La riga "TOTALE" e' evidenziata con colore diverso (row-grid-color = 2529).
Stampa¶
Formato 80 colonne. Testata con data, titolo, numero pagina. Per ogni agente: intestazione con codice/nome, righe per mese con anno corrente, anno precedente, differenza e percentuale. Layout definito nelle working-storage (testa1, testa2, testa3, rigel).
Modalita' called¶
Se f65-called = "COGF65-CALLED", il programma riceve agente e anno da linkage e salta direttamente all'elaborazione.
CALL a programmi esterni¶
| Programma | Scopo |
|---|---|
| COGE35 | Ricerca agenti (F8) |
| COGS52 | Input/output date e anni |
| COGS54 | Gestione stampa |
| COGS65 | Selezione anagrafica |
| COGU10W | Gestione divise e importi |
| GRIDADMN | Gestione griglia |