COGM41 - Serial Numbers non rientrati (visualizzazione)¶
Scopo¶
Programma GUI di sola consultazione che elenca i seriali (matricole) usciti a cliente e il loro stato di rientro. Applica filtri per articolo (da/a), cliente, fornitore, periodo, magazzino e tipo (Non Rientrati / Tutti / in Giacenza) e popola una griglia VSFlexGrid ordinabile ed esportabile in Excel. Ricostruisce la catena padre/figlia delle matricole via COGU07 e recupera l'eventuale valore di cauzione dai movimenti di magazzino.
Menu¶
Magazzino > Visualizzazioni > Serial Numbers > S/n non rientrati
File e tabelle¶
| File | Tipo | Descrizione |
|---|---|---|
| FEURTAB | Parametri | File di ambiente / parametri (cogfiles.cpy tramite cogm41-fd.cpy) |
| COGTABEL | Indicizzato | Tabelle; usa il tipo causale 15 (k-euta-tipo-causale) per leggere euta-cb-cli-for, euta-cb-fl-eu |
| COGMERCI | Indicizzato | Anagrafica merci (mer-chia, mer-descr) |
| COGGEANA | Indicizzato | Anagrafiche (nomi cliente/fornitore, ana-chia, ana-nome) |
| COGMAGA2 (cogmagaz) | Indicizzato | Anagrafica magazzini (magz-tipo='M', magz-cod, magz-nome) |
| COGTESBO | Indicizzato | Testate documenti; scandita per chiave 2 (tes-data/tes-mag, tes-chia3, tes-causale) |
| COGMATRI | Indicizzato | Matricole/seriali; letta per chiave 1 (mtr-chia1) e scandita per chiave 3 (mtr-ent/mtr-merce/mtr-mat); campi mtr-sn, mtr-ana, mtr-fl-eu |
| COGMTUSC | Indicizzato | Matricole uscite; scandita per chiave 3 (mtu-fl-doc='B', mtu-bolla, mtu-merce, mtu-mat, mtu-ana) |
| COGMOMAG | Indicizzato | Righe movimenti di magazzino; usata in cerca-cauzione per recuperare prezzo/valuta della cauzione (mag-testa, mag-merce3, mag-prezzo, mag-currency) |
Copybook¶
File e select¶
cogm41-sl.cpy(SELECT),cogm41-fd.cpy(FD),cogmomag.fd- Chiavi:
cogtabel.k01,cogtesbo.k01/.k02,coggeana.k01,cogmerci.k01,cogmaga2.k01,cogmatri.k01...k04,cogmtusc.k01...k04,cogmomag.k01
Definizioni GUI / ActiveX¶
vsflexgrid.def,acuclass.def,activex.def,opensave.def,costanti.cpy,k-u10.cpy
Working-storage standard¶
utilncnf.cpy,wstato.cpy,wgrave.cpy,wgrid.cpy,wopenf.cpy,wnscr.cpy,cogazien.cpy
Utilita' / linkage subroutine¶
utilgdad.cpy(GRIDADMN),utils21.cpy,utils52.cpy(data/calendario),utils65.cpy(aiuto anagrafica),utils68.cpy(aiuto merce),utilu07.cpy(matricole),utilu10.cpy(valute/importi)
Linkage¶
wcont.cpy(con redefinesutil-v11per l'aggancio alla gestione documento, non attivo),wcont1.cpy
Procedure¶
stato.cpy,stato1.cpy,winmsg.cpy,grave.cpy,open1.cpy,mmmask.cpy,getdcont.cpy
CALL¶
| Programma | Descrizione |
|---|---|
| COGU07 | Ricostruzione catena matricole: cerca-matricola (figlia) e cerca-padre per risalire al padre / anagrafica fornitore / entrata padre |
| COGS68W | Aiuto / decodifica codice merce nei campi "Da/Ad Articolo" (versione GUI) |
| COGS65W | Aiuto / selezione anagrafica cliente e fornitore |
| COGS52W | Gestione campo data con calendario F8 (da/a data) |
| COGS60W | Popolamento combo-box Ordinamento e Tipo Filtro |
| COGU10 | Conversione / edit valute e importi (valore cauzione) |
| GRIDADMN | Amministrazione griglia (predisposta ma le chiamate operative sono commentate; usata la VSFlexGrid nativa) |
| W$MENU | (non usato attivamente) |
Logica di elaborazione¶
apro: font griglia,ctr-abil,open-files,rd-azi,get-divisa-conto; attivazione tasti funzione; titolo "Visualizzazione Serial Usciti"; prepara i controlli merce (z-s68-tm-da-merce/z-s68-tm-a-merce), la griglia (clear-grid,format-grid,z-prepara-grid) e i combo (z-costruisci-controlli); legge la configurazionex99-load-config.a4: valori di default filtri (periodo anno corrente, ordinamento "M", tipo "R" = Non Rientrati),z-carica-controlli.- Accept dei filtri (
a-tm-da-merce,a-tm-a-merce,a-tm-sel-cli-cod,a-tm-sel-for-cod,a-tm-da-data,a-tm-a-data,a-tm-ord,a-tm-tip,a-tm-mag): ogni campo ha un paragrafox-controlla-...che colora il controllo e impostax-f3-ok-parziale;x-test-mousegestisce lo spostamento del focus col mouse tramiteevent-control-id. a-conferma(F3):x-imposta-confermaverifica tutti i campi;a-controlli-okdisattiva il pulsante conferma ed esegueb-elabora.b-elabora: pulisce/formatta la griglia, imposta i default (set-defaults-tm-merce/-ana/-data), scandiscecogtesboper chiave 2 dalla data di partenza filtrando magazzino e periodo; per ogni testata valida controlla la causale sucogtabel(tipo 15, cliente e verso E/U). A seconda del tipo filtro chiamaricerca-giacenza(tm-tip="G") oricerca-uscita.ricerca-uscita: scandiscecogmtuscper bolla+merce (chiave 3); per ogni matricola uscita leggecogmatri, gestisce l'eventuale carattere d'esclusione (matricole ricomposte viacerca-padre-con-u07), verifica cliente/fornitore, determina se e' rientrata (cerca-figlia-con-u07); se non rientrata (o tutti) recupera la cauzione (cerca-cauzione), riempie l'elemento (fill-tab-ele) e lo aggiunge alla griglia (add-ele-to-vs-grid).ricerca-giacenza: scandiscecogmatriper entrata+merce (chiave 3) escludendo le matricole con uncogmtusc(gia' uscite); logica analoga con recupero cauzione dall'uscita del padre.add-ele-to-vs-grid: compone la riga (delimitata da tabk-vbtab) con codici, descrizioni, seriali usciti/rientrati, date, fornitore e valore cauzione, e la inserisce con@additem.a-grid/a-accept-grid: abilita la griglia; F7 =print-vs-grid(@PrintGrid), F9 =export-vs-grid(salvataggio.xlsviaC$OPENSAVEBOX+@SaveGrid).fine/z-chiudi: chiusura file e uscita.
Note tecniche¶
- La griglia e' un controllo VSFlexGrid (
e-vs-grid, id 901) manipolato via metodi ActiveX (@FormatString,@additem,@Sort,@SaveGrid,@PrintGrid); la vecchia grid AcuCOBOL paginata (e-tm-tab) e i relativi paragrafi GRIDADMN sono commentati. - Il carattere d'esclusione dei seriali ricomposti e' letto da RNEWCONF (
COGM85.CNF/ "CARATTERE D'ESCLUSIONE") inx99-load-config; usato conINSPECT ... TALLYINGper riconoscere le matricole figlie. - Costanti causale:
k-euta-tipo-causale= 15;k-ana-tipo-cli/k-ana-tipo-fordistinguono cliente e fornitore. - Larga parte del sorgente e' costituita da codice legacy commentato (vecchia logica basata su file di transito
cogtranse sucogmomagper chiave 6): la logica attiva e' quella dib-elaborae successori. - La colonna "Data Entrata"/"Data Uscita" e il serial rientrato sono valorizzati diversamente per i tre tipi filtro (G/R/T) in
add-ele-to-vs-grid. cerca-cauzionetraduce le prime due cifre del codice merce in lettere (mappatura 0-9 -> A,B,C,D,E,F,G,H,K,I) per ricostruire il codice della merce-cauzione da cercare nei movimenti.