COGM72 - Visualiz. Storico¶
Scopo¶
Visualizzazione delle versioni storiche di una distinta base. Mostra la composizione e la valorizzazione dei componenti per una specifica versione (corrente o storica), con griglia paginata, stampa e esportazione Excel.
Struttura¶
Programma standalone con maschera GUI e griglia paginata (mmmask.cpy). Flusso principale:
- Selezione: accept di codice distinta, versione e tipo prezzo
- Elaborazione: lettura componenti dalla distinta corrente (COGDBASE) o dallo storico (COGDBSTR), scrittura su file di transito temporaneo
- Visualizzazione: griglia paginata con componenti, prezzi e importi
- Funzioni accessorie: stampa (F9), export Excel (Shift+F5), personalizzazione griglia (Shift+F4)
Puo' essere chiamato da altri programmi (utilm72-called): in tal caso, il codice distinta viene passato in linkage e la selezione salta direttamente alla versione.
Tabelle/File utilizzati¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| COGMERCI | Lettura | Anagrafica merci - validazione distinta e recupero UM componenti |
| COGDBASE | Lettura | Distinta base corrente - lettura componenti se versione "Corrente" |
| COGDBSTR | Lettura | Storico distinte - lettura componenti per versioni storiche |
| COGDBSTT | Lettura | Testata storicizzazione - validazione versione, data e note |
| COGTRANS | I-O (file transito) | File temporaneo indicizzato per griglia paginata |
| COGPRMED | Lettura | Prezzi medi - per valorizzazione componenti (versione corrente) |
| FEURTAB | Configurazione | Tabella configurazioni standard |
File di transito (COGTRANS)¶
File temporaneo indicizzato creato in ext-tmp-dir, con nome formato #$COGM72.{operatore}{parametro}. Record:
- trs-merce-f (PK), trs-qta, trs-um, trs-curr, trs-prezzo, trs-importo, trs-perc-val
Logica di elaborazione¶
Versione "Corrente" (ela-dbase)¶
- Posizionamento su COGDBASE per distinta (
dba-gru/sot/cod) - Per ogni componente:
- Legge UM da COGMERCI
- Cerca prezzo medio (cerca-prmed)
- Calcola importo = prezzo * quantita'
- Scrive su COGTRANS
- Accumula totale distinta in
tm-totale
Versione storica (elabora -> tratta-cogdbstr)¶
- Posizionamento su COGDBSTR per distinta + versione
- Per ogni record storico:
- Legge UM da COGMERCI
- Usa prezzo e percentuale valorizzazione dallo storico
- Calcola importo =
dsr-prezzo * dsr-qta - Scrive su COGTRANS
Griglia paginata¶
La griglia usa il pattern di spaginamento standard:
- x-spaginamento-start -> rst-not-less -> lettura da COGTRANS
- Navigazione con PagSu/PagGiu
- Ogni record griglia mostra: codice, quantita', UM, prezzo, importo, valuta, % valorizzazione
Selezione versione¶
- Digitazione diretta del nome versione
- F8 chiama
WIN158per sfogliare le versioni disponibili della distinta
Tipo prezzo (tm-u-m)¶
Visibile solo per versione "Corrente". Determina il criterio di valorizzazione dei componenti (es. M = prezzo medio).
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| WIN158 | Sfoglia versioni disponibili della distinta (F8) |
| COGS54 | Gestione stampante per stampa |
| COGS68W | Gestione campo merce con ricerca avanzata |
| COGL61 | Recupero prezzi componenti |
| COGU10W | Gestione valute e formattazione importi |
| COGU09 | Utilita' |
| GRIDADMN | Gestione griglia paginata |
COPY utilizzate¶
File/Select¶
feurtab.fd,cogm72.select,cogm72.fd,flsta.fd,flsta.cpy
Working storage¶
cogm72.wrk,k-u10.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpywgrid.cpy,utilgdad.cpy,utils52.cpy,utils54.cpy,utils68.cpyutilu09.cpy,utilu10.cpy,utilcogl61.cpy
Linkage¶
wcont.cpy,utilm72.cpy,wcont1.cpy
Screen¶
cogm72-01.scr
Procedure¶
cogm72.prc,grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpyutilpggrid.cpy(griglia paginata)
Note¶
- Il file di transito COGTRANS viene creato nella directory temporanea con nome univoco per operatore e cancellato alla chiusura (
delete file cogtrans). - Se il file di transito e' gia' in uso (es. altra sessione), il programma mostra "Funzione gia' in uso dall'operatore" e termina.
- Il campo
w-prg-persviene usato per le personalizzazioni griglia: il programma puo' usare personalizzazioni di un altro programma quando e' in modalita' called. - La validazione distinta controlla sia l'esistenza in anagrafica sia che
mer-padre = "P". - Menu doppio: appare sia in Produzione > Distinta Base sia in Uscite > Tessere & Bollini > Gestione.