Si dicono Grid Rules le regole di formattazione condizionale che impostano dinamicamente proprietà generali relative al layout della Grid corrente.
Le Grid Rule riguardano l'intero layout della Grid e vengono applicate al primo caricamento dei dati. Ogni modifica del layout, salvata mediante il pulsante Save Current Layout |
Per aggiungere una nuova Grid Rule nel tab dedicato del Rules Editor, è necessario premere il pulsante Add della toolbar. Esso consente di accede ad uno specifico menù a tendina dal quale selezionare il tipo della Grid Rule corrente.
Esistono i seguenti tipi di Grid Rule:
✓ Layout Settings imposta dinamicamente ogni tipo di Grid Property;
✓ Band imposta dinamicamente proprietà relative ad una delle Band che compongono la Grid;
✓ Column imposta dinamicamente proprietà relative ad una delle Column che compongono la Grid;
✓ Runtime Rule imposta dinamicamente una runtime rule;
✓ Group imposta dinamicamente proprietà relative ad uno specifico gruppo di colonne;
✓ Summary imposta dinamicamente proprietà relative alla visualizzazione delle statistiche riassuntive;
✓ Filter Condition imposta dinamicamente un filtro su una specifica colonna della Grid;
✓ Global Appearance imposta dinamicamente uno stile grafico predefinito da applicare ai diversi elementi della Grid che lo richiamano;
✓ ValueList imposta dinamicamente aspetti definitori e proprietà di una specifica value list;
✓ ValueList Item imposta dinamicamente aspetti definitori e proprietà di uno specifico item di una value list;
✓ DropDown imposta dinamicamente aspetti definitori e proprietà di una specifica drop-down list;
✓ Context Menu Item imposta dinamicamente una voce del Context Menu della griglia.
Ogni nuova Grid Rule è caratterizzata dai seguenti attributi:
✓ Enabled, flag con cui abilitare/disabilitare la regola;
✓ Type, tipo di Grid Rule corrispondente al suo dominio di applicazione;
✓ Iterator, tabella del sottostante Model sulla quale iterare l’applicazione della regola;
✓ RuleCondition, SQL expression che permette di filtrare i record dell’iteratore;
✓ MaxRow, numero massimo di record utilizzabili per l’iterazione della regola;
✓ Description, testo libero con cui integrare la descrizione della regola nella documentazione automatica del Package.
Le proprietà RuleCondition e MaxRow sono efficaci solo nel caso in cui sia presente un Iterator. |
Un Iterator, se presente, consente di:
✓ condizionare i valori delle proprietà impostabili;
✓ determinare il numero di applicazioni successive della Grid Rule.
In particolare un iteratore può essere:
✓ non valorizzato;
✓ una tabella del Model sottostante;
✓ una Current Row di una tabella del Model sottostante;
✓ una relazione tra tabelle del Model sottostante.
Tabelle, Current Row e relazioni possono essere specificati nel campo Iterator con l'ausilio di un'apposita drop-down, che espone tutti gli elementi del Model disponibili. |
In caso l'iteratore sia la Current Row di un'altra Grid esposta a video, è necessario sincronizzare il corrispondente Viewer con la Grid corrente nel Model del Book, mediante un opportuno Syncronization Group.
In caso non sia specificato un iteratore:
✓ la regola corrente viene applicata una sola volta;
✓ le proprietà impostabili ammettono solo valori costanti.
Al fine di permettere l'esecuzione di una rule in assenza di un campo su cui iterare, in IrionEDM 2016 Update 9 è stato Introdotto il concetto di iteratore scalare: specificando il numero 1, si avrà un'iterazione.
Allo stato attuale, un Iterator con numero superiore ad 1 non produce nessun effetto. Successive funzioni renderanno l'iterator numerico utilizzabile come parametro.
L'iteratore scalare consente di ripristinare il comportamento già esistente in IrionDQ 2014. I package convertirti da IrionDQ 2014, in presenza di iteratore vuoto, presentano l'iteratore scalare valorizzato a 1. In tal modo, la rule è eseguita una sola volta e la compatibilità è preservata. |
In caso l'iteratore sia una tabella del Model:
✓ la regola corrente viene eseguita tante volte quante sono le righe della tabella;
✓ la regola corrente viene riapplicata ad ogni modifica della tabella sottostante;
✓ le proprietà impostabili ammettono sia valori costanti sia valori dipendenti dai campi dell'iteratore.
In caso l'iteratore sia una una Current Row:
✓ la regola corrente viene eseguita solo per la riga corrente della sottostante tabella del Model;
✓ la regola corrente viene riapplicata ogni volta cambia la tabella sottostante o la riga corrente;
✓ le proprietà impostabili ammettono sia valori costanti sia valori dipendenti dai campi della riga corrente.
In caso l'iteratore sia una una relazione tra tabelle, la regola corrente viene:
✓ la regola corrente viene eseguita solo per le righe figlie della riga corrente della tabella padre;
✓ la regola corrente viene riapplicata ogni volta che cambia la tabella padre sottostante o la sua riga corrente;
✓ le proprietà impostabili ammettono sia valori costanti sia valori dipendenti dai campi della tabella padre.
Il visualizzatore delle Property espone proprietà contestuali al Type della Grid Rule corrente. Tuttavia tutte le Grid Rule, ad eccezione di quelle di tipo Layout Settings, condividono la proprietà Key. Essa consente di specificare un identificativo univoco da associare alla regola corrente e al cirrispondente elemento della Grid. Altri identificativi condivisi da due o più tipi di Grid Rule sono:
✓ Band Key, identificativo della Band su cui applicare la regola corrente;
✓ Column Key, identificativo della Column su cui applicare la regola corrente.
Le Grid Rule di tipo Column, DropDown, Group, ValueList e ValueList Item condividono anche la proprietà AddIfNotExists. Essa può assumere i seguenti valori:
✓ True crea un elemento del tipo corrispondente alla Grid Rule corrente, in caso l'identificativo specificato nel campo Key non esista;
✓ False ignora la regola, in caso l'identificativo specificato nel campo Key non esista.
Per maggiori dettagli sulle proprietà impostabili per i diversi elementi di una Grid si rimanda al paragrafo dedicato. |