GRP001 - Tipi azienda (gruppi di aziende)¶
Sorgente: cbl/grp001.cbl | Tipo: Programma interattivo GUI con griglia editabile (anche richiamabile via CALL come help/selezione) | Program-ID: GRP001
Menu:
- Sistema > Configurazione > Gruppi di aziende > Tipi azienda
- Clinica > Archivi > Tipi azienda
Scopo¶
Gestisce l'anagrafica delle tipologie di azienda che compongono un gruppo di aziende (tabella GRPAZTIP). Ogni tipo azienda e' identificato da un codice a un carattere e da una descrizione; per l'installazione Apollonia i tipi previsti sono H = Holding, P = Pdalab, C = Clinica, L = Laboratorio esterno.
L'interfaccia e' una griglia editabile (pattern standard tm-tab / GRIDADMN) in cui l'operatore inserisce, modifica ed elimina le righe; alla conferma (F3) le variazioni vengono riversate sulla tabella confrontando codice attuale e codice precedente di ciascuna riga.
Il programma opera in due modalita':
- Standalone da menu (nessun parametro di chiamata): all'ingresso e' direttamente in modalita' "Aggiornamento" e F3 salva e chiude.
- Chiamato come help/selezione (
grp001-called = k-program-id,grp001-callervalorizzato): parte in modalita' "Selezione", con F3 che alterna Selezione/Aggiornamento; l'Invio (o doppio click) su una riga restituisce codice e descrizione al chiamante ingrp001-out-cod/grp001-out-des. Tipico chiamante: GRP002 (help sulla colonna tipo azienda).
I dati identificativi (data/ora/operatore/programma di inserimento e modifica) sono valorizzati automaticamente dalle routine generate wr-grpaztip / rwr-grpaztip.
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri):ctr-abil,z-99-init-program,open-files,rd-azi. Determina la modalita' di chiamata (w-dc-called), abilita i tasti funzione (Invio, F3 aggiorna/selezione/modifica, F8 aiuto, Shift-F4 griglia, Ctrl-A aggiungi, Ctrl-E elimina), imposta il titolo "Gestione Tipi Azienda", prepara la griglia (z-prepara-tm-grid-> GRIDADMN "Prepara") e costruisce i controlli. - Caricamento griglia (
a4/a10-loop): svuota la griglia, scandisce GRPAZTIP dall'inizio (st-grpaztip-notmin+rdnxt-grpaztip) e riempie ogni riga contm-cod(=tm-cod-prec) etm-des, fino ak-max-ele-tab= 500 righe (oltre il limite emette il messaggio "tabella piena"). - Gestione griglia (
a-grid/a-accept-grid): accept sulla griglia (z-99-accept-tm-tab), gestione Esc (test-wesc), emulazione Invio su doppio click/enter, Shift-F4 (GRIDADMN interattivo), F3, Invio, Ctrl-A, Ctrl-E, e i controlli particolari di cella (z-usa-tf-tm-tab). - Conferma / salvataggio (
a1-aggiorna->b-aggiorna): valida la griglia (x-controlla-tm-tab-tutto) e, se OK, riversa le variazioni sulla tabella. - Chiusura (
fine/z-chiudi):z-close-files, chiusura finestra,z-99-exit-program.
Salvataggio (b-aggiorna)¶
Scorre tutte le righe della griglia e, in base al confronto tra tm-cod (codice attuale) e tm-cod-prec (codice presente all'ultima lettura):
tm-codvuoto etm-cod-precvalorizzato: cancella (b3-cancella);tm-cod = tm-cod-prec: modifica (b2-modifica);tm-codvalorizzato etm-cod-precvuoto: inserisce (b1-inserisci);tm-cod <> tm-cod-prec(entrambi valorizzati): cancella il vecchio e inserisce il nuovo.
b1-inserisci verifica la preesistenza del codice (chiede conferma sovrascrittura), b2-modifica gestisce il caso di record nel frattempo scomparso (chiede se ricrearlo), b3-cancella ignora silenziosamente il record gia' assente.
Controlli e abilitazioni¶
x-controlla-tm-cod: in inserimento segnala il codice gia' presente (letturard-grpaztip-lk).x-controlla-tm-des: descrizione obbligatoria se il codice e' valorizzato.z-event-tm-tab-ep: in modalita' "Selezione" impedisce l'entrata in cella; sulle righe gia' esistenti blocca la modifica se manca l'abilitazione (w-abi-agg = "N").- Le abilitazioni utente (
w-abi-ins/w-abi-agg/w-abi-del) sono controllate su F3, Ctrl-A e Ctrl-E.
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| GRPAZTIP | primaria ao-azt-chia1 (ao-azt-cod, 1 car.); scansione st-grpaztip-notmin + rdnxt-grpaztip |
Tipologie di azienda del gruppo (codice ao-azt-cod, descrizione ao-azt-des) |
COPY incluse¶
Working-Storage¶
grp001.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilgdad.cpy, wgrid.cpy, utilu20.cpy
Linkage¶
wcont.cpy, wcont1.cpy, utilgrp001.cpy (parametri grp001-caller, grp001-called, grp001-in-cod, grp001-out-cod, grp001-out-des)
Procedure Division¶
grp001.decla, grp001-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, grp001.prc
La catena delle routine di I/O
grpaztip.k01(e il resto dei file dichiarati nel.selectgenerato da Screens) e' inclusa tramitegrp001.prc.
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| GRIDADMN | Gestione della griglia editabile e-tm-tab (operazione "Prepara" alla costruzione, chiamata interattiva su Shift-F4) |
| Y* | Gestore tabella generato per GRPAZTIP (routine rd-/wr-/rwr-/del-/st-/rdnxt-grpaztip incluse via grp001.prc) |
Configurazioni RNEWCONF¶
Il programma non contiene un paragrafo di lettura di chiavi RNEWCONF applicative: non usa RNEWCONF ne' utilncnf.cpy.
Note tecniche¶
- Griglia con diffing codice/codice-precedente: l'intera logica di persistenza (
b-aggiorna) si basa sul confronto tratm-codetm-cod-prec; questo e' il pattern standard delle maschere a griglia di manutenzione tabella del gestionale (comune a GRP002 e GRP004). - Doppio ruolo del programma: da menu e' un editor a tutti gli effetti; via CALL diventa una finestra di help/selezione. La distinzione e' pilotata solo da
w-dc-called, che a sua volta abilita/disabilita i tasti F3 selezione/modifica anziche' F3 aggiorna e attiva il ritorno del codice selezionato all'Invio. - Limite griglia: massimo 500 tipi azienda in memoria (
k-max-ele-tab); oltre il limite il caricamento si interrompe con avviso. - Il tasto F8 (aiuto di cella) e' dichiarato ma i relativi paragrafi di attivazione/uso (
z-gestione-tf-tm-tab-ep/z-usa-tf-tm-tab-ep) sono vuoti: su questa maschera non ci sono celle con help attivo.