Vai al contenuto

COGM36 - Stampa Merci Avanzate (Esecuzione)

Intestazione

Campo Valore
Programma COGM36
Titolo Esecuzione stampe su merci avanzate
Posizione menu Magazzino > Archivi & Tabelle > Stampe > Merci Avanzate > Esecuzione

Scopo e logica generale

COGM36 e' il motore di esecuzione delle stampe personalizzabili sull'anagrafica merci. Legge un modello di stampa definito nella tabella COGTABEL (tipo 63), consente di modificare i parametri di ordinamento, selezione e filtro, quindi esegue la ricerca delle merci e produce il report.

Il programma supporta: - Fino a 5 livelli di ordinamento con interlinea configurabile - Fino a 8 filtri di selezione con 6 operatori di confronto (EQ, NE, GT, LT, NG, NL) - Rottura e totali per gruppo - Informazioni fisse (codice, descrizione, prezzi, giacenza, valore) e dinamiche (da COGRACMT) - Informazioni estese (differenze percentuali, ricarichi) - Sottofunzioni esterne per parametri e stampe speciali

Il programma puo' ricevere il tipo di elaborazione dalla linkage (sub-m36-tip-ela).


Flusso principale

  1. Inizializzazione (apri): controllo abilitazione, apertura file tramite open-files (con open1.cpy), lettura azienda, data sistema, divisa conto (COGU10), caricamento configurazione (RNEWCONF su "SISTMERAVA" e "MERCI.CNF")
  2. Selezione modello (a-5): popup selezione codice stampa tramite COGGW05, lettura modello dalla tabella tipo 63 in COGTABEL (record tipi 1, 2, 3 tramite b-visua)
  3. Accept parametri:
  4. Salto pagina (a-30): tabella per rottura pagina, con aiuto WIN074 (F8)
  5. Classe (a-35): filtro classe merceologica (se tm-cfg-cla = "S"), con aiuto WIN075 (F8)
  6. Ordinamento (a-40 -> a-40-acc): fino a 5 tabelle, con tabella figlia (a-43) e interlinea (a-45)
  7. Selezione (a-50 -> a-50-acc): fino a 8 filtri con operatore (a-53) e valore (a-55), con aiuto WIN076 (F8)
  8. Copie (a-85)
  9. Divisa (a-87): tramite COGS60 (Lira/Euro)
  10. Dati giacenza (a-90 -> a3-dati-giacenza): magazzino e flag articoli a zero, solo se il modello include giacenza
  11. Valorizzazione: scelta prezzo ultimo/medio acquisto, solo se richiesto dal modello
  12. Sottofunzione parametri: se tm-sub non vuoto, chiama il sottoprogramma per parametri aggiuntivi
  13. Anteprima stampa (a-100): COGS54 per configurare la stampante
  14. Ricerca (e-ricerca): selezione merci e scrittura su file di transito tran-m36
  15. Stampa (d-stampa): lettura sequenziale di tran-m36, costruzione e scrittura righe, tm-cop volte. Se tm-sub presente, la stampa e' delegata alla sottofunzione
  16. Chiusura (fine): chiusura file, COGS01 con flag "C", z-99-exit-program

File e tabelle acceduti

File logico Record Modalita' Uso
FEURTAB cogfiles Input Tabella generica Eurosystem
COGTABEL euta-rec Input Tabelle sistema: modelli stampa (tipo 63), tabelle ordinamento/selezione (tipo 62), classi (tipo 61)
COGMERCI mer-rec Input Anagrafica merci (descrizione, prezzi)
COGMAGAZ magz-rec Input Anagrafica magazzini
COGSLMAG msal-rec Input Saldi magazzino (giacenza, ordinato, impegnato)
COGMERFO mfr-rec Input Merci-fornitore (codice fornitore, descrizione)
COGINVEN inv-rec Input Inventario (giacenza inventariale)
COGSCONT scc-rec Input Sconti per gruppo merceologico
COGRACMC rcm-rec Input Raccordo merci-classificazioni (chiave primaria e per merce)
COGRACMT rtm-rec Input Raccordo merci-tabelle (informazioni dinamiche, chiavi ordinamento)
TRAN-M36 trs-m36-rec I-O File di transito temporaneo per merci selezionate
FLSTA flsta-rec Input File per gestione stato stampa

Struttura del modello di stampa (COGTABEL tipo 63)

Il modello e' composto da 3 tipi di record:

Record tipo 1 (b1-load) - Dati generali

Campi caricati da euta-ds4-*: - tm-tit: titolo stampa - tm-sub: sottoprogramma esterno - tm-tip-rig: tipo riga (A=80col norm, B=80col compr, C=132col norm, D=132col compr) - tm-lun-fgl: lunghezza foglio - tm-int: intestazione azienda (S=sempre, P=solo prima pagina) - tm-jmp: righe di salto - tm-rot: tabella per rottura - tm-cla: classe merceologica - tm-ord-tab(1..5): tabelle ordinamento con flag figlia e interlinea

Record tipo 2 (b2-load) - Selezioni

Per ogni selezione: tabella (euta-ds5-sel), valore (euta-ds5-val), operatore (euta-ds5-ope)

Record tipo 3 (b3-load) - Dettaglio colonne

Per ogni colonna: tipo (I=dinamica, F=fissa, E=estesa), codice informazione, flag figlia, tipo stampa, titolo, posizione start/end

Informazioni fisse (tipo F)

Codice Informazione Flag attivati
01 Codice merce (gru/sot/cod) -
02 Codice avanzamento (da COGRACMC) tm-fl-rcm
03 Codice fornitore (da COGMERFO) tm-fl-mfr
04 Descrizione merce (da COGMERCI + COGRACMC) tm-fl-mer, tm-fl-rcm
05 Prezzo lordo/listino tm-fl-lis
06 Sconti tm-fl-lis
07 Prezzo netto -
08 Giacenza tm-fl-gia
09 Quantita' in ordine tm-fl-gia
10 Quantita' impegnata tm-fl-gia
11 Descrizione merce fornitore tm-fl-mfr
12 Prezzo ultimo acquisto tm-fl-mer, tm-fl-pua
13 Prezzo medio acquisto tm-fl-mer, tm-fl-pma
14 Valore di magazzino tm-fl-gia, tm-fl-val-req
15 Riga inventario (trattini) tm-fl-inv, tm-fl-gia, tm-fl-mfr

Informazioni estese (tipo E)

Codice Informazione
01 Differenza % tra prezzo lordo e netto
02-11 Prezzi ricaricati e relative percentuali di vendita (fino a 5 livelli)

Logica di ricerca e selezione (sezione e-*)

Senza filtri di selezione (e1-cerca-tutto)

Scansione sequenziale di COGRACMC (tipo = spazio), con eventuale filtro classe.

Con filtri di selezione (e2-seleziona)

  1. Preparazione (c-prepara): i filtri vengono ordinati per numero di occorrenze della tabella (ottimizzazione: il filtro piu' selettivo per primo)
  2. Ricerca primaria: la prima tabella di selezione viene usata per posizionamento e scansione su COGRACMT, con START appropriato in base all'operatore
  3. Verifiche secondarie: per ogni merce trovata, si verificano le condizioni delle tabelle successive (e21-e26 per i 6 operatori)
  4. Aggiunta al transito (e3-aggiungi): la merce viene scritta su TRAN-M36 con chiave di rottura e chiavi di ordinamento (ricavate da COGRACMT)

Supporto tabelle figlie

Per ordinamento e informazioni dinamiche, se la tabella ha flag guida (euta-tma-gui), il valore effettivo viene cercato nella tabella figlia tramite COGRACMT.


Logica di stampa (sezione d-*)

Testata (d1-testa)

Stampa: linea separatrice, titolo centrato con data, intestazione azienda (con indirizzo e P.IVA da COGMAGAZ se tm-int = "S" o "P"), eventuale riga rottura, intestazioni colonne.

Riga dettaglio (d2-fill-riga)

Per ogni colonna definita nel modello (fino a 50): - Tipo I (d21-fr-i): informazione dinamica da COGRACMT - Tipo F (d22-fr-f): informazione fissa (codice, descrizione, prezzi, giacenze, sconti, valore) - Tipo E (d23-fr-e): informazione estesa (percentuali, ricarichi)

Interlinea (d5-interlinea)

7 stili configurabili per livello di ordinamento: da nessuna (1) a linea continua (7).

Totali (d6-tot-rot, d6-tot-tot)

Totali per gruppo di rottura e totale generale su: giacenza, ordinato, impegnato, valore.


Copybook inclusi

File e tabelle

Copybook Contenuto
feurtab.fd FD file tabelle Eurosystem
cogfiles.cpy Record feurtab
cogtabel.fd / cogtabel.cpy FD e record tabelle sistema
cogdefst.cpy / cnfgsist.cpy Definizioni e configurazione sistema
cogmerci.fd / cogmerci.cpy FD e record anagrafica merci
cogmagaz.fd / cogmagaz.cpy FD e record anagrafica magazzini
cogslmag.fd / cogslmag.cpy FD e record saldi magazzino
cogmerfo.fd / cogmerfo.cpy FD e record merci-fornitore
coginven.fd / coginven.cpy FD e record inventario
cogscont.fd / cogscont.cpy FD e record sconti
cogracmc.fd / cogracmc.cpy FD e record raccordo merci-classificazioni
cogracmt.fd / cogracmt.cpy FD e record raccordo merci-tabelle
tran-m36.fd / tran-m36.cpy FD e record file di transito
flsta.fd / flsta.cpy FD e record file stato stampa
coginven.k01 Chiave COGINVEN
cogscont.k01 Chiave COGSCONT

Strutture dati e utility

Copybook Contenuto
wstato.cpy Working storage stato
wgrave.cpy Gestione errori gravi
wopenf.cpy Apertura file
wnscr.cpy Gestione schermo
cogazien.cpy Dati azienda
utilncnf.cpy Interfaccia RNEWCONF
utils21.cpy Interfaccia COGS21 (selezione S/N)
utils54.cpy Interfaccia COGS54 (anteprima stampa)
utils60.cpy Interfaccia COGS60 (selezione da lista)
utilu10.cpy Interfaccia COGU10 (divisa/formattazione)
utilw36.cpy Interfaccia WIN036 (selezione magazzino)
utilw74.cpy Interfaccia WIN074 (selezione tabella)
utilw75.cpy Interfaccia WIN075 (selezione classe)
utilw76.cpy Interfaccia WIN076 (selezione valore tabella)
utilgw05.cpy Interfaccia COGGW05 (selezione codice stampa)
wdisp002.cpy Display utility
utilcogl61.cpy Interfaccia COGL61 (prezzi medi)

Linkage e routine standard

Copybook Contenuto
wcont.cpy / wcont1.cpy Linkage section
utils01.cpy Interfaccia COGS01 (listino prezzi)
stato.cpy / stato1.cpy Gestione stato file
winmsg.cpy Messaggi a finestra
grave.cpy Gestione errori gravi
open1.cpy Apertura file (con ricerca nome)
mmmask.cpy Maschera principale (init/exit program)
dtab.cpy Display tabella
scree.cpy Routine schermo
tstfun1.cpy Test funzioni scorrimento
sendw36.cpy Invio a WIN036
sendw74.cpy Invio a WIN074
sendw75.cpy Invio a WIN075
sendw76.cpy Invio a WIN076
sendgw05.cpy Invio a COGGW05
pdisp002.cpy Routine display

Programmi chiamati (CALL)

Programma Scopo
RNEWCONF Configurazione: classe merci (SISTMERAVA), dati fissi estesi e ricarichi (MERCI.CNF)
COGGW05 Selezione codice stampa (popup)
COGS21 Selezione valore S/N (tabella figlia, articoli a zero)
COGS54 Configurazione stampante / anteprima
COGS60 Selezione da lista (divisa, valorizzazione)
COGU10 Conversione divisa, formattazione importi, arrotondamento
COGL61 Ricerca prezzo medio e ultimo acquisto
COGS01 Listino prezzi (prezzo lordo, netto, sconti)
WIN036 Selezione magazzino (F8 su dati giacenza)
WIN074 Selezione tabella generica (F8 su salto pagina, ordinamento, selezione)
WIN075 Selezione classe merceologica (F8)
WIN076 Selezione valore tabella (F8 su selezione)
tm-sub Sottofunzione esterna (chiamata dinamica per parametri aggiuntivi e/o stampa)

Configurazione (RNEWCONF)

Gruppo SISTMERAVA

Chiave Variabile Uso
euta-c039-cla tm-cfg-cla Abilita filtro classe ("S"/"N")

Gruppo MERCI.CNF

Chiave Variabile Uso
STAMPA MERCI AVANZATE CON DATI FISSI ESTESI tm-cfg-df-ext Abilita informazioni estese
% DI RICARICO (1..5) tm-cfg-perc-ric(1..5) Percentuali di ricarico
STAMPA MERCI AVANZATE PREZZO LORDO tm-cfg-pre-lordo "L" = usa prezzo listino come lordo
LISTINO STAMPA MERCI AVANZATE tm-cfg-listino Numero listino da usare

Variabili di stato principali

Variabile Descrizione
tm-cod Codice modello di stampa selezionato
tm-tit Titolo della stampa
tm-sub Nome sottofunzione esterna
tm-tip-rig Tipo riga (A/B/C/D)
tm-lun-rig Lunghezza riga in caratteri (80/132/226)
tm-rot Tabella per rottura/salto pagina
tm-cla Filtro classe merceologica
tm-mag Magazzino per giacenza
tm-fl-zero "S" = stampa anche articoli a zero
tm-fl-val "U" = ultimo acquisto, "M" = medio acquisto
tm-divisa Divisa di stampa ("E"/"L")
tm-cop Numero copie
n-p Numero di tabelle di selezione attive (dopo preparazione)
ctr-rig Contatore righe pagina corrente
ctr-pag Contatore pagine
w-rot Valore corrente della chiave di rottura (per cambio gruppo)