COGD78 — Gruppi Sconto Fornitore su Excel¶
Sorgente: cbl/cogd78.cbl | Tipo: Programma interattivo di import/export (Excel) | Program-ID: COGD78
Menu: Contabilita' > Archivi & Tabelle > Varie > Gruppi Sconto Fornitore su Excel
Scopo¶
Consente di esportare e importare i gruppi sconto per fornitore da/verso un file Excel. L'operatore seleziona un fornitore (o tutti) e un tipo sconto, quindi con F5 esporta le condizioni presenti sulla tabella COGSCOCF in un foglio Excel, oppure con F6 importa un file Excel/testo aggiornando in massa le condizioni sconto. La procedura mostra i contatori di record letti, scartati e inseriti e produce un file di segnalazioni per i record scartati.
Correlato ai moduli di gestione gruppi sconto: l'import interattivo dei gruppi sconto e' gestito anche da COGD32, e la subroutine di stampa/import massivo dei gruppi sconto e' IMPGRSCO.
File e tabelle principali¶
| File/Tabella | Copybook | Uso |
|---|---|---|
| COGSCOCF | cogscocf.cpy |
Gruppi sconto fornitore: chiave scf-chia1 (tipo + codice fornitore + condizione scf-cnd + gruppo scf-key); campi sconto scf-sco-1/2/3, flag scf-fl-ven (aggiornamento vendita) |
| COGGEANA | (in feurtab) | Anagrafica fornitore, per risolvere/validare il nome (rd-coggeana) |
| cogascii | (FD inline) | File ASCII di output per l'esportazione (asc-rec, tab-delimited) |
| cogseque | (FD inline) | File sequenziale di appoggio per l'importazione |
| cogrisul | (FD inline) | File di risultato con le segnalazioni dei record scartati |
| feurtab | cogfiles.cpy |
Contenitore file indicizzati standard |
La condizione scf-cnd vale 'GR' per il tipo sconto "G" (gruppo) e 'SC' altrimenti; il gruppo "GENERALE" corrisponde a scf-key = low-values.
Flusso principale¶
apri(main): init, apertura file, lettura configurazioni (x99-load-config). Se il flag di linkagee78-called = "COGD78-CALLED"il programma parte gia' filtrato per fornitore/tipo sconto passati dal chiamante (e78-forn,e78-tipo-sco).- Se la configurazione
LISTINO-UNICOe' attiva, COGD78 devia su COGD79 (chiamato cone78-ana-tipo = "F"ee78-called = "COGD79-CALLED") e termina. a4: preparazione maschera, creazione pulsanti custom "Trova file (F7)", "Esporta (F5)", "Importa (F6)".- Accept di fornitore (
a-tm-forn, aiuto viaCOGS65W) e tipo sconto (a-tm-tipo-sco, viaCOGS60). a-richiesta-conferma: in base al flagtm-esporta/tm-importalancia l'esportazione (x5-esporta) o l'importazione (x6-importa).
Esportazione (x5-esporta)¶
- Crea il file
esporta.txtnella directory temporanea, scrive una riga di intestazione e poi un record per ogni condizione sconto fornitore, campo per campo, con separatore tab (x'09'), tramite il paragrafob1-aggiungi-stringa. - Scorre
COGSCOCFconst-cogscocf-notmin/rdnxt-cogscocf, filtrando per tipo fornitore, fornitore selezionato (se non "tutti") e condizionetm-cnd. - Al termine apre il file in Excel chiamando la subroutine
GRIDTOXS(operazioneapri-file).
Importazione (x6-importa / x61-importa)¶
- Copia il file selezionato nella directory temporanea (
C$COPY); se l'estensione e'xls, lo converte in testo con la subroutineESTRXLS. x61-importalegge il file sequenziale riga per riga, effettua l'unstringsui campi (fornitore, nome, gruppo, sconto 1/2/3, flag vendita) e normalizza i decimali (./:→,,function numval).- Controlli formali: fornitore inesistente (
rd-coggeana) e gruppo vuoto vengono scartati e annotati nel file segnalazioni (cogrisul). - Al cambio fornitore (
w-rot-forn) eseguex611-cancellache elimina (del-cogscocf) tutte le condizioni precedenti del fornitore per la condizione corrente, poi reinserisce le nuove (wr-cogscocf/ in fallbackrwr-cogscocf). - A fine elaborazione, se ci sono record scartati propone di aprire il file segnalazioni con la subroutine
OPENFILE.
Configurazioni (RNEWCONF)¶
Il paragrafo x99-load-config legge:
cogesys/delimitatore-colonne-excel— separatore colonne usato in importazione (tm-delimiter);LISTVEND/LISTINO-UNICO— se "S", la gestione viene deviata su COGD79.
Sottoprogrammi chiamati¶
| Programma | Ruolo |
|---|---|
| COGD79 | Gestione gruppi sconto con listino unico (deviazione su configurazione) |
| COGS65W | Aiuto/ricerca fornitore |
| COGS60 | Gestione combo tipo sconto |
| GRIDTOXS | Apertura del file esportato in Excel |
| ESTRXLS | Conversione file .xls in testo per l'importazione |
| C$COPY / C$OPENSAVEBOX | Copia file e dialog di selezione archivio |
| OPENFILE | Apertura del file di segnalazioni scarti |
| COGU10W | Divisa di conto |
Note¶
- La rilettura del file su thin client antepone al nome
@[DISPLAY]:per prelevare il file dalla postazione client (ext-thin-client = "S"). - All'uscita valorizza
e78-fl-aggionel linkage per segnalare al chiamante se e' avvenuta un'importazione (aggiornamento dati).