COGP08 - Stampa Listino Particolare¶
Sorgente: cbl/cogp08.cbl | Tipo: Programma a menu (stampa con maschera) | Program-ID: COGP08
Menu: Magazzino > Archivi & Tabelle > Stampe > Listini > Listino Particolare
Scopo¶
Genera la stampa di un listino prezzi personalizzato. Supporta tre modalita' di stampa:
- Standard: listino classico per merce
- Per Reparto (
tm-tutti = "R"): listino raggruppato per reparto - Prestazioni Odontosoft (
tm-tutti = "P"): modalita' specifica per laboratori odontotecnici, con raggruppamenti per linea prodotto e tipo dispositivo (accessori)
L'output puo' essere su stampante, Word (XML/WORDMDL) o PDF. Per la modalita' "Prestazioni" e' obbligatorio l'export su Word per gestire i raggruppamenti gerarchici.
File e Tabelle¶
| File/Tabella | Uso | Descrizione |
|---|---|---|
| FEURTAB (cogfiles) | Input | Parametri generali |
| COGMERCI | Input | Anagrafica merci |
| COGMERAP | Input | Merce per appoggio |
| COGMERAR | Input | Raggruppamenti merce |
| COGMERA2 | Input | Anagrafica merci estensione (per sincro APP WMS) |
| COGMERA3 | Input | Anagrafica merci 3 (dati Modula, magazzino) |
| COGMERA4 | Input | Anagrafica merci 4 — campo ma4-ordine-stampa per l'ordinamento di stampa |
| COGLISNW | Input | Listino di vendita |
| COGTABEL | Input | Tabella generica (categorie, linee, reparti) |
| COGANRAG | Input | Anagrafica raggruppamenti gerarchici |
| COGGEANA | Input | Anagrafica cliente (intestazione) |
| FLSTA | Output | File stato per output stampa |
| T-RIGHE-STAMPA | I-O (temp) | File temporaneo per le righe di stampa, indicizzato con tre chiavi: - primaria: trs-progressivo- secondaria: trs-chia2 (linea, tipo-dsp, reparto, merce)- terziaria trs-chia3 (linea, tipo-dsp, trs-ordine-stampa, mer-chia, reparto) — usata in modalita' "Prestazioni" |
Working storage¶
trs-rec: tracciato file temporaneotrs-lineaPIC X(10) — codice linea prodottotrs-tipo-dspPIC X(10) — codice tipo dispositivo / "accessori"trs-ordine-stampaPIC 9(05) — ordine di stampa derivato dama4-ordine-stampa(default 99999 se zero)w-rot-linea,w-rot-tipo-dspPIC X(10) — rotture correnti per raggruppamentoa-raggr-nPIC 9(06),a-raggr-z/a-raggr-x— progressivo raggruppamento per generazione tag XML "ROTTURA-n"tm-cfg-classe-categoriaPIC X(02) — vecchia configurazione classe categoria (non piu' usata, sostituita da classe listino)tm-cfg-classe-listinoPIC X(02) — nuova configurazione fittizia, sempre = "L"
Copybook principali¶
- File:
feurtab.fd,cogp08.select,cogp08.fd,flsta.fd - Working:
cogp08.wrk,cogazien,wgrave,wnscr,wopenf,wstato - Interfacce:
utilncnf(RNEWCONF),utilwordmdl(WORDMDL),utilcogs65w(COGS65W),utilcogpa3(COGPA3),utilcogsc1(COGSC1),utilcogu10w(COGU10W),utilcogu06(COGU06),utilgestring,utilgesdate - A fine procedure:
stato,winmsg,grave,opengen,mmmask,cogp08.prc
Configurazioni RNEWCONF (gruppo "COGP08")¶
| Indice | Chiave | Significato |
|---|---|---|
| 1 | LIBRI-NS-RIF | Riferimento nostro |
| 2 | USO-CM-EAN | Uso codice EAN |
| 3 | USO-CM-INTE | Uso codice interno |
| 4 | USO-CM-AVAN | Uso codice avanzato |
| 5 | CLASSE-CATEGORIA | (obsoleto) classe categoria — non piu' verificata |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGS54 | Selezione stampante e gestione output |
| COGS65W | Configurazione personalizzazione colonne |
| COGU10W | Formattazione importi e valute |
| COGU06 | Lettura descrizioni tabella |
| WORDMDL | Generazione output Word (XML, tag, modello) |
| COGPA3 | Lettura parametri stampa |
| COGSC1 | Lettura configurazione stampe |
| RNEWCONF | Lettura configurazioni |
Logica di elaborazione¶
Flusso principale¶
- Apertura: lettura azienda, apertura file, lettura configurazioni RNEWCONF (
x99-conficarica 5 chiavi; classe-listino forzato a "L"). - Maschera (
a-pagina-01): l'utente seleziona intervallo merci, tipo stampa (Standard/Reparto/Prestazioni), formato output, data di riferimento, listino. - Controlli pre-stampa:
- Per "Prestazioni Odontosoft": e' richiesto export su Word. Il check precedente sulla configurazione
classe-categoriae' stato disabilitato (TASK-3434). - Scansione merci: per ogni merce nell'intervallo:
- Lettura COGMERCI, COGMERAP, COGMERA3, COGMERA4, COGLISNW
- Determinazione di
trs-linea,trs-tipo-dsp(per modalita' "P") tramite COGANRAG (classe =tm-cfg-classe-listino= "L", tipo "M" per merce, "R" per padre/raggruppamento risalendo l'albero) - Determinazione di
trs-ordine-stampadama4-ordine-stampa(default 99999 se zero) — TASK-4809 - Scrittura record nel file di transito T-RIGHE-STAMPA
- Stampa: scansione T-RIGHE-STAMPA per chiave
trs-chia3(linea, tipo-dsp, ordine-stampa, merce, reparto) in modalita' Prestazioni, oppure pertrs-chia2standard. - Gestione raggruppamenti (modalita' Prestazioni):
- Apertura raggruppamento (
x-apro-raggr): incrementaa-raggr-n, genera tag XMLROTTURA-{n}conwordmdl-fl-tag = "A" - Chiusura raggruppamento (
x-chiudo-raggr): aggiunge tag XMLSALTOe chiudeROTTURA-{n}conwordmdl-fl-tag = "C" - Rotture: su cambio
trs-lineachiude il raggruppamento corrente e ne apre uno nuovo, scrivendo l'intestazione di linea (#Font1: {descrizione linea}) - Rotture su tipo dispositivo: scrive
#Font1: Accessoricome intestazione del sottogruppo
Chiave alternata trs-chia3¶
E' stata aggiunta una nuova chiave alternata per ordinare le righe della stampa "Prestazioni":
alternate record key is trs-chia3 = trs-linea,
trs-tipo-dsp,
trs-ordine-stampa,
trs-mer-chia,
trs-reparto
L'inclusione di trs-ordine-stampa nella chiave permette di ordinare le merci all'interno dello stesso raggruppamento per ordine personalizzato (anziche' per codice merce).
Note tecniche¶
- I campi
trs-lineaetrs-tipo-dspsono stati estesi da X(05) a X(10) per supportare codici raggruppamento piu' lunghi. - La modalita' "Prestazioni" non stampa piu' "Linea: {codice}" + "Tipo dispositivo: {codice}", ma solo "{descrizione linea}" e "Accessori" come separatori.
- Per la generazione XML i raggruppamenti vengono numerati progressivamente (
ROTTURA-1,ROTTURA-2, ...) e ciascuno e' un blocco indipendente nel documento Word esportato. trs-ordine-stampa = 0viene convertito a 99999 (in coda all'ordinamento) per le merci senza ordine esplicito su COGMERA4.
Storico modifiche¶
| Build | Descrizione |
|---|---|
| 2026/0426 | TASK-3434: sostituita configurazione classe-categoria con configurazione fittizia tm-cfg-classe-listino = "L" cablata nel codice. Disabilitato il controllo che richiedeva la configurazione classe-categoria per la modalita' Prestazioni Odontosoft. Aggiunti x-apro-raggr / x-chiudo-raggr con generazione tag XML ROTTURA-{n} numerati progressivamente. Stampa intestazione raggruppamento semplificata ("{descrizione linea}", "Accessori"). |
| 2026/0511 | TASK-4809: aggiunto campo trs-ordine-stampa letto da COGMERA4 (ma4-ordine-stampa). Estese a X(10) le lunghezze di trs-linea e trs-tipo-dsp. Nuova chiave alternata trs-chia3 che include trs-ordine-stampa per ordinamento personalizzato delle merci all'interno del raggruppamento. Default trs-ordine-stampa = 99999 se ma4-ordine-stampa non impostato. |