Vai al contenuto

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

  1. apri: apertura file, init, lettura COGTABEL tipo 66, apertura archivi contabilizzati (ATT, PRE)
  2. a4: inizializzazione maschera, caricamento nomi archivi
  3. Accept campi: a-tm-sel-01a-tm-sel-02a-tm-sel-03a-tm-imp
  4. a-inizio-dati: validazione (almeno 1 archivio), conferma, avvio ricerca
  5. carica-dati: scansione archivi, popolamento tabella
  6. z-costruisci-grid: costruzione griglia con GRIDADMN
  7. a-grid / a-accept-grid: navigazione griglia

Caricamento dati (carica-dati)

  1. Mostra messaggio "Caricamento dati in Corso" (clock-msg)
  2. Inizializza tm-tab, azzera contatore i
  3. Cicla per l = 1, 2, 3 con b-src-arc 3 times

Scansione archivio (b-src-arcb-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-impb1-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.