Skip to main content

Utilizzare variabili e formule semplici

Obiettivi di apprendimento

Al completamento di questa unità, sarai in grado di:

  • Spiegare cos'è un'espressione Visualforce e quando viene utilizzata.
  • Indicare tre o più variabili globali da utilizzare nelle espressioni Visualforce.
  • Aggiungere un'espressione Visualforce a una pagina Visualforce.
  • Utilizzare una funzione in un'espressione Visualforce.
Nota

Nota

Stai seguendo la formazione in italiano? In questo badge, la convalida delle sfide pratiche di Trailhead funziona in inglese. Le traduzioni sono fornite tra parentesi come riferimento. Accertati di copiare e incollare i valori riportati in inglese e imposta la lingua del Trailhead Playground su Inglese e le impostazioni internazionali su Stati Uniti. Segui le istruzioni qui.

Visita il badge Trailhead nella tua lingua per scoprire come usufruire dell'esperienza di Trailhead in altre lingue.

Introduzione alle variabili globali e alle espressioni Visualforce

Le pagine Visualforce possono visualizzare dati recuperati dal database o dai servizi web, dati che cambiano in base a chi è connesso e sta visualizzando la pagina, e così via. Questi dati dinamici sono accessibili nel markup utilizzando variabili globali, calcoli e proprietà rese disponibili dal controller della pagina. Nel loro complesso, queste espressioni vengono chiamate "espressioni Visualforce". È possibile utilizzare le espressioni per ottenere output dinamico o per passare valori ai componenti assegnandoli ad attributi.

Un'espressione Visualforce è un insieme di valori letterali, variabili, sottoespressioni o operatori risolvibili in un singolo valore. Le chiamate metodo non sono consentite nelle espressioni.

In Visualforce la sintassi dell'espressione è: {!expression }

Tutto ciò che si trova all'interno dei delimitatori {!} viene valutato e sostituito dinamicamente quando la pagina viene visualizzata o quando il valore viene utilizzato. Gli spazi vuoti vengono ignorati.

Il valore risultante può essere un primitivo (intero, stringa e così via), un valore booleano, un sObject, un metodo controller, ad esempio un metodo azione, e altri risultati utili.

Variabili globali

Per accedere ai valori e alle risorse di sistema e visualizzarli nel markup Visualforce, si usano le variabili globali.

Ad esempio, Visualforce fornisce informazioni sull'utente connesso in una variabile globale chiamata $User. È possibile accedere ai campi della variabile globale $User (e di qualsiasi altra variabile) utilizzando un'espressione di questo tipo: {!$GlobalName.fieldName }.

  1. Apri la Developer Console e fai clic su File | New | Visualforce Page (File | Nuovo | Pagina Visualforce) per creare una nuova pagina Visualforce. Inserisci UserStatus come nome della pagina.
  2. Nell'editor, sostituisci qualsiasi markup con il seguente.

    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Questo markup crea un riquadro in cui è possibile aggiungere informazioni utili.
  3. Fai clic su Preview (Anteprima) per aprire un'anteprima della pagina che potrai guardare mentre apporti le modifiche.
  4. Aggiungi il seguente markup all'interno dei tag <apex:pageBlockSection>:
    {!User.FirstName }. Dovresti vedere il tuo nome nel riquadro User Status (Stato utente) che hai creato.
  5. Aggiungi al markup del riquadro Stato utente altre due espressioni che utilizzano la variabile globale $User, in modo che la pagina si presenti come segue.
    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!User.FirstName } {!User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>

L'espressione {!...} indica a Visualforce che tutto ciò che si trova all'interno delle parentesi graffe è dinamico e scritto nel linguaggio delle espressioni. Il relativo valore viene calcolato e sostituito in fase di esecuzione, quando qualcuno visualizza la pagina.

Le espressioni Visualforce non fanno distinzione tra maiuscole e minuscole e gli spazi all'interno delle parentesi graffe {!...} vengono ignorati. Pertanto queste espressioni restituiscono tutte lo stesso valore:

  • {!User.FirstName}
  • {!$USER.FIRSTNAME}
  • {!user.firstname }

Espressioni di formula

Visualforce consente di utilizzare nel linguaggio dell'espressione non solo le variabili globali. Supporta anche formule che permettono di manipolare i valori.

Ad esempio, il carattere & è l'operatore del linguaggio formula che concatena le stringhe.

  1. Nella pagina UserStatus, sostituisci le espressioni separate utilizzate per nome e cognome con la seguente formula:
    {!User.FirstName & ' ' &User.LastName }. Questa espressione combina il nome e il cognome dell'utente connesso, separandoli con uno spazio. L'output deve essere identico.
  2. Aggiungi quanto segue al markup della pagina, sotto alle informazioni utente:


    <p> Next week it will be (La settimana prossima sarà) {!TODAY() + 7 } </p><p> Today's Date is (La data odierna è) {!TODAY() } </p>Queste formule sono più complesse e utilizzano la funzione TODAY(). Le funzioni sono calcoli integrati che si riconoscono dalle parentesi dopo il nome. La prima espressione calcola semplicemente la data corrente, mentre la seconda utilizza l'operatore di addizione per aggiungere sette giorni alla data. L'output sulla pagina avrà un aspetto simile al seguente:


    Next week it will be Thu Sep 25 00:00:00 GMT 2014 Today's Date is Thu Sep 18 00:00:00 GMT 2014 (La settimana prossima sarà Gio 25 sett 00:00:00 GMT 2014 La data odierna è Gio 18 sett 18 00:00:00 GMT 2014)

  3. Aggiungi il seguente markup della pagina, sotto alle espressioni della data.

    <p>Tomorrow will be day number  {! DAY(TODAY() + 1) }</p>
    <p>Let's find a maximum: {! MAX(1,2,3,4,5,6,5,4,3,2,1) } </p>
    <p>The square root of 49 is {! SQRT(49) }</p>
    <p>Is it true?  {! CONTAINS('salesforce.com', 'force.com') }</p><p>The year today is {! YEAR(TODAY()) }</p>
    Alcune funzioni, come TODAY(), presentano delle parentesi vuote, ma altre richiedono dei parametri, ovvero valori che si vogliono fare utilizzare alla funzione durante i calcoli. In questo esempio, YEAR() assume un parametro di data, che viene fornito dalla funzione TODAY(), la quale non richiede alcun parametro. La funzione MAX() può assumere un numero qualsiasi di parametri. La funzione CONTAINS() è particolarmente interessante. Restituisce un valore booleano, cioè un valore che può essere vero o falso. Confronta due argomenti di testo e restituisce true (vero) se il primo argomento contiene il secondo argomento. In caso contrario, restituisce false (falso). In questo caso, la stringa "force.com" è contenuta all'interno della stringa "salesforce.com", pertanto la funzione restituisce true.

Espressioni condizionali

Per visualizzare informazioni diverse in base al valore dell'espressione, si usa un'espressione condizionale.

Ad esempio, se in una fattura non è presente alcuna voce, si può scegliere di visualizzare la parola "Nulla" anziché un elenco vuoto. Oppure, se un elemento è scaduto, si può scegliere di visualizzare la dicitura "Terminato" anziché la data e l'ora di scadenza.

È possibile farlo in Visualforce utilizzando un'espressione di formula condizionale, ad esempio IF(). L'espressione IF() assume tre argomenti:

  • Il primo è un argomento booleano, cioè un valore che può essere vero o falso. Ad esempio, la funzione CONTAINS() utilizzata in precedenza.
  • Il secondo argomento è il valore che verrà restituito se il primo parametro è vero.
  • Il terzo argomento è il valore che verrà restituito se il primo parametro è falso.
  1. Nella pagina UserStatus, sotto alle altre espressioni, aggiungi il seguente codice.
    <p>{! IF( CONTAINS('salesforce.com','force.com'),
         'Yep', 'Nope') }</p>
    <p>{! IF( DAY(TODAY()) < 15,
         'Before the 15th', 'The 15th or after') }</p>
    Prima di salvare le modifiche e guardare i risultati, prova a prevedere quali saranno. I risultati sulla pagina avranno un aspetto simile al seguente: Playground per le espressioni Visualforce

La prima espressione utilizza lo stesso calcolo della funzione CONTAINS() di prima. La differenza è che la funzione IF() converte il risultato booleano di CONTAINS() in un testo più utile da visualizzare per l'utente. Analogamente, la seconda espressione mostra un solo messaggio durante la prima metà del mese e un messaggio diverso nella seconda metà del mese.

  1. Cancella tutte le espressioni di test, lasciando solo le righe che utilizzano la variabile globale $User. In altre parole, torna a questa pagina.

    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
                {!User.FirstName & ' ' &User.LastName }
               ({! $User.Username })
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Utilizziamo un'espressione condizionale per fare qualcosa di un po' più utile.
  2. Sostituisci la riga che contiene l'espressione $User.Username con il seguente codice:
    ({!IF($User.isActive,User.Username, 'inactive') }). isActive è un altro campo disponibile nella variabile globale $User. Si tratta di un campo booleano che è vero se l'utente è attivo e falso se è stato disattivato. Ora il riquadro Stato utente mostrerà il nome utente dell'utente se questi è attivo, e "inattivo" se non lo è.

Ulteriori informazioni...

Ci sono molte variabili e funzioni globali che si possono utilizzare nelle espressioni Visualforce.

Esistono circa una ventina di variabili globali utilizzabili all'interno di Visualforce. Sono utili per ottenere informazioni sull'utente connesso in quel momento, come abbiamo visto, ma anche per ottenere dettagli sull'organizzazione ($Organization), sulle impostazioni ($Setup), sui dettagli degli oggetti personalizzati ($ObjectType), sulle azioni disponibili per quegli oggetti ($Action) e così via. Per approfondire l'argomento, puoi consultare la guida di riferimento alle variabili globali di Visualforce.

Analogamente, esistono decine di funzioni che possono essere utilizzate in Visualforce. L'elenco è simile, ma non del tutto identico, a quello delle funzioni disponibili nei campi formula. Laddove coincidono, le funzioni si comportano allo stesso modo, quindi è possibile riutilizzare la maggior parte di ciò che si conosce a proposito dei campi formula quando si scrivono le espressioni Visualforce. Per un elenco completo, puoi consultare la guida di riferimento alle funzioni di Visualforce.

Le espressioni hanno molti usi e sono spesso impiegate per fornire valori per gli attributi dei componenti Visualforce.

Risorse

Continua a imparare gratuitamente!
Registra un account per continuare.
Cosa troverai?
  • Ottieni consigli personalizzati per i tuoi obiettivi di carriera
  • Metti in pratica le tue competenze con sfide pratiche e quiz
  • Monitora e condividi i tuoi progressi con i datori di lavoro
  • Accedi a risorse di tutoraggio e opportunità di carriera