Vai al contenuto

COGT71 - Evidenza commerciale articoli

Panoramica

Programma GUI (interfaccia a griglia moderna) per la gestione della tabella "Evidenza commerciale articoli", memorizzata in COGTABEL con tipo tabella "FW". Ogni voce e' composta da un codice evidenza (2 caratteri), una descrizione e un codice host (codice per sistema esterno/host). La griglia consente di visualizzare, inserire, modificare ed eliminare le voci direttamente in linea (aggiungi riga Ctrl-A, elimina riga Ctrl-E).

Il programma funziona in due modalita', determinate da come viene avviato: - standalone (da menu): parte in modalita' "Aggiornamento", con salvataggio tramite F3; - richiamato (come help/selezione da un altro programma, cogt71-called = "COGT71" con cogt71-caller valorizzato): parte in modalita' "Selezione", dove l'operatore sceglie una voce con Invio e la restituisce al chiamante in cogt71-out-cod / cogt71-out-des; F3 alterna tra selezione e aggiornamento.

Posizione nel menu

Menu Percorso
Magazzino Archivi & Tabelle > Tabelle > Evidenza commerciale articoli

Struttura del programma

File e tabelle utilizzati

File/Tabella Tipo Descrizione
FEURTAB Input Tabella di sistema (nomi file)
COGTABEL I-O Tabella generica del gestionale; le voci "Evidenza commerciale articoli" sono i record con tipo "FW"

Copybook principali

Copybook Descrizione
feurtab.fd / cogfiles.cpy SELECT/FD e record della tabella di sistema
cogt71.select / cogt71.fd SELECT e File Description (generati da Screens; il FD referenzia COGTABEL)
cogt71.wrk / cogt71.decla / cogt71.prc Working storage, declaratives e procedure di I/O generati da Screens
cogt71-01.scr Screen section (griglia e-tm-tab e maschera)
utilcogt71.cpy Area di linkage util-cogt71 (parametri cogt71-caller, cogt71-called, cogt71-out-cod, cogt71-out-des)
cogtabel.cpy / cogtabel.k01 Record COGTABEL e chiave primaria (campi euta-tipo-x, euta-cod, euta-evc-des, euta-evc-codice-host)
wgrave.cpy / wnscr.cpy / wopenf.cpy / wstato.cpy Working storage errori, video, apertura file, stato I/O
cogazien.cpy Dati azienda
wgrid.cpy / utilgdad.cpy Gestione griglia e interfaccia GRIDADMN
wcont.cpy / wcont1.cpy Aree di comunicazione standard tra programmi
grave.cpy / stato.cpy / stato1.cpy / winmsg.cpy Gestione errori gravi, stato verbi, messaggi
mmmask.cpy Gestione maschera (rd-msk-pop, z-99-init-program, z-99-exit-program)
opengen.cpy Routine generica di apertura file (open-files, z-close-files)

Chiamate a sottoprogrammi (CALL)

Programma Scopo
GRIDADMN Gestione e personalizzazione della griglia paginata (preparazione colonne, Shift-F4 personalizzazione layout)

Logica di elaborazione

1. Inizializzazione (apri)

Imposta nome programma per help/errori, verifica l'abilitazione (ctr-abil), inizializza il programma (z-99-init-program), apre i file e legge i dati azienda. In base ai parametri di linkage determina se e' stato richiamato da un altro programma (w-dc-called = "S" quando cogt71-called = "COGT71" e cogt71-caller valorizzato). Abilita i tasti funzione: se richiamato, F3 selezione/modifica; altrimenti F3 aggiorna. Attiva anche Sf4 (griglia), Ctrl-A (aggiungi) e Ctrl-E (elimina). Imposta il titolo "Evidenza commerciale articoli", prepara la griglia (z-prepara-tm-grid) e i controlli, e imposta la modalita' iniziale (a-modalita = "S" selezione se richiamato, "A" aggiornamento se standalone).

2. Caricamento griglia (a4-a30)

Svuota la griglia e i controlli, quindi carica le voci scandendo COGTABEL per tipo "FW": si posiziona con st-cogtabel-notmin e scorre con rdnxt-cogtabel finche' euta-tipo-x = "FW" (fino a k-max-ele-tab = 500 righe). Per ogni record valorizza nella griglia il codice (tm-cod), il codice precedente per il confronto di aggiornamento (tm-cod-prec), la descrizione (tm-des, da euta-evc-des) e il codice host (tm-cod-host, da euta-evc-codice-host). Costruisce la tabella video (z-costruisci-tm-tab) e attiva i tasti funzione della griglia.

3. Gestione eventi griglia (a-grid / a-accept-grid)

Ciclo principale di accept sulla griglia (z-99-accept-tm-tab), che gestisce: - ESC: uscita previa test-wesc (con eventuale richiesta di salvataggio se ci sono modifiche pendenti, fl-esc-agg); - mouse / doppio click / invio su cella: emula l'Invio (selezione); - Shift-F4: personalizzazione layout griglia tramite GRIDADMN; - F3: in modalita' aggiornamento salva (a1-aggiorna) e, se richiamato, torna in selezione; in modalita' selezione passa ad aggiornamento; controlla le abilitazioni a inserire/modificare (w-abi-ins, w-abi-agg); - Invio: in modalita' selezione, restituisce codice e descrizione della riga scelta al chiamante (cogt71-out-cod, cogt71-out-des) ed esce; - Ctrl-A: aggiunge una riga (z-aggiungi-riga-tm-tab) in modalita' aggiornamento; - Ctrl-E: elimina la riga corrente (previa abilitazione w-abi-del e conferma), azzerando i dati e conservando tm-cod-prec per la successiva cancellazione fisica.

4. Validazioni di cella

  • x-controlla-tm-cod: verifica che il codice evidenza non sia duplicato nella griglia;
  • x-controlla-tm-des: la descrizione e' obbligatoria se il codice e' valorizzato;
  • x-controlla-tm-cod-host: controllo sul codice host;
  • z-event-tm-tab-ep: in modalita' selezione blocca l'ingresso in cella; verifica l'abilitazione alla modifica sulle righe gia' esistenti.

5. Salvataggio (a1-aggiorna / b-aggiorna)

a1-aggiorna esegue prima i controlli complessivi (x-controlla-tm-tab-tutto); se validi, chiama b-aggiorna. Questo scorre tutte le righe della griglia e, confrontando codice attuale (tm-cod) e codice precedente (tm-cod-prec), decide l'operazione su COGTABEL: - codice attuale vuoto e precedente valorizzato -> cancella (b3-cancella, del-cogtabel); - codice = precedente e riga modificata -> modifica (b2-modifica, rwr-cogtabel); - precedente vuoto -> inserisci (b1-inserisci, con wr-cogtabel/rwr-cogtabel); - codice diverso dal precedente -> cancella la vecchia e inserisci la nuova.

In inserimento, se il codice esiste gia' chiede conferma di sovrascrittura; in modifica, se il record non esiste piu' chiede se ricrearlo. Tutti i record scritti/riscritti hanno euta-tipo-x = "FW", euta-cod = codice evidenza, euta-evc-des = descrizione, euta-evc-codice-host = codice host.

6. Chiusura (fine / z-chiudi)

Chiude i file (z-close-files), chiude la finestra, esegue z-99-exit-program ed esce con exit program.

Note tecniche

  • Tabella COGTABEL tipo "FW": le voci "Evidenza commerciale articoli" sono record di COGTABEL con euta-tipo-x = "FW". I campi specifici sono definiti nel copybook cogtabel.cpy: euta-evc-des (descrizione, 40 char) e euta-evc-codice-host (codice host, 10 char). Il codice evidenza (euta-cod, 10 char) e' usato nella griglia sui primi 2 caratteri (cogt71-out-cod e' pic x(02)).
  • Doppia modalita' (selezione/aggiornamento): lo stesso programma serve sia da manutenzione tabella (menu, modalita' aggiornamento) sia da help/selezione richiamato da altri programmi (modalita' selezione, restituisce la voce scelta in util-cogt71). La modalita' e' pilotata da w-dc-called e commutata con F3.
  • Aggiornamento differito con confronto cod/cod-prec: le modifiche in griglia non aggiornano immediatamente COGTABEL; il salvataggio (F3) confronta ogni riga con il codice precedente memorizzato all'ingresso (tm-cod-prec) per decidere inserimento/modifica/cancellazione. Questo consente rinomine (cancella+inserisci) e cancellazioni (svuotamento riga).
  • Programma generato da Screens: struttura e routine di I/O (SELECT, FD, griglia, procedure) provengono dai file cogt71.select/.fd/.wrk/.decla/.prc e dalla screen cogt71-01.scr, generati dal tool Screens (versione indicata 2.13.0) e situati in cbl/screens/. La griglia e' amministrata da GRIDADMN (Shift-F4 per la personalizzazione delle colonne).
  • Abilitazioni: il programma rispetta i flag di abilitazione utente w-abi-ins (inserimento), w-abi-agg (modifica) e w-abi-del (cancellazione), bloccando le rispettive operazioni con messaggio se non abilitate.