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):
- Blocco 1 (interfaccia GDAD-RECORD) -- intorno a riga 1054, costrutto
evaluate. Popolagdad-record(vettore "compatibile cogdesag"):
V, Q, N -> "N" (numerico)
D -> "D" (data)
altri -> "S" (stringa)
- Blocco 2 (intestazione colonne Excel) -- intorno a riga 1112, costrutto
if. Popolaext-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) eQ(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.