COGM34 - Modifica Simultanea¶
Scopo¶
Consente operazioni di massa sulle distinte base: inserimento, cancellazione o sostituzione di un componente su piu' distinte contemporaneamente. Supporta sia la selezione manuale delle distinte (tramite COGU05) sia la ricerca per range di codici con diversi criteri di ordinamento.
Struttura¶
Programma standalone con maschera GUI (mmmask.cpy). Flusso principale:
- Parametri: accept di operazione (I/C/S), quantita', componente/i, modalita' ricerca (S/G), range distinte
- Conferma: validazione completa, richiesta conferma con avviso per tipo C
- Elaborazione: scansione distinte e applicazione dell'operazione su ciascuna (b-elabora / b1-ela-dis)
- Riepilogo: conteggio distinte lette vs modificate
Tabelle/File utilizzati¶
| Tabella | Accesso | Descrizione |
|---|---|---|
| COGMERCI | Lettura | Anagrafica merci - validazione componenti e distinte |
| COGDBASE | Lettura/Scrittura | Distinta base - inserimento, cancellazione, modifica componenti |
| COGRACMC | Lettura | Raccordo merci per classificazione avanzata (ordinamento per codice avanzato) |
| COGDBAGG | Lettura/Scrittura | Componenti aggiuntivi distinta - aggiornamento sostitutivi |
| COGMAGAZ | Lettura/Scrittura | Magazzino - aggiornamento movimenti di carico/scarico |
| COGCLAVA | Lettura/Scrittura | Classificazioni avanzate |
| FEURTAB | Configurazione | Tabella configurazioni standard |
Logica di elaborazione¶
Operazioni disponibili¶
- I (Inserisco): aggiunge
tm-cmpcontm-qtaalla distinta, solo se il componente non esiste gia' - C (Cancello): rimuove
tm-da-cmpdalla distinta, solo se esiste - S (Sostituisco): sostituisce
tm-da-cmpcontm-a-cmp; il sostitutivo non deve gia' esistere; setm-qta = 0la quantita' resta invariata
Modalita' di ricerca distinte¶
- S (Singola): usa la selezione multipla di COGU05 (fino a 200 distinte, array
u05-merce) - G (Gruppo): scansione sequenziale di COGMERCI nel range
tm-da-merce/tm-a-merce, con ordinamento: - C: per codice merce (
mer-chia) - D: per descrizione (
mer-chia1) - A: per codice avanzato (via COGRACMC)
Elaborazione singola distinta (b1-ela-dis)¶
- Incrementa contatore distinte lette (
tm-d-l) - Per sostituzione (S): verifica che il componente sostitutivo (
tm-a-cmp) non esista gia' nella distinta - Cerca il componente da operare (
tm-da-cmp) nella distinta (b2-src-cmp) - In base all'operazione:
- I: se componente non trovato, lo inserisce con
wr-cogdbase, gestisce COGDBAGG e movimenti magazzino - C: se componente trovato, lo cancella con
del-cogdbase, aggiorna COGDBAGG e magazzino - S: se componente trovato e sostitutivo non presente, riscrive il record con il nuovo codice e la nuova quantita'
Ricerca componente in distinta (b2-src-cmp)¶
Scansione sequenziale di COGDBASE per la distinta corrente (w-gru/w-sot/w-cod), cerca b2-cmp tra i componenti (dba-merce-f). Restituisce b2-trovato (S/N) e b2-ultimo-prog (ultimo progressivo nella distinta).
Chiamate a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COGU05 | Selezione multipla distinte (modalita' ricerca Singola) |
| COGU16W | Gestione ordinamento e range merci |
| COGS60W2 | Gestione combo-box con valori predefiniti |
| COGS68W | Gestione campo merce con ricerca avanzata |
| COGL61 | Recupero prezzi |
COPY utilizzate¶
File/Select¶
feurtab.fd,cogm34.select,cogm34.fd
Working storage¶
cogm34.wrk,k-personal.cpy,k-u10.cpywstato.cpy,wgrave.cpy,wopenf.cpy,wnscr.cpyutilu05.cpy,utilu10.cpy,utilu12.cpy,utilu16.cpy,utilu20.cpyutils25.cpy,utils68.cpy,utils60w2.cpy,utilcogl61.cpy,utils52.cpycogazien.cpy,utilncnf.cpy
Linkage¶
wcont.cpy,wcont1.cpy
Screen¶
cogm34-01.scr
Procedure¶
cogm34.prc,grave.cpy,mmmask.cpy,opengen.cpy,stato.cpy,stato1.cpy,winmsg.cpy
Note¶
- La conferma mostra un avviso specifico: la sostituzione su distinte con opzioni (tipo 'C') non ha effetti retroattivi su ordini o lavorazioni in corso.
- Il contatore finale mostra distinte lette (
tm-d-l) e distinte effettivamente modificate (tm-d-m). - Per la ricerca Singola (S), le distinte vanno selezionate con F5 prima della conferma; il programma valida che almeno una distinta sia selezionata.
- Supporta tipi distinta P, D, C, O; altri tipi vengono scartati.