COGD20 — Gestione note post-it¶
Sorgente: cbl/cogd20.cbl | Tipo: Programma interattivo a griglia (gestione tabella) | Program-ID: COGD20
Menu: Contabilita' > Archivi & Tabelle > Varie > Post-it ; Contabilita' > Unione soci/clienti > Archivi & Tabelle > Tabelle > Post-it ; Magazzino > Archivi & Tabelle > Varie > Post-It
Scopo¶
Gestisce in griglia i post-it (note libere colorate) associati a un'anagrafica (cliente/fornitore), a un prodotto o a un'area generica. L'operatore filtra per tipo/codice anagrafico o per prodotto e vede la lista dei post-it esistenti; puo' aggiungerne di nuovi (CTRL-A), cancellarli logicamente (CTRL-E), ripristinarli (F9), modificarne testo e colore, e sincronizzarli verso l'APP (KPN). I dati sono persistiti sulla tabella COGPOSTT. La visualizzazione di dettaglio del singolo post-it e' delegata al sottoprogramma POSTIT, richiamato dai gestori di aiuto anagrafica/prodotto (COGS65W/COGS68W).
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGPOSTT | cogpostt.cpy (.k01, .k02) |
Tabella post-it: chiave ptt-chia1 (ana-tip + ana-cod + merce + area + progressivo); chiave secondaria .k02 per la ricerca su area generica |
| COGGEANA | (in feurtab) | Anagrafica cliente/fornitore, per risolvere il nome (rd-coggeana) |
| COGMERCI | (in feurtab) | Anagrafica prodotto, per validare la merce (rd-cogmerci) |
| T-GRID-DET | wgrid.cpy / cogd20.select |
File indicizzato di transito per la griglia di dettaglio (t-gor-r-rec) |
| feurtab | cogfiles.cpy |
Contenitore file indicizzati standard |
I record post-it sono classificati per area (ptt-area, es. "C" = Contabilita') e per un progressivo (ptt-prog) univoco all'interno della chiave anagrafica/merce/area.
Parametri di linkage (chiamata da altri programmi)¶
procedure division using stringhe wd20-util. L'area wd20-util (definita inline nella linkage) permette ad altri programmi di aprire COGD20 gia' posizionato:
wd20-chiamante— codice del programma chiamante (es.COGE08C,COGE08F,COGE06UN,COGV06NO);wd20-ana-tip/wd20-ana-cod— anagrafica su cui posizionarsi;wd20-merce— prodotto (gruppo/sotto/codice) per la chiamata da anagrafica merce.
Quando wd20-chiamante e' uno dei valori noti, il programma imposta w-dc-called = "S" e salta la fase di selezione dei filtri andando direttamente al caricamento dati (a-leggi-dati); all'uscita torna al chiamante anziche' ripresentare la maschera di selezione.
Flusso principale¶
apri(main): init programma, lettura configurazioni (x99-confi), apertura file, mappatura dei parametri di linkage inw-dati-called, costruzione maschera/griglia, creazione del pulsante custom "Ripristina Postit (F9)" e del menu contestuale della griglia.a4: reset della griglia e impostazione dei filtri (tipo anagrafico predefinito "C"). Se chiamato da COGE08*/COGV06NO, precarica anagrafica/merce dal linkage.- Accept dei filtri:
a-tm-ana-tip(tipo, gestito viaCOGS60),a-tm-ana-cod(codice, aiuto viaCOGS65W),a-tm-merce(prodotto, aiuto viaCOGS68W). a-leggi-dati→z-grid-det-crea-transito→carica-dati: leggeCOGPOSTTconst-cogpostt-notmin(chiave primaria per cliente/fornitore) oppurest-cogpostt-notmin-chia2(chiave secondaria per area generica) e riempie il file di transito, saltando i cancellati salvo configurazione "visualizza cancellati".a-grid: gestione interattiva della griglia (aggiunta/cancellazione/ripristino righe, modifica note e colore, menu pop-up, export Excel vias-f5).- Su F3 con conferma:
b-aggiornascrive/riscrive i post-it suCOGPOSTT.
Aggiornamento e sincronizzazione¶
Il paragrafo b-aggiorna (chiamato con perform b-aggiorna thru ex-b-aggiorna) scorre il file di transito e per ogni riga significativa:
- se manca il progressivo, lo calcola come massimo+1 sulla chiave (scansione
st-cogpostt-notmin/rdnxt-cogpostt); - inserisce (
wr-cogpostt) il record se non esiste, altrimenti lo aggiorna (rwr-cogpostt) solo se cambiano testo, colore, flag di cancellazione o flag di sincronizzazione; - dopo ogni scrittura chiama
x-sincronizza-kpn, che invoca SWN115 con operazioneESPORTA-KEYper allineare il post-it verso l'APP/KPN.
Clonazione su altri ambienti¶
Se il post-it e' aggiornato per un cliente e la configurazione copiaana e' attiva, clona-anagrafica-su-altri-ambienti propaga la modifica sugli altri ambienti chiamando ripetutamente la subroutine copiaana (operazioni clone / close-files) sulle destinazioni configurate. Esiste anche il paragrafo cancella-anagrafica-su-altri-ambienti (operazione delete).
Configurazioni (RNEWCONF)¶
Il paragrafo x99-confi legge (via RNEWCONF):
ASSIST/post-it-assist;abilita/copiaana,copiaana-conf,copiaana-source-name,copiaana-destination-name(fino a 10 destinazioni per la clonazione su altri ambienti);POSTIT/COLORE-DEFAULT(colore predefinito dei nuovi post-it);postit/cogd20-visualizza-cancellati(se "S", mostra anche i post-it cancellati logicamente, abilitando il ripristino con F9).
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGS65W | Aiuto/ricerca codice anagrafico; richiama internamente il viewer POSTIT |
| COGS68W | Aiuto/ricerca prodotto; richiama internamente il viewer POSTIT |
| COGS60 | Gestione combo/radio dei tipi (tipo anagrafico) |
| GRIDADMN | Configurazione/personalizzazione griglia |
| SWN115 | Sincronizzazione post-it verso APP/KPN (ESPORTA-KEY) |
| copiaana | Clonazione/cancellazione anagrafica su altri ambienti |
| COGI58 / GETCOLOR | Scelta colore (COGI58 per l'ambiente Unione Agrit.-Bologna, altrimenti GETCOLOR standard) |
| COGU10W | Divisa di conto |
Il viewer di dettaglio del singolo post-it e' POSTIT: non e' chiamato direttamente da COGD20 ma dai gestori COGS65W/COGS68W. Per forzare l'uscita da POSTIT gli entry-point di COGD20 impostano s65-area/s68-area a 'X'.
Note¶
- La griglia lavora sempre su un file di transito indicizzato (
T-GRID-DET), che viene chiuso e cancellato (delete file t-grid-det) alla chiusura del programma (fine/z-chiudi). - Il flag
dst-fl-canc/ptt-fl-cancgestisce la cancellazione logica (valore "C"); il record rimane fisicamente presente. - I controlli impediscono di inserire post-it su area "Contabilita'" quando e' selezionato un prodotto, e segnalano post-it duplicati per la stessa combinazione area+progressivo.