FAQ - domande frequenti

Domanda

Nella mia pagina mastro ho un bottone circondato da un IF di Sar-At. Se la vista restituisce almeno un campo, il sistema mi dovrebbe far visualizzare il bottone, altrimenti nulla.

All'atto pratico però, l'IF non mi fa visualizzare mai il bottone.

Se invece all'interno della pagina aggiungo un {BEGIN vista}{END vista} (la stessa vista dell'IF ovviamente), il tutto funziona correttamente. Mi sbaglio oppure l'IF dovrebbe funzionare comunque, a prescindere dalla presenza o meno nella pagina dell'elemento BEGIN?

Risposta

Sarebbe naturale che lo facesse, ma non lo può fare. Soltanto quando una Vista viene richiamata ed eseguita il motore di Sar-At (cioè showPage) può sapere se quella vista restituisce qualche cosa o se invece non trova nulla. E la Vista viene eseguita quando Sar-At incontra {BEGIN vista}.

Potremmo, è vero, cambiare il codice di Sar-At in modo che esegua automaticamente la Vista quando rileva la presenza di un IF seguito dal nome di una Vista che n on è stata eseguita, ma l'effetto netto sarebbe di rendere più lenta l'apparizione di ogni singola pagina solo per aver inserito un codice di controllo che serve davvero raramente.

La soluzione che hai trovato, ovvero di eseguire la Vista pur senza produrre neppure una riga di HTML in conseguenza, scrivendo {BEGIN vista}{END vista} da qualche parte nella pagina, è la migliore.