Vai al contenuto

COGM73 - Selezione Clienti per Pirelli

Scopo

Gestione del flag multifunzione Pirelli sui clienti. Permette di scorrere un elenco di clienti (tutti, filtrati per caratteristiche anagrafiche, o filtrati per flag Pirelli pre-esistente) e impostare per ognuno il flag Pirelli (app-tip-abb) che identifica i marchi gestiti (Pirelli/Ceat/Armstrong e combinazioni).

Posizioni menu

  • Magazzino > Archivi & Tabelle > Estrazioni Pirelli > Selezione Clienti

File e Tabelle

File Copybook Utilizzo
FEURTAB cogfiles.cpy Tabella file di sistema
COGGEANA coggeana.cpy Anagrafica generale (clienti, ana-tipo='C')
COGAPPOG cogappog.cpy Tabella di appoggio anagrafica: campo app-tip-abb contiene il flag Pirelli
TRAN-E08 tran-e08.cpy File temporaneo di transito per estrazione clienti (chiave 1: codice; chiave 2: descrizione)

Chiavi alternative usate: ana-chia / ana-chia1 (cod / desc) per COGGEANA; trs-e08-chia1 / trs-e08-chia2 per TRAN-E08.

Copybook

  • feurtab.fd, coggeana.fd, cogappog.fd, tran-e08.fd
  • wgrave.cpy, wstato.cpy, wopenf.cpy, wnscr.cpy
  • utile08r.cpy, utils21.cpy, utilw06.cpy, utilw81.cpy, utils60.cpy, utils65.cpy, cogazien.cpy
  • wcont.cpy (con redefine util-m39), wcont1.cpy
  • Fine procedure: stato1.cpy, stato.cpy, winmsg.cpy, grave.cpy, open1.cpy, mmmask.cpy, sendw06.cpy, sendw81.cpy, dtab.cpy, tstfun2.cpy, fscroll.cpy

CALL

Programma Scopo
COGS21 Accept di un campo da lista di valori (ordinamento C/D, selezione T/R/P)
COGS60 List-box selezione (filtro Pirelli, flag cliente)
COGE08R Estrazione clienti per caratteristiche anagrafiche (popola TRAN-E08)

Logica di elaborazione

Parametri input (tab-maschera)

  • tm-ord: C=codice / D=descrizione
  • tm-sel: T=Tutti, R=per caratteristiche anagrafiche (apre TRAN-E08 da COGE08R), P=per flag Pirelli (tab-opt-tip2 con prefiltri "I"=Pirelli, "L"=CEAT, "G"=Armstrong, oppure singoli flag)
  • tm-tipo: filtro flag Pirelli (su selezione P)
  • tm-cli-da, tm-cli-da-des: cliente di partenza per la scansione (solo tm-sel='T')

Tabella opzioni flag

tab-opt-tip (8 voci): N/P/C/A/E/R/T/U (Nessuno / solo Pirelli / solo Ceat / solo Armstrong / Pirelli+Ceat / Pirelli+Armstrong / Ceat+Armstrong / Tutti).

tab-opt-tip2 (11 voci): aggiunge filtri raggruppati I/L/G (Pirelli, CEAT, Armstrong) usati nella scansione e1-cerca-tutto.

Flusso

  1. Maschera (a4-a-40): accept ordinamento, selezione, eventuale codice cliente di partenza, eventuale filtro Pirelli.
  2. Estrazione cliente (tm-sel='R'): chiama COGE08R che popola TRAN-E08 con i clienti che soddisfano criteri anagrafici complessi.
  3. Estrazione cliente (tm-sel='P'): paragrafo e-ricerca apre TRAN-E08 in scrittura, scandisce COGAPPOG (chiave app-chia, tipo='C') e per ogni cliente confronta app-tip-abb con tm-tipo. Se la condizione e' soddisfatta scrive su TRAN-E08 (e3-aggiungi).
  4. Visualizzazione tabella (c-accetta -> c-10): scorrimento paginato con fscroll.cpy (paragrafi rn-start-not-less, rn-start, rp-start-less, rp-start-equal, rp-fill-key, rp-fill-key-from-b, rd-fill-t-key, rd-fill-b-key, sn-read, sp-read, rd1-fill-tab).
  5. Paginazione: pg-up / pg-dwn chiamano c1-aggiorna (salva i flag della pagina corrente) prima di cambiare pagina.
  6. Aggiornamento (c1-aggiorna): per ogni elemento della tabella tm-tab, fa rd-app su COGAPPOG, sostituisce app-tip-abb = tm-flag(k) e rwr-app.

Note tecniche

  • Programma legacy non-GUI (formato testo, source-computer rmcobol).
  • Mappa mm-1 testuale 80x25 con cornici a caratteri grafici.
  • Usa keystrokes custom (KEYSTROKE Exception=65 kl, 66 kr) per intercettare frecce sx/dx come exception.
  • Ricerca per descrizione tramite W06 (send-w06).
  • L'estrazione P non e' veramente indicizzata: scandisce tutto COGAPPOG e filtra in memoria.