Vai al contenuto

GRP004 - Gruppi di classi

Sorgente: cbl/grp004.cbl | Tipo: Programma interattivo GUI con griglia editabile (anche richiamabile via CALL come help/selezione) | Program-ID: GRP004

Menu:

  • Sistema > Configurazione > Gruppi di aziende > Gruppi di classi
  • Clinica > Archivi > Gruppi di classi

Scopo

Gestisce l'anagrafica dei gruppi di classi (tabella GRPSYGRP), ovvero i gruppi di dati che possono essere esportati/sincronizzati nell'ambito della gestione gruppi di aziende. Ogni gruppo e' identificato da un codice fino a 10 caratteri e da una descrizione; esempi previsti sono CRM-SK (configurazione schede CRM), CRM-INF (informazioni CRM), CRM-NOM (nominativi CRM). Questi codici sono poi referenziati dalle esportazioni (ad es. GRE001) tramite la classe/suddivisione.

L'interfaccia e' una griglia editabile (pattern tm-tab / GRIDADMN): l'operatore inserisce/modifica/elimina le righe e alla conferma (F3) le variazioni sono riversate sulla tabella confrontando codice attuale e codice precedente di ciascuna riga.

Modalita' di funzionamento:

  • Standalone da menu: parte in "Aggiornamento", F3 salva e chiude.
  • Chiamato come help/selezione (grp004-called = k-program-id, grp004-caller valorizzato): parte in "Selezione"; l'Invio su una riga restituisce codice e descrizione in grp004-out-cod / grp004-out-des.

Struttura del programma

Flusso principale

  1. Inizializzazione (apri): ctr-abil, z-99-init-program, open-files, rd-azi. Determina w-dc-called, abilita i tasti (Invio, F3 aggiorna/selezione/modifica, F8 aiuto, Shift-F4 griglia, Ctrl-A/Ctrl-E), imposta il titolo "Sincronizzazione: Gruppi di Classi", prepara la griglia (z-prepara-tm-grid -> GRIDADMN "Prepara").
  2. Caricamento griglia (a4 / a10-loop): svuota la griglia, scandisce GRPSYGRP dall'inizio (st-grpsygrp-notmin + rdnxt-grpsygrp) e riempie ogni riga con tm-cod (= tm-cod-prec) e tm-des, fino a k-max-ele-tab = 500 righe (oltre il limite emette "tabella piena").
  3. Gestione griglia (a-grid / a-accept-grid): accept sulla griglia, gestione Esc, emulazione Invio su doppio click/enter, Shift-F4 (GRIDADMN interattivo), F3, Invio, Ctrl-A, Ctrl-E.
  4. Conferma / salvataggio (a1-aggiorna -> b-aggiorna): valida la griglia (x-controlla-tm-tab-tutto) e, se OK, riversa le variazioni.
  5. Chiusura (fine / z-chiudi): z-close-files, chiusura finestra, z-99-exit-program.

Salvataggio (b-aggiorna)

Per ogni riga confronta tm-cod e tm-cod-prec:

  • tm-cod vuoto e tm-cod-prec valorizzato: cancella (b3-cancella);
  • tm-cod = tm-cod-prec: modifica (b2-modifica);
  • tm-cod valorizzato e tm-cod-prec vuoto: inserisce (b1-inserisci);
  • tm-cod <> tm-cod-prec: cancella il vecchio e inserisce il nuovo.

b1-inserisci verifica la preesistenza (chiede conferma sovrascrittura), b2-modifica gestisce il record scomparso (chiede se ricrearlo), b3-cancella ignora il record gia' assente.

Controlli e abilitazioni

  • x-controlla-tm-cod: in inserimento segnala il codice gia' presente (lettura rd-grpsygrp-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 esistenti blocca la modifica in assenza di abilitazione (w-abi-agg = "N").
  • Abilitazioni w-abi-ins / w-abi-agg / w-abi-del controllate su F3, Ctrl-A, Ctrl-E.

Tabelle e file

File logico Chiave / accesso Descrizione
FEURTAB - Tabella di sistema
GRPSYGRP primaria ao-syg-chia1 (ao-syg-cod, 10 car.); scansione st-grpsygrp-notmin + rdnxt-grpsygrp Gruppi di classi / gruppi di dati esportabili (codice ao-syg-cod, descrizione ao-syg-des)

COPY incluse

Working-Storage

grp004.wrk, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilgdad.cpy, wgrid.cpy

Linkage

wcont.cpy, wcont1.cpy, utilgrp004.cpy (parametri grp004-caller, grp004-called, grp004-in-cod, grp004-out-cod, grp004-out-des)

Procedure Division

grp004.decla, grp004-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, grp004.prc

Le routine di I/O di GRPSYGRP (dal file dichiarato nel .select generato da Screens) sono incluse via grp004.prc.


CALL a sottoprogrammi

Programma Scopo
GRIDADMN Gestione della griglia editabile e-tm-tab (operazione "Prepara" e chiamata interattiva su Shift-F4)
Y* Gestore tabella generato per GRPSYGRP (routine rd-/wr-/rwr-/del-/st-/rdnxt-grpsygrp incluse via grp004.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: la persistenza (b-aggiorna) confronta tm-cod e tm-cod-prec per decidere insert/update/delete/rinomina, come nell'intera famiglia GRP0xx.
  • Struttura identica a GRP001: GRP004 e' funzionalmente gemello di GRP001 (griglia codice/descrizione su singola tabella), con l'unica differenza della tabella gestita (GRPSYGRP anziche' GRPAZTIP) e del codice a 10 caratteri anziche' 1.
  • Doppio ruolo: da menu e' un editor, via CALL diventa help/selezione; il comportamento e' pilotato da w-dc-called, che sostituisce F3 aggiorna con F3 selezione/modifica e attiva il ritorno del codice all'Invio.
  • Limite griglia: massimo 500 gruppi in memoria (k-max-ele-tab).
  • I codici gestiti qui sono il riferimento delle esportazioni del gruppo (classe/suddivisione); vedi Gruppi di aziende - Panoramica.