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¶
-
Inizializzazione (
apri): verifica se called (cogx43-called = "COGX43-CALLED"), in tal caso riceve il lotto inw-dc-lotto. Legge configurazione RNEWCONF (chiavecausali/carico-latte→tm-cfg-cau). Carica bitmap custom "tree". Prepara i controlli s68 (merce e mer). Inizializza la struttura tree (x-init-tree). -
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). -
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 eseguecerca-datoche usa la chiave secondariachia2di COGMERLT per cercare per numero lotto: - Se trovato un solo record →
tm-merce,tm-mag,tm-progvengono impostati automaticamente - Se trovati piu' record → richiama COGS00 per la selezione interattiva
-
Se filtro merce e' attivo → salta i lotti non corrispondenti
-
Visualizzazione albero (
a-tree): il programma accetta eventi sul controllo tree. Gli eventi gestiti sono: k-f8→k-event-tracking: mostra informazioni di tracking del nodo-
k-fun-invio→k-event-visualizza: apre il dettaglio del documento associato al nodo -
Costruzione albero (
x-init-tree): inizializza la strutturahidden-infoconk-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-namecon prefisso#ew-trs2-namecon 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) tramitest-cogmerlt-notmin-chia2erdnxt-cogmerlt. - Il filtro per merce nell'
a-tm-mere' 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-configuraper la modifica configurazioni direttamente dalla schermata lotto.