Vai al contenuto

Griglie Evolute - Introduzione

Nel presente manuale cercheremo di descrivere le parti di codice generate automaticamente da screens. Per fare questo si usano delle convenzioni:

nomegrid: Indica il nome attribuito al controllo "griglia" di cui sto parlando; ad esempio: - "TM-TAB": - "GRID-xxxx"

colid: Indica il nome attribuito attribuito ad una specifica colonna di un controllo "griglia".

Gestione Griglie

Le griglie sono un controllo complesso, che nella nuova versione di screens sono state rese modificabili.

Per ottenere questo ogni colonna viene vista come un "controllo" a se con le proprie caratteristiche.

Proprietà specifiche griglia

Nella funzione di gestione controlli (la maschera principale di screens) esistono alcune proprietà specifiche per le griglie.

[Immagine: proprietà specifiche griglia]

Auto-resize Da completare Pos man? Da completare Headings? Da completare Cent.head? Da completare Prefisso colonne Da completare N. Righe Da completare

Modificabile?

Spuntando questa casella, la griglia viene resa modificabile. Quando una griglia è modificabile, in fase di generazione verranno prodotti dati di working-storage e routines specifiche per gestirle.

EP su Ctrl-A

E' necessario attivare un entry-point sulla routine di aggiunta nuova riga alla griglia?

EP "Disattiva TF" ?

E' necessario attivare un entry-point per disattivare tasti funzioni particolari gestiti sulla griglia? Se spuntato, nel programma sorgente sarà necessario inserire la perform: Z-DISATTIVA-TF-nomegrid

Colore righe griglia

In quest'area di testo si dovrà introdurre una parte di codice necessaria alla modifica del colore di determinate righe.

Ad esempio, si potrebbe introdurre:

if tm-data (i-grid-color) > 20100101
   move tm-cfg-colore-anno-nuovo to row-grid-color
end-if

In questo modo si indica al programma che se la data della riga è maggiore di 01/01/2010, si deve impostare un colore particolare. In tutti gli altri casi deve essere utilizzato il colore di default (non c'è bisogno di indicarlo).

Il blocco di codice risultante sarà il seguente:

**---------------------------------------------------------------**
** Impostazione di un colore particolare per le righe griglia
**---------------------------------------------------------------**
x-set-row-nomegrid-color.
   move 0 to row-grid-color
   if tm-data (i-grid-color) > 20100101
      move tm-cfg-colore-anno-nuovo to row-grid-color
   end-if
   .

Composizione della parte di codice necessaria.

Nell'introdurre il codice nel campo occorre considerare le seguenti regole: - Facendo riferimento a campi della griglia, usare l'indice "i-grid-color" - Il colore che si vuole utilizzare va mosso sulla variabile "row-grid-color"

Uso della routine X-SET-ROW-nomegrid-COLOR

Nelle chiamate a GRIDADMN (escluso "Prepara") occorre aggiungere la chiamata alla routine, e poi passare la variabile risultante a GRIDADMN; ad esempio:

move i to i-grid-color
perform x-set-row-grid-color
move row-grid-color to gdad-color

Colore celle modificabili

Le celle di una griglia possono assumere colori diversi a seconda di diversi fattori.

Priorità di assegnazione

E' bene ricordare la priorità con cui una cella può assumere un determinato colore, a seconda di quali colori si definiscono su una griglia.

Tenendo conto che se un colore viene importato a 0 significa che viene assunto il colore di default, l'ordine di assegnazione dei colori (ricavato dal manuale Acucorp 8.1) è: 1. CURSOR-COLOR 2. DRAG-COLOR 3. REGION-COLOR 4. CELL-COLOR 5. HEADING-COLOR 6. ROW-COLOR 7. COLUMN-COLOR 8. ROW-COLOR-PATTERN 9. Grid's overall color

Colore celle non modificabili Esiste un'apposita configurazione che viene caricata all'avvio del menu: EXT-COLOR-CELL-RO. Il valore di configurazione da cui viene prelevato è il seguente: - Gruppo = "Colori" - Parametro = "colonna-griglia-non-editabile"

Quando una cella viene definita "non modificabile" assumerà il colore EXT-COLOR-CELL-RO. Quando una cella è modificabile, il CELL-COLOR corrispondente sarà 0, quindi verrà assunto il colore eventualmente attribuito alle caratteristiche con priorità inferiore (ad esempio ROW-COLOR).

Se una colonna ha è modificabile in modo "Custom" (vedi argomento) il colore della cella potrà essere cambiato automaticamente, a patto che venga eseguita la routine X-MODIFY-RIGA-nomegrid nelle routine di validazione del campo a cui è soggetta la modificabilità della cella.

Ad esempio Nel programma COGM91 la colonna "Descrizione" (id = 'r-desc') è modificabile se si verificano le condizioni: - E' stato richiesto un listino particolare per cliente - E' presente un listino sulla merce selezionato.

Quindi:

  • La colonna 'r-desc' avrà definito una validazione "begin-entry" = "Custom" che contiene le condizioni sopra indicate
  • La colonna "r-prezzo" avrà una validazione "finish-entry" = "Custom" (in modo che sia possibile introdurre del codice che viene eseguito dopo aver modificato il prezzo) che contiene almeno:
x-controlla-tm-r-prezzo.
   move "S" to x-f3-ok-parziale
   move i to k-rg
   perform x-modify-riga-tm-tab
   .

Estratto da documentazione interna ClickUp