Vai al contenuto

COGL40 - Principi Attivi

Sorgente: cbl/cogl40.cbl | Tipo: Programma interattivo con griglia | Program-ID: COGL40

Menu:

  • Magazzino > Uscite > Presidi Sanitari > Principi Attivi

Scopo

Gestione della tabella dei principi attivi (COGPRIAT). Interfaccia a griglia con dettaglio per inserimento, modifica e cancellazione. Puo' funzionare sia standalone sia richiamato come subroutine in modalita' selezione (linkage util-g40).


Interfaccia utente

Griglia (grid-record)

Colonna Tipo Descrizione
grd-cod ZZZZ Codice principio attivo
grd-des X(40) Descrizione

Tabella interna (tab-maschera)

Campo Tipo Descrizione
tm-tab occurs k-max-ele-tab Array di righe (max 1000)
tm-cod 9(04) Codice principio attivo
tm-des X(40) Descrizione
tm-ele-old Copia del record prima della modifica
tm-pnt 9(04) Puntatore all'ultima riga caricata

Modalita'

Modalita' Descrizione
a-modalita = "S" Selezione: Invio restituisce il codice/descrizione al chiamante
a-modalita = "A" Aggiornamento: Invio apre il dettaglio per modifica

Tasti funzione

Tasto Funzione
Invio Modifica riga (modalita' A) / Seleziona riga (modalita' S)
F3 Conferma dettaglio / Cambia modalita' S/A
F8 Aiuto
S-F4 Gestione griglia (GRIDADMN)
Ctrl+A Aggiungi riga
Ctrl+E Elimina riga
ESC Esce

File e tabelle

File/Tabella Copybook Uso
FEURTAB cogfiles.cpy Tabella parametri generali
COGPRIAT cogl40.fd Principi attivi (tabella gestita)

Chiavi di accesso

Tabella Chiave Composizione Uso
COGPRIAT primaria pri-cod (4 byte) Lettura/scrittura per codice
COGPRIAT k02 (chia2) pri-desc Ricerca per descrizione (modalita' selezione con filtro)

Programmi chiamati

Programma Scopo
GRIDADMN Gestione griglia (S-F4)
COGE04W Utility export (via utilagprg)

Copybook principali

  • cogl40.select, cogl40.fd, cogl40.wrk, cogl40.prc, cogl40.decla, cogl40-01.scr -- Screens
  • cogazien.cpy -- Dati azienda
  • wgrid.cpy, utilgdad.cpy -- Supporto griglia
  • utilagprg.cpy -- Utility programma
  • utile04.cpy -- Utility export
  • utilg40.cpy -- Linkage per chiamata come subroutine

Logica di elaborazione

Caricamento dati (a10)

In base alla modalita':

  • Standalone (w-dc-called != "S"): inizializza pri-rec, START da inizio tabella
  • Richiamato (w-dc-called = "S"): usa g40-in-des per posizionarsi sulla chiave k02 (descrizione)

Ciclo RDNXT su COGPRIAT: per ogni record con pri-cod != 0, popola tm-tab. Se si supera k-max-ele-tab (1000), mostra "Tabella Piena" e interrompe.

Inserimento (a-riga-dettaglio con a-operazione = "I")

  1. Incrementa tm-pnt, posiziona il cursore sulla nuova riga
  2. Accept del codice (obbligatorio, non modificabile dopo) e descrizione
  3. Verifica conferma utente
  4. Tenta WR su COGPRIAT. Se il codice esiste gia' (stato '22'): errore descrizione duplicata

Modifica (a-riga-dettaglio con a-operazione = "M")

  1. Legge il record con lock (rd-cogpriat-lk)
  2. Accept della descrizione (codice non modificabile)
  3. Tenta RWR su COGPRIAT. Se il record e' stato cancellato nel frattempo: reinserisce con WR

Cancellazione (c-cancella)

  1. Conferma utente
  2. Legge il record con lock
  3. DELETE su COGPRIAT
  4. Compatta la tabella interna spostando le righe successive

Selezione (modalita' S)

Quando l'utente preme Invio: muove tm-cod e tm-des nelle variabili di output g40-out-cod e g40-out-des, poi esce.


Note

  • Non e' possibile eliminare l'ultima riga (controllo tm-pnt = 2, dove 2 include la riga intestazione della griglia).
  • Il programma rileva se viene richiamato da un'altra funzione tramite il linkage g40-called / g40-caller.
  • L'operazione di inserimento che trova il codice gia' esistente viene convertita automaticamente in modifica (con avviso).

Documentazione tecnica -- 2026-05-01