COGV99 - Note fisse su documenti¶
Sorgente: cbl/cogv99.cbl | Tipo: Programma interattivo GUI (maschera a campi) | Program-ID: COGV99
Menu:
- Sistema > Configurazione > Note Fisse su Documenti
Scopo¶
Gestisce le note libere/fisse da stampare sui documenti (fatture, ricevute fiscali, DDT, tentata vendita, ordini fornitore, ordini cliente). Le note sono memorizzate nell'archivio descrizioni COGDESCR con tipo SD ("Note fisse su documenti"): l'operatore seleziona a quale documento e a quale livello di dettaglio applicare la nota (tipo documento, sottotipo, causale, cliente/fornitore specifico) e ne modifica il testo tramite l'editor note.
La logica chiave e' la granularita' della chiave nota (tm-cde-cod): a seconda dei campi valorizzati la nota vale per tutti i documenti di quel tipo, oppure solo per un sottotipo/causale/anagrafica specifica. Il flag tm-cde-fl-1 governa la ricerca progressiva (se trovando una nota di dettaglio il sistema deve cercare anche le note generiche o fermarsi - vedi cde-fl-1 in cogdescr.cpy).
L'editing del testo avviene tramite la subroutine COGZDEW (editor note), che scambia il testo con un file di lavoro temporaneo (#$BOGE08.<operatore> nella tmp dir); il travaso tra COGDESCR e il file di lavoro passa da un archivio temporaneo LODTMDES locale al programma.
Struttura del programma¶
Maschera classica a campi (non a griglia) con controlli abilitati/resi visibili dinamicamente in base al tipo documento scelto. La struttura di lavoro tab-maschera contiene la chiave nota (tm-cde-cod con documento, tipo, causale, chiave anagrafica) e i testi note (tm-note per la maggior parte dei documenti, tm-note-ordcli per gli ordini cliente).
Inizializzazione (apri / a4)¶
ctr-abil, z-99-init-program, x-carica-lingua, rd-azi, open-files, get-divisa-conto. Predispone i tasti funzione (F3 conferma, F3 aggiorna, F4 cancella, F8 aiuto, F8 calendario) e costruisce il nome del file di lavoro w-ltd-nome (#$BOGE08.<w-oper>). In a4 inizializza la chiave con documento F (fattura) e tipo anagrafico cliente, prepara la combo dei tipi documento (prepara-tm-da-tipo) e attiva i controlli.
Selezione parametri chiave (paragrafi a-tm-*)¶
Sequenza di accept con navigazione F2/F3 sui campi che compongono la chiave della nota:
a-tm-documento- tipo documento macro (Ffattura,Rricevuta fiscale,DDDT,Vtentata vendita,Oordine fornitore,Cordine cliente), gestito via S60; determina il tipo anagrafico (k-ana-tipo-cli/k-ana-tipo-for).a-tm-da-tipo- tipo documento IVA di dettaglio (combo popolata daprepara-tm-da-tipoleggendoCOGTABELtipo 68, filtrato suieuta-clifotivache iniziano perC), gestito via COGS60W2.a-tm-cde-tip-doc-d1- sottotipo documento (per DDT:D/I/B/R...), via S60.a-tm-causale- causale (F8 richiama l'help causali viasend-w01, controllo suCOGTABELtipo 15).a-tm-cde-ana-cod-c/a-tm-cde-ana-cod-f- cliente / fornitore specifico, gestiti via COGS65W (help F8, restituisce codice e nome).a-tm-cde-fl-1- flag ricerca note su livelli precedenti (ricerca progressiva), via S60; proposto daproponi-fl-1in base alle note gia' presenti.
La visibilita'/abilitazione dei campi cliente, fornitore, nome e flag e' governata dai paragrafi z-cambia-tm-* in funzione della combinazione documento / tipo anagrafico / sottotipo / causale.
Composizione chiave e caricamento note (a-fine-dati / a-tm-pre-note)¶
x-imposta-conferma valida i campi. a-tm-pre-note compone la chiave definitiva della nota (tm-cde-cod-bis) mappando il documento sulla stringa descrittiva ("FATTURA", "RICEV.FISC.", "D.D.T.", "ORD.FOR", "ORD.CLI", ...) e riportando tipo, causale e chiave anagrafica. Apre in esclusiva LODTMDES (segnala "Funzione gia' in uso" se non riesce), travasa le descrizioni da COGDESCR a LODTMDES (carica-des) e carica il testo nell'editor tramite COGZDEW (operazione Da-file-a-zde-note), riversandolo in tm-note o tm-note-ordcli.
Editing note (a-tm-note / a-tm-note-ordcli)¶
Accetta il testo nota (campo multilinea). F3 conferma e salva: canc-des (cancella le note esistenti su COGDESCR) + ins-des (reinserisce dal testo editato). F4 cancella le note esistenti. La navigazione resta sul campo note fino a conferma/uscita.
Salvataggio (canc-des / ins-des)¶
canc-des: scandisceCOGDESCRsulla chiaveSD+tm-cde-cod-bise cancella i record (rd-cogdescr-lk+del-cogdescr).ins-des: riversa il testo dall'editorCOGZDEW(operazioneDa-zde-note-A-file) al file di lavoro, quindi daLODTMDESscrive i record descrizione suCOGDESCR(wr-cogdescr), propagando il flagcde-fl-1dalla sceltatm-cde-fl-1.
Chiusura (fine / z-chiudi)¶
z-close-files, chiusura window, chiusura e cancellazione del file temporaneo LODTMDES (delete file), cancel "COGZDEW", z-99-exit-program.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema (aperta via cogfiles.cpy) |
| COGDESCR | primaria cde-chia1 (cde-tip + cde-cod + cde-pro); accesso dinamico |
Archivio descrizioni; qui gestito il tipo SD = note fisse su documenti (cde-fl-1 = flag ricerca progressiva) |
| LODTMDES | primaria ltd-chia1 (ltd-tip + ltd-cod + ltd-pro); file temporaneo locale |
Archivio temporaneo di travaso descrizioni tra COGDESCR e l'editor note; aperto in esclusiva, cancellato in uscita |
| COGTABEL | euta tipo 68 (tipi documento IVA), tipo 15 (causali) |
Popolamento combo tipo documento IVA e validazione causale (euta-cb-des, euta-cb-cli-for) |
COPY incluse¶
Working-Storage¶
cogv99.wrk, k-u10.cpy, wstato.cpy, wgrave.cpy, wopenf.cpy, wnscr.cpy, wtipidoc.cpy, cogazien.cpy, utilrcnf.cpy, utilcn18.cpy, utilu01.cpy, utilu11.cpy, utilu12.cpy, utils65.cpy, utilzde.cpy, utilw01.cpy, utils52.cpy, utils54.cpy, utilu10.cpy, utilncnf.cpy, utils60w2.cpy
File section¶
cogv99.fd (con cogv99.select), lodtmdes.fd / lodtmdes.cpy, cogfiles.cpy
Linkage¶
wcont.cpy, wcont1.cpy
Procedure Division¶
cogv99.decla, cogv99-01.scr (screen), utipidoc.cpy, grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, sendw01.cpy, lodtmdes.k01, cogv99.prc, getdcont.cpy, readconf.cpy
Le routine di I/O su COGDESCR, LODTMDES, COGTABEL (st-, rdnxt-, rd-, wr-, del-) sono incluse tramite la catena di COPY generata. La copy lodtmdes.k01 (chiave primaria della tabella temporanea) e' aggiunta manualmente, in quanto LODTMDES non e' gestita da Screens.
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGZDEW | Editor delle note (testo multilinea): scambia il testo con il file di lavoro (operazioni Da-file-a-zde-note / Da-zde-note-A-file) |
| COGS60W2 | Gestione combo tipo documento IVA (z-s60-tm-da-tipo1) |
| COGS65W | Help/selezione e gestione campo cliente / fornitore (z-s65-tm-cde-ana-cod-c/f) |
| cogu10w | Determinazione divisa di conto (get-divisa-conto) |
Sono inoltre usate le subroutine standard di gestione controlli GUI (S52, S54, S60, S68, S93, S95, U10) e l'help causali via send-w01 (sendw01.cpy, richiama WIN001).
Configurazioni RNEWCONF¶
Il programma non legge chiavi RNEWCONF nel flusso operativo. Le copy readconf.cpy, utilrcnf.cpy e utilncnf.cpy sono incluse ma i relativi paragrafi (readconf-*) non sono richiamati e la variabile ri-cfg-mod non e' utilizzata: si tratta di residui del modello di partenza non attivi.
Note tecniche¶
- Granularita' della chiave nota: la chiave su
COGDESCR(tm-cde-cod-bis) e' composta dinamicamente da documento + sottotipo + causale + chiave anagrafica; i campi non valorizzati vengono azzerati per ottenere note "generiche". Il flagtm-cde-fl-1(salvato incde-fl-1) abilita la ricerca progressiva a runtime nei programmi di stampa documenti. - File temporaneo esclusivo:
LODTMDESe' aperto in output per verificare l'esclusivita' ("Funzione gia' in uso dall'operatore!!") e poi riaperto in I/O; il nome del file di lavoro dell'editor include l'operatore (#$BOGE08.<w-oper>). Il file viene cancellato in uscita. - Salvataggio distruttivo: la conferma esegue sempre
canc-desseguito dains-des(cancella tutte le note della chiave e le riscrive dal testo editato); la cancellazione (F4) esegue solocanc-des. - Due campi note:
tm-note(2000 char) e' usato per la maggior parte dei documenti;tm-note-ordcli(8000 char) per gli ordini cliente. La visibilita' determina quale ramo di accept viene attivato (a-tm-notevsa-tm-note-ordcli).