Vai al contenuto

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

  1. apri (main): init, apertura file, lettura configurazioni (x99-load-config). Se il flag di linkage e78-called = "COGD78-CALLED" il programma parte gia' filtrato per fornitore/tipo sconto passati dal chiamante (e78-forn, e78-tipo-sco).
  2. Se la configurazione LISTINO-UNICO e' attiva, COGD78 devia su COGD79 (chiamato con e78-ana-tipo = "F" e e78-called = "COGD79-CALLED") e termina.
  3. a4: preparazione maschera, creazione pulsanti custom "Trova file (F7)", "Esporta (F5)", "Importa (F6)".
  4. Accept di fornitore (a-tm-forn, aiuto via COGS65W) e tipo sconto (a-tm-tipo-sco, via COGS60).
  5. a-richiesta-conferma: in base al flag tm-esporta/tm-importa lancia l'esportazione (x5-esporta) o l'importazione (x6-importa).

Esportazione (x5-esporta)

  • Crea il file esporta.txt nella 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 paragrafo b1-aggiungi-stringa.
  • Scorre COGSCOCF con st-cogscocf-notmin / rdnxt-cogscocf, filtrando per tipo fornitore, fornitore selezionato (se non "tutti") e condizione tm-cnd.
  • Al termine apre il file in Excel chiamando la subroutine GRIDTOXS (operazione apri-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 subroutine ESTRXLS.
  • x61-importa legge il file sequenziale riga per riga, effettua l'unstring sui 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) esegue x611-cancella che elimina (del-cogscocf) tutte le condizioni precedenti del fornitore per la condizione corrente, poi reinserisce le nuove (wr-cogscocf / in fallback rwr-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-aggio nel linkage per segnalare al chiamante se e' avvenuta un'importazione (aggiornamento dati).