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-callervalorizzato): parte in "Selezione"; l'Invio su una riga restituisce codice e descrizione ingrp004-out-cod/grp004-out-des.
Struttura del programma¶
Flusso principale¶
- Inizializzazione (
apri):ctr-abil,z-99-init-program,open-files,rd-azi. Determinaw-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"). - Caricamento griglia (
a4/a10-loop): svuota la griglia, scandisce GRPSYGRP dall'inizio (st-grpsygrp-notmin+rdnxt-grpsygrp) e riempie ogni riga contm-cod(=tm-cod-prec) etm-des, fino ak-max-ele-tab= 500 righe (oltre il limite emette "tabella piena"). - 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. - Conferma / salvataggio (
a1-aggiorna->b-aggiorna): valida la griglia (x-controlla-tm-tab-tutto) e, se OK, riversa le variazioni. - 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-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: 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 (letturard-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-delcontrollate 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
.selectgenerato da Screens) sono incluse viagrp004.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) confrontatm-codetm-cod-precper 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.