Vai al contenuto

COGG29 - Merci su Contratti

Sorgente: cbl/cogg29.cbl | Program-ID: COGG29 | Tipo: Interrogazione/Analisi

Menu: Vendite > Mediatori > Merci su Contratti


Scopo

Visualizza, per un dato cliente, l'elenco delle merci presenti nei suoi contratti di vendita con il conteggio dei contratti che le contengono. Scrive i dati su file di transito (TRANSG28) e poi li visualizza in una griglia paginata. Dalla griglia e' possibile approfondire il dettaglio dei contratti per una singola merce tramite COGG28.


Struttura della maschera

Screen gestita da Screen Designer: cogg29-01.scr.

Campi di filtro:

Campo Variabile Tipo Validazione
Da anno tm-anno-da 9(04) Via COGS52
A anno tm-anno-a 9(04) >= tm-anno-da
Stato ordini tm-chiusi X(01) Via COGS60: T/A/C
Data elaborazione tm-in-data 9(08) Via COGS52
Cliente tm-cliente 9(05) Via COGS65W, obbligatorio

Griglia:

Colonna Variabile Descrizione
Merce to-merce (gru+sot+cod) Codice merce (9 char)
N. Contratti to-ctr-contratti Conteggio contratti contenenti la merce

Logica di elaborazione

Flusso principale

  1. Inizializzazione (apri): z-99-init-program, ctr-abil, open-files, rd-azi. Crea file di transito TRANSG28 e COGTRANS (open output + close + open i-o). Configura tasti funzione. Carica bitmap custom ("manut") e crea pulsante F5 "Contratti".
  2. Accept filtri (a4 -> a-tm-anno-da -> ... -> a-tm-cliente -> a-fine-dati): validazione campi. Alla conferma (F3), avvia estrazione.
  3. Estrazione dati (x1-write-tran):
  4. Ciclo x1-00/x1-10-loop: scorre COGTESOR per il cliente, filtrando per intervallo anni e stato (aperti/chiusi/tutti).
  5. Per ogni ordine, ciclo x1-15-loop: scorre COGRIGOR per ottenere le merci. Per ogni merce:
    • Scrive un record su TRANSG28 con i dati dell'ordine (tipo, anno, numero, cliente, date, stato).
    • Aggiorna il contatore su COGTRANS: legge per merce, se esiste incrementa il contatore, altrimenti scrive con contatore=1.
  6. Caricamento griglia (carica-tab): legge COGTRANS (file temporaneo per merce -> n.contratti) e popola la griglia paginata.
  7. Navigazione griglia (a-grid): gestisce paginamento, S-F4/S-F5 e:
  8. F5: chiama COGG28 passando cliente, merce selezionata, filtri anno/stato e riferimento al file TRANSG28.
  9. PgUp/PgDn: paginamento standard.
  10. Uscita (a-grid-fine): svuota i file di transito, torna ai filtri.

Sottoprogrammi chiamati

Programma Scopo
COGS52 Accept campo anno/data con validazione
COGS60 Selezione valore da lista (stato ordini)
COGS65W Accept cliente con ricerca anagrafica
COGG28 Dettaglio contratti per merce (visualizzazione)
GRIDADMN Gestione griglia avanzata

File utilizzati

File Copybook Accesso Utilizzo
FEURTAB cogfiles.cpy Random Tabella file generali
File da cogg29.select cogg29.fd Dynamic File principali (COGTESOR, COGRIGOR, COGGEANA, ecc.)
TRANSG28 TRANSG28.CPY I-O File di transito: dettaglio ordini per merce/cliente
COGTRANS inline (trs-rec) I-O, Dynamic File di transito: merce -> contatore contratti

Copybook principali

Copybook Descrizione
cogg29.select SELECT dei file
cogg29.fd File Description
cogg29.wrk Working storage generata
cogg29.prc Procedure generate da Screens
cogg29-01.scr Screen section
transg28.fd SELECT TRANSG28
TRANSG28.CPY Record layout TRANSG28
wgrid.cpy Variabili gestione griglia
utilgdad.cpy Interfaccia GRIDADMN
utils52.cpy Interfaccia COGS52
utils65.cpy Interfaccia COGS65
wcont.cpy, wcont1.cpy Linkage standard
utilpggr.cpy Paginamento griglia
fscrol2.cpy Scrolling
dtab.cpy Display tabella
cogtesor.k02 Chiave secondaria ordini
cogrigor.k02 Chiave secondaria righe ordine
transg28.k01, transg28.k02, transg28.k03 Chiavi TRANSG28
cogtrans.k01 Chiave file transito merci

Linkage

Area linkage con redefines di user-area (r-user-area-4):

Campo Tipo Descrizione
ru4-caller X(08) Programma chiamante
ru4-clifor 9(05) Codice cliente
ru4-anno-da 9(04) Anno iniziale
ru4-anno-a 9(04) Anno finale
ru4-stato X(01) Stato filtro (T/A/C)
ru4-transg28 X(70) Path file TRANSG28
ru4-merce X(09) Filtro merce
ru4-indata 9(08) Data elaborazione

Se ru4-caller = "COGG29", il programma precompila i filtri dalla linkage.


Note tecniche

  • I file di transito TRANSG28 e COGTRANS vengono creati nella directory temporanea dell'operatore, con nome univoco basato sull'operatore (#$COGG29. + wo-oper).
  • All'uscita dalla griglia i file di transito vengono svuotati (close + open output + close + open i-o).
  • Il paginamento della griglia usa il pattern standard utilpggr.cpy con spaginamento su COGTRANS.
  • COGG28 viene chiamato passando le informazioni nella linkage (ru4-link).