Vai al contenuto

GRIDADMN - Amministrazione griglie (gridsist) + export Excel

Sorgente: cbl/gridadmn.cbl | Program-ID: GRIDADMN | Tipo: Sotto-programma di amministrazione griglie

Scopo

Funzione comune di amministrazione dei componenti GRID (gridsist) richiamabile da qualunque programma che usi griglie evolute. Implementa:

  • Scaricamento del contenuto griglia su appunti (clipboard).
  • Personalizzazione del layout colonne griglia.
  • Esplosione delle descrizioni aggiuntive sui campi "merce" (vedi nota storica del 28-12-2005 in testa al sorgente).
  • Preparazione della riga di intestazione per GRIDTOXS (export Excel della griglia).

Posizionamento

Sotto-programma di servizio utilizzato in modo trasversale da tutti i programmi gestionali con griglie evolute (es. COGE20, COGZ40, COGM65, ASN140, ...).

Tipo dato colonna (w-dgc-tipo-dato)

Ogni colonna della griglia ha un tipo dato (w-dgc-tipo-dato, 2 char):

Codice Significato
V Valore (importo)
Q Quantita'
N Numero (codice numerico, es. numero documento, ID, codice cliente)
D Data
M* Merce (con sotto-tipologie MD, MA, MF, MC, MB, MU, M1)
(altri) Stringa generica

Mapping verso GRIDTOXS

Esistono due blocchi distinti nel programma che traducono w-dgc-tipo-dato in b-tipo-gridtoxs (1 char):

  1. Blocco 1 (interfaccia GDAD-RECORD) -- intorno a riga 1054, costrutto evaluate. Popola gdad-record (vettore "compatibile cogdesag"):

V, Q, N -> "N" (numerico) D -> "D" (data) altri -> "S" (stringa)

  1. Blocco 2 (intestazione colonne Excel) -- intorno a riga 1112, costrutto if. Popola ext-intestazione-colonne-excel:

V, Q -> "N" (numerico) altri (incluso N e D) -> "S" (stringa)

Storico modifiche

2026-06-05 - Excel: tipo "N" esportato come stringa, non come numero

Modifica di Mauro (5-06-26) al blocco 2 (intestazione colonne Excel). Il codice tipo dato N (numero) viene rimosso dal ramo "numerico":

              if w-dgc-tipo-dato (b-k) = "V" or
                 w-dgc-tipo-dato (b-k) = "Q"
      *          or
      *          w-dgc-tipo-dato (b-k) = "N"   |Mauro 5-06-26
                 move "N"          to b-tipo-gridtoxs
               else
                 move "S"          to b-tipo-gridtoxs
              end-if

Le colonne di tipo N sono codici (es. numero documento, numero contratto, codice cliente) che, se esportati come numero in Excel, perdono eventuali zeri di testa o vengono convertiti in notazione scientifica per valori grandi. Esportandoli come stringa il dato e' preservato cosi' com'e' visualizzato in griglia.

Il blocco 1 (interfaccia GDAD-RECORD) non e' stato modificato: continua a marcare N come numerico. Significa che il cambio riguarda esclusivamente l'export verso Excel via GRIDTOXS, non la rappresentazione interna verso gdad-record.

Note sull'effetto

  • Tutte le griglie esportate via GRIDTOXS che includono colonne N (numero) vedranno ora la cella Excel formattata come testo. Cio' implica che:
  • Le formule Excel applicate alle vecchie esportazioni potrebbero non funzionare piu' su colonne ora testuali.
  • Eventuali allineamenti / formattazioni numeriche personalizzate sul template Excel ricevente vanno rivisti.
  • Le colonne V (valore) e Q (quantita') restano numeriche, come anche tutte le colonne tradotte automaticamente.

Cosmetica

Lo stesso commit contiene la rimozione di trailing whitespace su numerose righe del sorgente (effetto di salvataggio dell'editor). Nessuna modifica funzionale oltre a quella sopra.