COGO72 - Stampa Collegamenti Ordini¶
Scopo¶
Stampa i collegamenti (coglegor) tra ordini fornitore e ordini cliente. Permette di selezionare un range di ordini per tipo (F/C), li mostra in griglia per la selezione interattiva e genera la stampa raggruppata per merce o per ordine collegato. Per ordini fornitore puo' includere anche merci non collegate.
Posizioni menu¶
- Magazzino > Giacenze & Sottoscorta > Scorte > Stampa Collegamenti
File e Tabelle¶
| File | Copybook | Utilizzo |
|---|---|---|
| FEURTAB | cogfiles.cpy | Tabella file di sistema |
| COGTABEL | cogtabel.cpy (external) | Tabella sistema; lookup divisa (euta-tipo=56) |
| COGGEANA | coggeana.cpy (external) | Anagrafica; lettura ragione sociale per cliente/fornitore |
| COGTESOR | cogtesor.cpy | Testata ordine (lookup intestatario, data, divisa) |
| COGRIGOR | cogrigor.cpy | Righe ordine (per modalita' "merci non collegate") |
| COGLEGOR | coglegor.cpy | Legami tra righe ordini fornitore e righe ordini cliente |
| COGTRANS | dichiarata inline | Transito 1: ordini selezionati per stampa (chiave trs-chia1 = ordine) |
| COGTRANS2 | dichiarata inline | Transito 2: dettaglio righe ordine + legame, con 3 chiavi (vedi sotto) |
| FLSTA | flsta.cpy | File di stampa |
| EXP-GRID | (in cogo72.fd) |
Buffer per esportazione griglia |
COGTRANS (#$COGO72.<oper>)¶
trs-chia1: trs-ordine (tip+ann+num+pro)
trs-ana, trs-ana-des, trs-divisa, trs-data, trs-sel ('SI' = selezionato)
COGTRANS2 (#$BOGO72.<oper>)¶
Chiave 1: trs2-chia1 = merce + data + rif-principale + rif-secondario
Chiave 2 alternativa: merce + rif-principale + rif-secondario (per ordinamento "M" = per Merce)
Chiave 3 alternativa: ordine-principale + rif-secondario + merce + riga-principale (per ordinamento "O" = per Ordine)
Copybook¶
feurtab.fd,cogo72.select,cogo72.fd,flsta.fd,flsta.cpycogo72.wrk,cogo72-01.scr,cogo72.decla,cogo72.prck-u10.cpywgrave.cpy,wnscr.cpy,wopenf.cpy,wstato.cpy,cogazien.cpywgrid.cpy,utilgdad.cpyutils52.cpy(date),utils54.cpy(stampa),utils50.cpy(stringa merce),utils68.cpy,utils20.cpy,utile35.cpy,utilu09.cpy,utilu10.cpywcont.cpy,util021.cpy,wcont1.cpy- Fine procedure:
grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy,dtab.cpy,fscrol2.cpy,utilpggr.cpy,GetDCont.cpy,cogtrans.k01,cogtran2.k01,coglegor.k02,coglegor.k03
CALL¶
| Programma | Scopo |
|---|---|
| COGS54 | Gestione parametri di stampa (richiesta stampante) |
| COGS50 | Composizione stringa descrittiva merce |
| COG021 | Visualizzazione dettagli stampa (F1 su tipo ordine) |
| COGU10W | Conversione divisa, arrotondamento e formattazione importi/prezzi |
| GRIDADMN | Gestione griglia (Add-Record / Modify-Record / Svuota / Prepara) |
Logica di elaborazione¶
Parametri input (tab-maschera)¶
tm-esa: tipo ordine 'F' (fornitore) o 'C' (cliente). Inizializzato 'F'.tm-da-ordine/tm-a-ordine: range ordini, strutturatip+ann+num+pro.tm-ord: ordinamento di stampa 'M' (per Merce) o 'O' (per Ordine). Inizializzato 'O'.tm-no-leg: include merci non collegate ('S'/'N'). Disabilitato (x-enabled-tm-no-leg=0) quandotm-esa='C'(forzato a 'N').
Flusso¶
apri: apertura file, init pulsanti (F3 conferma, F1 dettaglio stampa, F8 calendario, F9 stampa, Shift+F4 griglia, Shift+F5 esporta excel), prepara griglia GRIDADMN, calcolo dimensione cella (x-calcola-dimensione-cella,x-ricalcola-griglia).a4: inizializzazionetab-maschera, controllo enable ditm-no-leg(off per cliente).- Maschera:
a-tm-esa->a-tm-da-ann/num/pro->a-tm-a-ann/num/pro->a-tm-ord->a-tm-no-leg->a-richiesta-conferma. b-leggi: scandisce COGTESOR a partire dator-chia = tm-da-ordinefino ator-chia > tm-a-ordine. Per ogni ordine valido scrive su COGTRANS un record contrs-ordine, trs-ana, trs-ana-des (da coggeana), trs-divisa, trs-dataetrs-sel = spaces.carica-tab: usafscrol2con paragrafirn-start-not-less,rn-start,rp-start-less,rp-start-equal,rp-fill-key*,sn-read,sp-read,rd-fill-t-key,rd-fill-b-key,rd-controlli-fill,rd1-fill-tabper caricare la pagina di griglia da COGTRANS intm-tab.a-grid: gestione griglia paginata via GRIDADMN/utilpggr:- Invio: toggle
tm-sel(i)tra spaces e 'SI',rwr-cogtrans(owr-cogtransse non esiste), aggiorna riga in griglia conModify-Record. - Shift+F4: personalizzazione griglia (GRIDADMN).
- Shift+F5: esportazione griglia (
z-esporta-paged-grid). - F9:
controlla-selverifica esistenza di almeno un selezionato; se ok chiamastampa. stampa: COGS54 per richiesta stampante (132 char, posizione 12/20). Poid-stampa.d-stampa: rilegge COGTRANS, per ogni record contrs-sel='SI':- Se
tm-esa='F'etm-no-leg='S'->e1-stampa(include merci non collegate). - Se
tm-esa='F'etm-no-leg='N'->d1-stampa(solo merci collegate). - Se
tm-esa='C'->d4-stampa. d1-stampa/d4-stampa: ricarica COGTRANS2 svuotandolo, scandisce COGLEGOR sulla chiave appropriata (chiave 3 per fornitore =lor-ordine-for; chiave 2 per cliente =lor-ordine-cli) e popola COGTRANS2 con i legami.e1-stampa: come d1 ma scandisce anche COGRIGOR e per ogni riga ordine senza alcuncoglegorcorrispondente scrive su COGTRANS2 un record "non collegato" (contr2-ordine-secondarioinizializzato).- Stampa effettiva:
d11-ordine-merce(setm-ord='M', scandisce COGTRANS2 chiave 2) od12-ordine-ordine(chiave 3). Per ogni gruppo merce: legge COGRIGOR per quantita'/prezzo, converte con COGU10W (divisa dell'ordine -> divisa di riferimento, arrotondamento), edita prezzo (10 char) e importo, stampa riga con merce/qta/prezzo/importo/ordine collegato/qta specifica. d2-testa: intestazione di pagina con azienda, data, numero ordine, tipo, intestatario, divisa (lookup COGTABELeuta-tipo=56).- Salto pagina:
d3-before-writecontrollactr-rig > (s54-stm-lin - 18)e chiamad2-testa.
Note tecniche¶
- Programma GUI con screen
cogo72-01.scre griglia paginata. - I file COGTRANS/COGTRANS2 sono temporanei per operatore (path
ext-tmp-dir/#$COGO72.<oper>,#$BOGO72.<oper>); cancellati inz-chiudicondelete file. - COGTRANS2 ha 3 chiavi alternative per supportare i 2 ordinamenti di stampa + chiave principale.
- La gestione "merci non collegate" e' attiva solo per ordini fornitore (gli ordini cliente per definizione sono visti dal lato del legame).
- Conversione divisa via COGU10W con
u10-divisa-dato = ror-currencyeu10-data = datasis. d5-cerca-merce-su-ordinee' un placeholder vuoto: gestiva collegamenti vecchi contr2-riga-principale=9999(codice padre invece di riga ordine).- Larghezza stampa: 115 char (
k-chr-stampa = 115). - Linee testata: 6 (
k-linee-testa). - Massimo elementi grid: 100 (
k-max-ele-tab).