Vai al contenuto

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.cpy
  • cogo72.wrk, cogo72-01.scr, cogo72.decla, cogo72.prc
  • k-u10.cpy
  • wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy
  • wgrid.cpy, utilgdad.cpy
  • utils52.cpy (date), utils54.cpy (stampa), utils50.cpy (stringa merce), utils68.cpy, utils20.cpy, utile35.cpy, utilu09.cpy, utilu10.cpy
  • wcont.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, struttura tip+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) quando tm-esa='C' (forzato a 'N').

Flusso

  1. 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).
  2. a4: inizializzazione tab-maschera, controllo enable di tm-no-leg (off per cliente).
  3. 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.
  4. b-leggi: scandisce COGTESOR a partire da tor-chia = tm-da-ordine fino a tor-chia > tm-a-ordine. Per ogni ordine valido scrive su COGTRANS un record con trs-ordine, trs-ana, trs-ana-des (da coggeana), trs-divisa, trs-data e trs-sel = spaces.
  5. carica-tab: usa fscrol2 con paragrafi rn-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-tab per caricare la pagina di griglia da COGTRANS in tm-tab.
  6. a-grid: gestione griglia paginata via GRIDADMN/utilpggr:
  7. Invio: toggle tm-sel(i) tra spaces e 'SI', rwr-cogtrans (o wr-cogtrans se non esiste), aggiorna riga in griglia con Modify-Record.
  8. Shift+F4: personalizzazione griglia (GRIDADMN).
  9. Shift+F5: esportazione griglia (z-esporta-paged-grid).
  10. F9: controlla-sel verifica esistenza di almeno un selezionato; se ok chiama stampa.
  11. stampa: COGS54 per richiesta stampante (132 char, posizione 12/20). Poi d-stampa.
  12. d-stampa: rilegge COGTRANS, per ogni record con trs-sel='SI':
  13. Se tm-esa='F' e tm-no-leg='S' -> e1-stampa (include merci non collegate).
  14. Se tm-esa='F' e tm-no-leg='N' -> d1-stampa (solo merci collegate).
  15. Se tm-esa='C' -> d4-stampa.
  16. 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.
  17. e1-stampa: come d1 ma scandisce anche COGRIGOR e per ogni riga ordine senza alcun coglegor corrispondente scrive su COGTRANS2 un record "non collegato" (con tr2-ordine-secondario inizializzato).
  18. Stampa effettiva: d11-ordine-merce (se tm-ord='M', scandisce COGTRANS2 chiave 2) o d12-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.
  19. d2-testa: intestazione di pagina con azienda, data, numero ordine, tipo, intestatario, divisa (lookup COGTABEL euta-tipo=56).
  20. Salto pagina: d3-before-write controlla ctr-rig > (s54-stm-lin - 18) e chiama d2-testa.

Note tecniche

  • Programma GUI con screen cogo72-01.scr e griglia paginata.
  • I file COGTRANS/COGTRANS2 sono temporanei per operatore (path ext-tmp-dir/#$COGO72.<oper>, #$BOGO72.<oper>); cancellati in z-chiudi con delete 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-currency e u10-data = datasis.
  • d5-cerca-merce-su-ordine e' un placeholder vuoto: gestiva collegamenti vecchi con tr2-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).