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? Inizia la sfida in un Trailhead Playground in italiano e utilizza le traduzioni fornite tra parentesi per la navigazione. Per quanto riguarda i valori da inserire, copia e incolla solo quelli in lingua inglese, perché la convalida della sfida è basata sul fatto che i dati siano in inglese. Se non superi la sfida nella tua organizzazione italiana, ti consigliamo di (1) selezionare Stati Uniti per le impostazioni internazionali, (2) selezionare Inglese per la lingua seguendo le istruzioni riportate qui e, successivamente, (3) fare nuovamente clic sul pulsante "Controlla la sfida".

Visita il badge Trailhead nella tua lingua per informazioni dettagliate su come usufruire dell'esperienza 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 il markup visualizzato 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 tra i 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 User Status (Stato utente) altre due espressioni che utilizzano la variabile globale $User in modo che la pagina abbia il seguente aspetto.
    <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 per nome e cognome con la seguente espressione di formula. Questa espressione combina il nome e il cognome dell'utente connesso, separandoli con uno spazio. L'output deve essere identico.
{!$User.FirstName & ' ' & $User.LastName}
  1. Aggiungi quanto segue al markup della pagina, sotto alle informazioni utente.
<p> Next week it will be {! TODAY() + 7 } </p>
<p> Today's Date is {! TODAY() } </p>

Si tratta di formule più complesse che 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 a questo.

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
  1. 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, aggiungi il seguente codice al di sotto delle altre espressioni.
    <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 a questo.

 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>
  1. Utilizziamo un'espressione condizionale per fare qualcosa di un po' più utile. Sostituiamo la riga contenente 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, consulta l'articolo Global Variables (Variabili globali) nella guida per gli sviluppatori 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, consulta l'articolo Functions (Funzioni) nella guida per gli sviluppatori Visualforce.

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

Risorse

Condividi il tuo feedback su Trailhead dalla Guida di Salesforce.

Conoscere la tua esperienza su Trailhead è importante per noi. Ora puoi accedere al modulo per l'invio di feedback in qualsiasi momento dal sito della Guida di Salesforce.

Scopri di più Continua a condividere il tuo feedback