Vai al contenuto

CRM036 - Configurazione stampe scheda CRM

Sorgente: cbl/crm036.cbl | Program-ID: CRM036 | Tipo: Programma interattivo GUI (gestione diretta su griglia)

Menu: CRM > Stampe > Configurazione report


Scopo

Definisce le stampe (report) associate alla scheda CRM, gestite per tipologia cliente. Ogni riga della griglia rappresenta una stampa configurata su CRMSTNTS: codice stampa, descrizione, tipo (Semplice/Tabellare), modello di layout e, per le stampe tabellari, il filtro applicato (codice filtro e tipologia cliente del filtro). Il programma consente inserimento, modifica e cancellazione delle stampe direttamente in griglia, con aggiornamento differito al momento della conferma (F3). Puo' essere richiamato in modalita' selezione da altri programmi.

Da ciascuna riga (F10) si accede alla configurazione di dettaglio della singola stampa tramite CRM037.


File e tabelle

File/Tabella Tipo Modalita' Descrizione
FEURTAB ISAM I-O Tabella features/abilitazioni utente
CRMSTNTS ISAM I-O Definizione stampe scheda (chiave: snt-tcl + snt-cod)
CRMTIPCL ISAM Input Tipologie cliente (validazione tcl-cod, descrizione)
CRMFLTTS ISAM Input Filtri per stampe tabellari (chiave flt-tip + flt-cod, descrizione e tipologia associata)

Copybook utilizzate

Copybook Descrizione
crm036.select, crm036.fd, crm036.wrk SELECT, FD, working storage (Screens)
crm036-01.scr, crm036.decla, crm036.prc Screen, declaratives, procedure I/O
feurtab.fd, cogfiles.cpy Record FEURTAB
k-tipi-cogtabel.cpy Costanti tipi COGTABEL
utilncnf.cpy Linkage RNEWCONF
wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy Working storage standard
cogazien.cpy Dati azienda
wgrid.cpy, utilgdad.cpy Supporto griglia editabile (GRIDADMN)
utilu20.cpy Supporto griglia diretta
utilcrm010.cpy, utilcrm019.cpy, utilcrm037.cpy Linkage CRM010 (tipologia cliente), CRM019 (filtro), CRM037 (config stampa)
wcont.cpy, wcont1.cpy, utilcrm036.cpy Linkage standard e linkage di chiamata (called/caller, in/out)
grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy Infrastruttura standard

Logica di elaborazione

Inizializzazione (apri): Init programma, apertura file. Se chiamato (crm036-called = CRM036 con caller valorizzato) entra in modalita' "S" (selezione) e riceve la tipologia di filtro crm036-tcl; altrimenti modalita' "A" (aggiornamento). Configura i tasti (F1 configura, Invio, F3 selezione/modifica/aggiorna secondo modalita', F8 aiuto, Shift+F4 griglia, Ctrl+A aggiungi, Ctrl+E elimina). Carica un pulsante custom F10 (configura stampa).

Caricamento griglia (a4 -> a10-loop): Scansione CRMSTNTS filtrata per tipologia (snt-tcl = tm-tcl, se valorizzata). Per ogni record carica in griglia codice tipologia (con descrizione da CRMTIPCL), codice stampa, sequenza, descrizione, tipo, modello e dati filtro. Memorizza per ogni riga i valori "precedenti" (tm-cod-prec, tm-tcl-prec) usati poi in fase di aggiornamento per distinguere insert/modify/delete.

Editing in griglia (a-grid / a-accept-grid): Gestione diretta delle celle (framework griglia editabile U20/GRIDADMN). Comportamenti: - Invio in modalita' "S" -> ritorna al chiamante (crm036-tcl, crm036-cod). - Ctrl+A -> aggiunge una riga vuota (z-aggiungi-riga-tm-tab, tipo default "S"). - Ctrl+E -> cancella la riga con conferma (azzera i dati mantenendo i valori "prec" per la successiva cancellazione fisica). - F10 -> CRM037 configurazione di dettaglio della stampa selezionata (visibile solo su righe gia' esistenti). - F8 su cella tipologia/filtro -> ricerca: CRM010 (tipologia cliente) o CRM019 (filtro). - Shift+F4 -> GRIDADMN personalizzazione. - F1 -> modifica configurazione RNEWCONF.

Controlli di cella (x-controlla-tm-*): - Codice stampa: obbligatorio e non ripetibile nella stessa tipologia (a5-controlla-stesso-codice). - Descrizione: obbligatoria se la riga ha un codice. - Tipologia cliente: deve esistere su CRMTIPCL. - Modello: obbligatorio. - Codice filtro / tipologia filtro: obbligatori e validati (CRMFLTTS / CRMTIPCL) solo per le stampe di tipo Tabellare (tm-tip = "T"); le celle filtro sono editabili solo per tipo "T".

Aggiornamento (F3 -> a1-aggiorna -> b-aggiorna): In modalita' aggiornamento, verifica prima tutti i controlli (x-controlla-tm-tab-tutto); se tutto valido, riversa la griglia su CRMSTNTS confrontando codice attuale e precedente riga per riga: - COD = COD-PREC e riga modificata -> modifica (b2-modifica, rwr-crmstnts). - COD-PREC vuoto -> inserimento (b1-inserisci, wr-crmstnts; se il record esiste gia' chiede sovrascrittura). - COD vuoto -> cancellazione (b3-cancella, del-crmstnts). - COD <> COD-PREC -> cancellazione del precedente + inserimento del nuovo.

In modalita' called/selezione, F3 alterna tra selezione e aggiornamento (con eventuale salvataggio se ci sono modifiche pendenti, fl-esc-agg).

Chiamate a sottoprogrammi

Programma Utilizzo
CRM037 Configurazione di dettaglio della singola stampa (F10)
CRM010 Ricerca/selezione tipologia cliente (F8 su cella tipologia)
CRM019 Ricerca/selezione filtro stampa tabellare (F8 su cella filtro)
GRIDADMN Gestione griglia editabile (prepara, add/modify, svuota, personalizzazione)
RNEWCONF Lettura configurazione

Configurazione (RNEWCONF)

Gruppo/chiave letta in x99-confi (pacchetto C):

Gruppo Chiave Uso
clipot abilitazione-pagine-scheda Abilitazione pagine scheda (tm-cfg-abil-pagine-scheda)

Gestione errori

  • Al caricamento la griglia viene validata interamente (x-controlla-tm-tab-tutto); se almeno una riga e' in errore viene emesso un avviso.
  • Codice stampa duplicato nella stessa tipologia o campi obbligatori mancanti bloccano l'aggiornamento con messaggio.
  • In inserimento, se la coppia tipologia/codice esiste gia' su CRMSTNTS viene chiesta conferma di sovrascrittura; in modifica, se il record non esiste piu' viene chiesto se ricrearlo.
  • Cancellazione soggetta al flag di abilitazione (w-abi-del); modifica di righe esistenti soggetta a w-abi-agg.

Note implementative

  • Autore: Andrea Parmeggiani (Eurosystem).
  • k-max-ele-tab = 500: dimensione massima della tabella righe in griglia.
  • L'aggiornamento e' differito e batch: le operazioni fisiche su CRMSTNTS avvengono solo alla conferma F3, decise dal confronto tra valori correnti e "precedenti" di ogni riga (pattern insert/modify/delete su griglia editabile).
  • Le celle in chiave (tipologia, codice stampa) sono modificabili solo in inserimento (z-tm-tab-*-be-ep); le celle di filtro sono abilitate solo per le stampe tabellari.
  • configuration section: usa source-computer/object-computer pc-sperry.