COGL60 - Visualizzazione Prezzi Medi per Merce¶
Panoramica¶
Programma interattivo per la visualizzazione e la gestione manuale dei prezzi medi registrati nell'archivio COGPRMED. Per un dato articolo (e opzionalmente una sede), mostra in griglia le righe dell'archivio prezzi medi ordinate per data decrescente, con ultimo prezzo di acquisto (PUA), prezzo medio di acquisto (PMA) e prezzo medio di vendita (PMV). Supporta inserimento, modifica e cancellazione di righe. Puo' essere richiamato come "called" passando articolo e sede. Massimo 900 elementi in griglia.
Posizione nel menu¶
| Menu | Percorso |
|---|---|
| Magazzino | Controllo Magazzino > Prezzo Medio > Visualiz. prezzi medi x merce |
Struttura del programma¶
File e tabelle utilizzati¶
| File/Tabella | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Input | Tabella di sistema |
| COGMERCI | Input | Anagrafica merci |
| COGMAGAZ | Input | Anagrafica magazzini/sedi |
| COGPRMED | I-O | Archivio prezzi medi per merce/sede/data (lettura, scrittura, modifica, cancellazione) |
Copybook principali¶
| Copybook | Descrizione |
|---|---|
| cogl60.select | SELECT dei file |
| cogl60.fd | File Description |
| cogl60.wrk | Working storage generata |
| cogl60-01.scr | Screen section |
| k-u10.cpy | Costanti formattazione importi |
| wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy | Standard working storage |
| cogazien.cpy | Dati azienda |
| wgrid.cpy, utilgdad.cpy | Gestione griglia |
| utilu10.cpy | Formattazione importi (COGU10W) |
| utils52.cpy | Utilita' date |
| utils68.cpy | Ricerca merce (COGS68W) |
Parametri linkage (called)¶
La linkage include utilcogl60.cpy (non listato esplicitamente nel sorgente, ma la struttura w-dati-called ha w-dc-called, l60-merce e l60-sede). Se w-dc-called = "S" il programma preimposta merce e sede dai parametri ricevuti e salta direttamente all'elaborazione.
Struttura chiave COGPRMED¶
La chiave primaria (prm-chia1) e' composta da: merce (9 byte: gruppo+sottogruppo+codice) + data (8 byte, formato AAAAMMGG) + sede (3 byte). L'ordinamento e' decrescente per data (la griglia scorre dal valore massimo al minimo).
Chiamate a sottoprogrammi (CALL)¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione griglia (personalizzazione colonne S-F4) |
| COGU10W | Formattazione e accept importi (PUA, PMA, PMV) |
| COGS68W | Ricerca/selezione merce |
| WIN36 | Ricerca magazzini/sedi (F8 su campo sede) |
Logica di elaborazione¶
Flusso principale¶
-
Inizializzazione (
apri): legge configurazioni, apre file. Se called, preimposta articolo e sede e salta aa-fine-dati. -
Filtri (
a4): accept dia-tm-merce(obbligatorio, con ricerca COGS68W) ea-tm-sede(facoltativo, con F8 → WIN36). -
Elaborazione (
a-fine-dati): impostaprm-merce = tm-merce,prm-data = 99999999(massimo) per posizionarsi all'inizio della scan decrescente. Chiamacarica-tab thru ex-carica-tabper popolare la griglia leggendo COGPRMED a partire dalla data piu' recente.
Se la prima scan non restituisce dati (n-m = 0), effettua una seconda scansione senza il filtro data per mostrare comunque i dati disponibili.
- Griglia (
a-grid): supporta paginazione (PgUp/PgDn), S-F4 (GRIDADMN), S-F5 (export Excel). Le azioni sulla riga sono: - Invio:
a-riga-dettaglioin modalita' modifica ("M") — lock del record conrd-cogprmed-lk, attiva highlight riga - Ctrl+A:
a-riga-dettaglioin modalita' inserimento ("I") — incrementan-m, nuova riga vuota -
Ctrl+E: verifica abilitazione, chiede conferma, chiama
c-cancella thru ex-ce ricarica griglia -
Dettaglio riga (
a-riga-dettaglio): accept sequenziale dia-tm-r-data→a-tm-r-sede→a-tm-r-pua→a-tm-r-pma→a-tm-r-pmv. I campi PUA/PMA/PMV usanoutil-u10per formattazione importi. -
Salvataggio (
a-fine-dettaglio): chiede conferma. Verifica se il record esiste gia' in COGPRMED: - In inserimento su record esistente → converte in modifica con avviso
- In modifica su record non trovato → converte in inserimento con avviso
- Esegue
wr-cogprmed(inserimento) orwr-cogprmed(modifica) - Se il nuovo record rientra nella finestra corrente della griglia, si riposiziona e ricarica
Gestione valori importi¶
I campi PUA, PMA, PMV sono di tipo pic 9(12)v9(06) con valuta (prm-currency). La formattazione usa util-u10 / COGU10W.
Abilitazioni¶
Il programma controlla w-abi-agg, w-abi-ins, w-abi-del per la modifica, l'inserimento e la cancellazione rispettivamente.
Note tecniche¶
- La griglia e' a scorrimento inverso (da data massima a data minima): la chiave superiore di scansione e'
99999999. - La logica di inserimento verifica che il nuovo record ricada nella finestra corrente (
prm-chia1 < w-t-key and > w-b-key) prima di riposizionarsi sulla griglia. - Il lock record in modifica usa
rd-cogprmed-lk(lettura con lock); se il record non viene trovato viene mostrato un messaggio di errore. - La nuova gestione highlight riga (
tratta-hl thru ex-tratta-hl) e' attiva solo in modalita' modifica (fl-attiva-hl = "S"). - Il programma usa
k-max-ele-tab = 900.