Vai al contenuto

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 come tm-ann - 1.

Elaborazione (carica-trs)

  1. Anno corrente (b1-elabora): scansione COGCLVEN per l'anno selezionato. Per ogni mese e agente trovati:
  2. Se tm-age e' valorizzato, filtra solo quell'agente.
  3. Accumula gli importi per agente/mese.
  4. Costruisce la tabella degli agenti trovati (tab-agenti-trovati).
  5. Scrive o aggiorna il record sul file di transito (trs-age + trs-mese) con trs-imp.

  6. Anno precedente (b1-elabora-cfr): stessa scansione per l'anno precedente, aggiorna trs-imp-cfr nei record di transito.

  7. Costruzione griglia: per ogni agente trovato e per ogni mese (1-12):

  8. Calcolo differenza: tm-imp-dif = tm-imp-att - tm-imp-pre.
  9. Calcolo percentuale: tm-dif-perc = (dif / imp-pre) * 100 (se imp-pre diverso da zero).
  10. 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