COGA02 - Reparti Cassa (gestione)
Panoramica
Programma interattivo GUI per la gestione della tabella Reparti Cassa (COGTABEL con euta-tipo = 50). Presenta i reparti in una griglia con possibilita' di inserimento, modifica e cancellazione. Supporta la modalita' di selezione quando richiamato da altri programmi tramite linkage (util-a02).
| Menu |
Percorso |
| Magazzino |
Archivi & Tabelle > Tabelle > Reparti Cassa |
Struttura del programma
File e tabelle utilizzati
| File/Tabella |
Tipo |
Descrizione |
| FEURTAB |
Input |
Tabella di sistema |
| COGTABEL |
I-O |
Tabella generica — usa tipo 50 (reparti cassa) e tipo 67 (per validazione codice IVA) |
Chiave COGTABEL utilizzata
La chiave primaria di COGTABEL e' composta da euta-tipo + euta-cod. Per i reparti cassa:
euta-tipo = 50 (costante k-euta-tipo)
euta-codr = codice numerico del reparto (redefines di euta-cod)
Campi del record (redefines euta-rep-dati)
| Campo |
Tipo |
Descrizione |
| euta-rep-des |
x(30) |
Descrizione del reparto cassa |
| euta-rep-cod-iva |
x(02) |
Codice IVA associato al reparto |
Copybook principali
| Copybook |
Descrizione |
| coga02.select |
SELECT dei file |
| coga02.fd |
File Description |
| coga02.wrk |
Working storage generata |
| coga02.decla |
Declaratives |
| coga02.prc |
Procedure generate (open/close/read/write/rewrite/delete su COGTABEL) |
| coga02-01.scr |
Screen section |
| feurtab.fd |
SELECT tabella di sistema |
| cogfiles.cpy |
FD record FEURTAB |
| cogazien.cpy |
Dati azienda |
| wgrid.cpy |
Gestione griglia |
| utilgdad.cpy |
Interfaccia GRIDADMN |
| utile22.cpy |
Interfaccia COGE22 |
| utile67.cpy |
Interfaccia COGE67 (ricerca codice IVA) |
| utila02.cpy |
Linkage per modalita' selezione (a02-called, a02-caller, a02-out-cod, a02-out-des) |
| wcont.cpy / wcont1.cpy |
Linkage standard (stringhe) |
Chiamate a sottoprogrammi (CALL)
| Programma |
Scopo |
| GRIDADMN |
Gestione griglia avanzata (preparazione, personalizzazione, aggiunta/modifica record, svuota) |
| COGE67 |
Ricerca codice IVA (attivata con F8 sul campo codice IVA) |
Variabili chiave
| Variabile |
Tipo |
Descrizione |
| tab-maschera |
01 |
Tabella interna con tutti i reparti caricati (occurs k-max-ele-tab = 900) |
| tm-ele (i) |
gruppo |
Singola riga: tm-cod (9(03)), tm-des (x(30)), tm-cod-iva (x(02)) |
| tm-pnt |
9(04) |
Numero di righe caricate |
| a-operazione |
x(01) |
"I" = inserimento, "M" = modifica |
| a-modalita |
x(01) |
"S" = selezione, "A" = aggiornamento |
| w-dc-called |
x(01) |
"S" se il programma e' stato richiamato in modalita' selezione |
| grid-record |
01 |
Record di scambio con la griglia (grd-cod, grd-des, grd-cod-iva) |
Flusso operativo
1. Inizializzazione (apri)
- Inizializza il programma, controlla abilitazioni operatore
- Legge dati azienda (rd-azi), apre i file
- Verifica se e' stato richiamato in modalita' selezione tramite util-a02: se a02-called = k-program-id e a02-caller non vuoto, imposta w-dc-called = "S"
- Configura i tasti funzione disponibili; se in modalita' selezione attiva anche F3 per il toggle selezione/aggiornamento
- Prepara la griglia (z-prepara-tm-grid) e la configurazione colonne tramite GRIDADMN
2. Caricamento dati (a10 -> a30)
- Posiziona su COGTABEL con euta-tipo = 50, legge sequenzialmente tutti i record con tipo 50
- Carica i dati in tab-maschera fino a un massimo di 900 righe
- Se la tabella e' piena, avvisa e tronca
- Costruisce la griglia (z-costruisci-grid) tramite GRIDADMN
3. Griglia (a-grid -> a-accept-grid)
- In modalita' aggiornamento (a-modalita = "A"):
- Invio/Doppio clic: apre la riga in modifica
- Ctrl+A: aggiunge una nuova riga
- Ctrl+E: elimina la riga selezionata (con conferma)
- Shift+F4: personalizzazione colonne griglia
- In modalita' selezione (a-modalita = "S"):
- Invio/Doppio clic: restituisce codice e descrizione del reparto selezionato (a02-out-cod, a02-out-des) e chiude
- F3: passa a modalita' aggiornamento
4. Dettaglio riga (a-riga-dettaglio)
- In modifica: blocca il record con rd-cogtabel-lk
- In inserimento: abilita il campo codice (normalmente disabilitato in modifica)
- Accept sequenziale dei campi: codice reparto, descrizione, codice IVA
- Navigazione con F2 (indietro), ESC (annulla modifiche riga)
- Sul campo codice IVA: F8 richiama COGE67 per la ricerca
5. Validazione e salvataggio (a-riga-dettaglio-fine)
- Esegue x-imposta-conferma: verifica che codice sia valorizzato, descrizione non vuota, codice IVA valido (se presente, verifica esistenza su COGTABEL tipo 67)
- Chiede conferma all'operatore
- Gestisce i casi limite: se in inserimento ma il codice esiste gia', esegue rewrite; se in modifica ma il codice non esiste piu', esegue write
- Scrive/riscrive il record su COGTABEL e aggiorna la griglia
6. Cancellazione (c-cancella)
- Legge il record con lock (rd-cogtabel-lk)
- Se non esiste piu', avvisa e interrompe
- Esegue del-cogtabel, poi ricompatta la tabella interna e ricostruisce la griglia
7. Chiusura (fine -> z-chiudi)
- Chiude COGTABEL e la finestra, esce dal programma
Note tecniche
- Il programma usa PERFORM ... THRU in due punti (c1-ctrl-canc thru ex-c1 e c-cancella thru ex-c) per gestire l'uscita anticipata dai paragrafi di cancellazione.
- La validazione del codice IVA avviene leggendo COGTABEL con euta-tipo = 67.
- Il resize della finestra viene gestito in z-99-event-form per ricalcolare la dimensione della griglia.
- La griglia supporta mass-update per il caricamento efficiente dei dati.