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¶
- 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". - Accept filtri (
a4->a-tm-anno-da-> ... ->a-tm-cliente->a-fine-dati): validazione campi. Alla conferma (F3), avvia estrazione. - Estrazione dati (
x1-write-tran): - Ciclo
x1-00/x1-10-loop: scorre COGTESOR per il cliente, filtrando per intervallo anni e stato (aperti/chiusi/tutti). - 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.
- Caricamento griglia (
carica-tab): legge COGTRANS (file temporaneo per merce -> n.contratti) e popola la griglia paginata. - Navigazione griglia (
a-grid): gestisce paginamento, S-F4/S-F5 e: - F5: chiama COGG28 passando cliente, merce selezionata, filtri anno/stato e riferimento al file TRANSG28.
- PgUp/PgDn: paginamento standard.
- 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.cpycon spaginamento su COGTRANS. - COGG28 viene chiamato passando le informazioni nella linkage (ru4-link).