Se occorre avere, in un progetto Foundation, un filtro per codice della società di collegamento dell’utente solamente sulle tabelle che hanno il campo società è possibile cambiare il codice della where che viene eseguita a runtime subito prima della sua esecuzione.
Inoltre vogliamo anche che se si collega un utente che non ha la società definita (perché è il direttore per esempio) allora il filtro non deve essere applicato.
Per realizzare questa possibilità senza modificare tutte le query si può utilizzare un Document Helper come da esempio che potete scaricare al link qui sotto.
Filtro Società.zip (1,0 MB)
L’esempio è in versione 21.5.
Il funzionamento del Document Helper lo trovate nell’articolo sui Servizi DO nel sito della documentazione di Instant Developer Foundation.
Vi spiego brevemente come funziona.
Per la login posso utilizzare:
user: 1 (società S0001)
user: 2 (società S0002)
accesso senza user (nessuna società)
Non occorre indicare nessuna password.
Nel progetto è definito un documento che eredita da IDDocumentHelper.
Occorre globalizzare l’evento OnSQLQuery dell’oggetto IDDocument.
Nell’evento globale è stato scritto il codice per aggiungere alla where clause il filtro per società solo nel caso che l’utente sia di una particolare società.
Per identificare il campo sul quale applicare il filtro è stato utilizzato un dominio con uno specifico concetto.