COGE33 — Ricerca Movimenti per Importo¶
Sorgente: cbl/coge33.cbl | Program-ID: COGE33 | Tipo: Programma di ricerca interattivo con griglia
Menu: Contabilita' > Prima Nota > Visualizzazioni > Movimenti per Importo
Scopo¶
Ricerca tutti i movimenti contabili di prima nota che corrispondono a un determinato importo. Scansiona fino a tre archivi (prima nota non contabilizzata, anno attuale, anno precedente) e presenta i risultati in una griglia.
Struttura della maschera¶
Screen Designer con coge33-01.scr. Layout a due aree: parametri di selezione e griglia risultati.
Parametri di selezione¶
| Campo | Variabile | Tipo | Descrizione |
|---|---|---|---|
| Archivio 1 | tm-sel-01 / tm-sel(1) |
x(01) | P.Nota non contabilizzata |
| Archivio 2 | tm-sel-02 / tm-sel(2) |
x(01) | Anno attuale |
| Archivio 3 | tm-sel-03 / tm-sel(3) |
x(01) | Anno precedente |
| Importo | tm-imp |
9(12)v9(06) | Importo da ricercare |
I nomi degli archivi (tm-nom(1..3)) vengono popolati dinamicamente da dep-nome-arc che legge COGTABEL tipo 66 + open-pn-contabilizzata.
Griglia risultati¶
Record di griglia grid-record:
| Colonna | Variabile | Formato | Descrizione |
|---|---|---|---|
| Archivio | grd-arc |
x(14) | "Non contab.", "Anno attuale", "Anno preced." |
| Data | grd-data |
GG/MM/AAAA | Data movimento |
| Numero | grd-num |
z(09) | Numero documento |
| Conto | grd-conto |
MA/CO/ZZZZZZ | Mastro/conto/sottoconto |
| Descrizione | grd-des |
x(30) | Descrizione del conto |
| Segno | grd-sgn |
x(02) | D/A |
| Importo | grd-importo |
x(15) | Importo formattato |
Max elementi: k-max-ele-tab = 4000.
Logica di elaborazione¶
Flusso principale¶
apri: apertura file, init, lettura COGTABEL tipo 66, apertura archivi contabilizzati (ATT, PRE)a4: inizializzazione maschera, caricamento nomi archivi- Accept campi:
a-tm-sel-01→a-tm-sel-02→a-tm-sel-03→a-tm-imp a-inizio-dati: validazione (almeno 1 archivio), conferma, avvio ricercacarica-dati: scansione archivi, popolamento tabellaz-costruisci-grid: costruzione griglia con GRIDADMNa-grid/a-accept-grid: navigazione griglia
Caricamento dati (carica-dati)¶
- Mostra messaggio "Caricamento dati in Corso" (
clock-msg) - Inizializza
tm-tab, azzera contatorei - Cicla per
l = 1, 2, 3conb-src-arc3 times
Scansione archivio (b-src-arc → b-rd-arc)¶
Per ogni archivio selezionato (tm-sel(l) = "S"):
1. Imposta nf-name-14 dal nome archivio tm-nom(l)
2. open input cogpnonc (file con nome dinamico)
3. st-cogpnonc-notmin → loop rdnxt-cogpnonc
4. Per ogni movimento:
- Se divisa uguale a w-currency-conto: confronto diretto pno-importo
- Altrimenti: conversione divisa via COGU10W ("Cambio")
- Se w-pno-importo = tm-imp → b1-mov-ok
Registrazione risultato (b1-mov-ok)¶
Incrementa i, popola tm-ele(i):
- tm-arc: "N"/"A"/"P" (non contab./attuale/precedente)
- tm-data: data dal movimento PNO
- tm-num: numero documento
- tm-mas/tm-con/tm-sot: conto contabile
- tm-des: descrizione da pco-des (lookup COGPNCON)
- tm-sgn: segno (D/A)
- tm-importo: formattato via COGU10W ("Edita")
File utilizzati¶
| File | Accesso | Scopo |
|---|---|---|
| FEURTAB | Lettura | Tabella nomi file |
| COGTABEL | Lettura | Tabelle (tipo 66: config contabilita') |
| COGPNCON | Lettura | Piano dei conti (descrizione) |
| COGPNONC | Input | Movimenti prima nota contabile (file con nome dinamico) |
| COGCOATT | — | Archivio contabilizzato anno attuale (apertura via open-pn-contabilizzata) |
| COGCOPRE | — | Archivio contabilizzato anno precedente |
Programmi chiamati¶
| Programma | Scopo |
|---|---|
| COGU10W | Formattazione/conversione importi con divisa |
| GRIDADMN | Gestione griglia (prepara, svuota, add-record, personalizzazione SF4) |
Copybook principali¶
coge33.select, coge33.fd, coge33.wrk, coge33.decla, coge33-01.scr, coge33.prc, k-u10.cpy, cogfiles.cpy, wgrave.cpy, wgrid.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, cogconta.cpy, utilgdad.cpy, utilu10.cpy, wcont.cpy, wcont1.cpy, getdcont.cpy, utilgrid.cpy
Note¶
- La ricerca e' una scansione sequenziale completa di ogni archivio: non usa chiavi secondarie. Su archivi grandi puo' essere lenta.
- La conversione divisa avviene per ogni movimento in divisa diversa dalla divisa del piano dei conti.
- Il confronto importo e' esatto (uguaglianza, non range).
- La griglia supporta personalizzazione colonne (SF4) tramite GRIDADMN, ma non offre dettaglio/drill-down sui movimenti trovati.
- Il programma accetta in linkage
stringhe(wcont.cpy + wcont1.cpy), pattern standard per i programmi della suite.