Vai al contenuto

COGX43 - Tracciabilita' "ad albero"

Panoramica

Programma interattivo per la visualizzazione della tracciabilita' di un lotto di merce in forma grafica ad albero (tree-view AcuCOBOL). Dato un codice lotto, costruisce ricorsivamente la catena completa di provenienza (a monte) e distribuzione (a valle) del lotto, esposta come nodi espandibili in un controllo tree. Puo' essere richiamato come "called" passando direttamente il codice lotto. Legge la configurazione causali/carico-latte da RNEWCONF per personalizzare il comportamento. Utilizza due file di transito per costruire l'albero.

Posizione nel menu

Menu Percorso
Magazzino Visualizzazioni > Lotti Merce > Tracciabilita' "ad albero"

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema
COGMERCI Input Anagrafica merci
COGMERLT Input Lotti merce (chiave primaria e secondaria chia2 per ricerca per lotto)
COGTRANS (temp) I-O Primo file di transito per costruzione albero
COGTRANS2 (temp) I-O Secondo file di transito per costruzione albero

Copybook principali

Copybook Descrizione
cogx43.select SELECT dei file
cogx43.fd File Description
cogx43.wrk Working storage generata
cogx43-01.scr Screen section (include tree-view)
utilcogx43.cpy Interfaccia per richiamo come called (cogx43-called, cogx43-lotto)
utilncnf.cpy Lettura configurazioni RNEWCONF
utils52.cpy Utilita' date
utils54.cpy Utilita'
utils68.cpy Ricerca merce
utilu78.cpy Interfaccia COGU78
utils00.cpy Interfaccia COGS00 (selezione lotto)
utilv11.cpy Interfaccia chiamante (linkage)
wcont.cpy, wcont1.cpy Linkage section standard
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy Standard working storage
cogazien.cpy Dati azienda

Controllo tree-view

Il programma usa un controllo tree-view nativo AcuCOBOL (id 500) con: - buttons, show-lines, lines-at-root, 3-d - bitmap-handle handle-tree-bitmap (bitmap caricata dal file "tree") - height-in-cells, width-in-cells - layout-data rlm-resize-both (ridimensionamento con la finestra)

Il massimo di elementi della griglia e' 5000 (k-max-ele-tab). Le costanti k-size-rg-merce = 60 e k-size-rg-mer-rig = 30 definiscono le dimensioni dei record nella griglia. k-lotto-origine = "O" e k-lotto-a-monte = "M" distinguono i tipi di nodo.

Chiamate a sottoprogrammi (CALL)

Programma Scopo
RNEWCONF Lettura configurazione causali/carico-latte
COGS68W Ricerca/selezione merce (utils68)
COGS00 Selezione lotto quando il codice corrisponde a piu' articoli
COGU78 Utilita' (utilu78)

Logica di elaborazione

Flusso principale

  1. Inizializzazione (apri): verifica se called (cogx43-called = "COGX43-CALLED"), in tal caso riceve il lotto in w-dc-lotto. Legge configurazione RNEWCONF (chiave causali/carico-lattetm-cfg-cau). Carica bitmap custom "tree". Prepara i controlli s68 (merce e mer). Inizializza la struttura tree (x-init-tree).

  2. Filtri (a4): se called, preimposta il codice lotto e salta direttamente all'elaborazione. Altrimenti attiva i campi di input: merce (a-tm-mer) e codice lotto (a-tm-cod-lotto).

  3. Risoluzione lotto (a-tm-cod-lotto-tf): se il codice inserito ha parte numerica (tm-cod-lotto(5:12) numeric), cerca direttamente in COGMERLT con la chiave primaria. Altrimenti esegue cerca-dato che usa la chiave secondaria chia2 di COGMERLT per cercare per numero lotto:

  4. Se trovato un solo record → tm-merce, tm-mag, tm-prog vengono impostati automaticamente
  5. Se trovati piu' record → richiama COGS00 per la selezione interattiva
  6. Se filtro merce e' attivo → salta i lotti non corrispondenti

  7. Visualizzazione albero (a-tree): il programma accetta eventi sul controllo tree. Gli eventi gestiti sono:

  8. k-f8k-event-tracking: mostra informazioni di tracking del nodo
  9. k-fun-inviok-event-visualizza: apre il dettaglio del documento associato al nodo

  10. Costruzione albero (x-init-tree): inizializza la struttura hidden-info con k-tree-standard, tipo "O" (origine) e imposta il primo nodo radice.

Struttura nodi albero

Ogni nodo dell'albero contiene hidden-info con: - hidden-tree: tipo albero (k-tree-standard) - hidden-tip: tipo nodo ("O" = origine, "M" = a monte, altri = a valle) - hidden-dato: dati del documento associato - hidden-prog: progressivo

Configurazione RNEWCONF

Gruppo Chiave Campo Descrizione
causali carico-latte tm-cfg-cau Causale specifica per carico latte (personalizzazione settore lattiero)

Note tecniche

  • I due file di transito (w-trs-name con prefisso # e w-trs2-name con prefisso #$) sono costruiti nella directory temp con il program-id e l'operatore.
  • La ricerca in COGMERLT usa la chiave secondaria chia2 (ordinamento per lotto) tramite st-cogmerlt-notmin-chia2 e rdnxt-cogmerlt.
  • Il filtro per merce nell'a-tm-mer e' opzionale: se lasciato a ' 00000' (k-merce-null) viene ignorato nella ricerca.
  • Il controllo di unicita' del lotto (paragrafo num-dati-merlt) conta i record corrispondenti: se piu' di 1 chiama COGS00.
  • Data la natura ricorsiva della tracciabilita', il programma usa k-max-ele-tab = 5000 (notevolmente superiore agli altri programmi con 900 elementi).
  • Supporta il flag k-f1-configura per la modifica configurazioni direttamente dalla schermata lotto.