Verwenden einfacher Variablen und Formeln
Lernziele
Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
- Erläutern, was ein Visualforce-Ausdruck ist, und Beschreiben, wo er verwendet wird
- Auflisten von mindestens drei globalen Variablen, die für die Verwendung in Visualforce-Ausdrücken verfügbar sind
- Hinzufügen eines Visualforce-Ausdrucks zu einer Visualforce-Seite
- Verwenden einer Funktion in einem Visualforce-Ausdruck
Einführung in globale Variablen und Visualforce-Ausdrücke
Visualforce-Seiten können aus der Datenbank oder aus Webservices abgerufene Daten anzeigen sowie Daten, die sich abhängig davon ändern, wer angemeldet ist und die Seite anzeigt usw. Auf diese dynamischen Daten wird im Markup durch die Verwendung von globalen Variablen, Berechnungen und Eigenschaften zugegriffen, die durch das Steuerfeld der Seite verfügbar gemacht werden. Zusammen werden diese im Allgemeinen als Visualforce-Ausdrücke bezeichnet. Verwenden Sie Ausdrücke für die dynamische Ausgabe oder das Weitergeben von Werten in Komponenten, indem Sie sie zu Attributen zuweisen.
Bei einem Visualforce-Ausdruck handelt es sich um einen beliebigen Satz von Literalwerten, Variablen, Unterausdrücken oder Operatoren, die in einem einzelnen Wert aufgelöst werden können. Methodenaufrufe sind in Ausdrücken nicht zulässig.
Die Ausdruckssyntax in Visualforce lautet: {!expression }
Alles innerhalb der {!}
-Trennzeichen wird ausgewertet und dynamisch ersetzt, wenn die Seite gerendert oder der Wert verwendet wird. Leerzeichen werden ignoriert.
Der resultierende Wert kann ein primitiver Wert (Ganzzahl, Zeichenfolge usw.), eine boolescher Wert, ein "sObject", eine Steuerfeldmethode wie eine Aktionsmethode und andere nützliche Ergebnisse sein.
Globale Variablen
Verwenden Sie globale Variablen, um auf Systemwerte und Ressourcen in Ihrem Visualforce-Markup zuzugreifen und um diese anzuzeigen.
Beispielsweise stellt Visualforce Informationen über den angemeldeten Benutzer in einer globalen Variablen mit dem Namen $User
bereit. Sie können auf Felder der globalen Variablen $User
(und alle weiteren) mithilfe eines Ausdrucks des folgenden Formulars zugreifen {!$GlobalName.fieldName }
.
- Öffnen Sie die Developer Console und klicken Sie zum Erstellen einer neuen Visualforce-Seite auf File (Datei) | New (Neu) | Visualforce Page (Visualforce-Seite). Geben Sie
UserStatus
als Seitennamen ein.
- Ersetzen Sie im Editor jedes Markup durch Folgendes. Dieses Markup erstellt ein Feld, dem Sie einige nützliche Informationen hinzufügen können.
<apex:page> <apex:pageBlock title="User Status"> <apex:pageBlockSection columns="1"> </apex:pageBlockSection> </apex:pageBlock> </apex:page>
- Klicken Sie auf Preview (Vorschau), um eine Vorschau Ihrer Seite anzuzeigen, die Sie anzeigen können, während Sie Änderungen vornehmen.
- Fügen Sie das folgende Markup zwischen den
<apex:pageBlockSection>
-Tags hinzu:{!$User.FirstName }.
In dem von Ihnen erstellten Bereich "User Status" sollte Ihr Vorname angezeigt werden.
- Fügen Sie zwei weitere Ausdrücke hinzu, die die globale Variable
$User
zum Markup für den Bereich "Benutzerstatus" verwenden, sodass die Seite wie folgt aussieht.<apex:page> <apex:pageBlock title="User Status"> <apex:pageBlockSection columns="1"> {!$User.FirstName } {!$User.LastName } ({! $User.Username }) </apex:pageBlockSection> </apex:pageBlock> </apex:page>
{!...}
gibt Visualforce an, dass die Elemente in geschweiften Klammern dynamisch und in der Ausdruckssprache geschrieben sind. Der entsprechende Wert wird berechnet und zur Laufzeit ersetzt, wenn die Seite von einem Benutzer angezeigt wird.
Bei Visualforce-Ausdrücken wird Groß-/Kleinschreibung nicht beachtet und Leerzeichen in {!...}
werden ignoriert. Daher generieren diese Ausdrücke denselben Wert:
{!$User.FirstName}
{!$USER.FIRSTNAME}
{!$user.firstname }
Formelausdrücke
Mit Visualforce können Sie mehr als einfach globale Variablen in der Ausdruckssprache verwenden. Es unterstützt auch Formeln, mit denen Sie Werte ändern können.
Beispielsweise handelt es sich beim Zeichen &
um den Formelsprachenoperator, der Zeichenfolgen verkettet.
- Ersetzen Sie auf Ihrer "UserStatus"-Seite die separaten Ausdrücke für den Vor- und Nachnamen durch den folgenden Formelausdruck. Dieser Ausdruck kombiniert die Vor- und Nachnamen des angemeldeten Benutzers und trennt sie durch ein Leerzeichen. Die Ausgabe sollte identisch aussehen.
{!$User.FirstName & ' ' & $User.LastName}
- Fügen Sie Folgendes zum Seiten-Markup unter den Benutzerinformationen hinzu.
<p> Next week it will be {! TODAY() + 7 } </p> <p> Today's Date is {! TODAY() } </p>
Hierbei handelt es sich um komplexere Formeln, die die TODAY()
-Funktion verwenden. Funktionen sind integrierte Berechnungen, die Sie anhand der Klammern hinter ihrem Namen erkennen können. Der erste Ausdruck berechnet einfach das aktuelle Datum, während der zweite den Additionsoperator verwendet, um dem Datum sieben Tage hinzuzufügen. Die Ausgabe auf Ihrer Seite wird in etwa so aussehen.
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
- Fügen Sie Folgendes zum Seiten-Markup unter den Datumsausdrücken hinzu.
<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>
Einige Funktionen wie TODAY()
verfügen über leere Klammern, aber einige übernehmen Parameter, Werte, die von der Funktion verwendet werden sollen, um ihre Berechnung vorzunehmen. In diesem Beispiel übernimmt YEAR()
einen Datumsparameter, der durch die Funktion TODAY()
bereitgestellt wird, die keine Parameter übernimmt. Die MAX()
-Funktion kann eine beliebige Anzahl an Parametern übernehmen. Die CONTAINS()
-Funktion ist besonders interessant. Sie gibt einen booleschen Wert zurück: etwas, was entweder "true" oder "false" ist. Sie vergleicht zwei Textargumente und gibt "true" zurück, wenn das erste Argument das zweite Argument enthält. Andernfalls gibt sie "false" zurück. In diesem Fall ist "force.com"
in der Zeichenfolge “salesforce.com”
enthalten, daher wird true
zurückgegeben.
Bedingte Ausdrücke
Verwenden Sie einen bedingten Ausdruck, um unterschiedliche Informationen auf Grundlage des Werts des Ausdrucks anzuzeigen.
Wenn eine Rechnung beispielsweise keine Zeilenelemente aufweist, möchten Sie möglicherweise das Wort "ohne" anstelle einer leeren Liste anzeigen. Alternativ möchten Sie möglicherweise bei einem abgelaufenen Element "Beendet" anstelle des Enddatums bzw. der Enduhrzeit anzeigen.
Sie können dies in Visualforce vornehmen, indem Sie einen bedingten Formelausdruck wie IF()
verwenden. Der IF()
-Ausdruck weist drei Argumente auf:
- Das erste ist ein boolesche Wert: etwas, was entweder "true" oder "false" ist. Beispielsweise die
CONTAINS()
-Funktion, die Sie bereits verwendet haben.
- Das zweite Argument ist der Wert, der zurückgegeben wird, wenn der erste Parameter "true" ist.
- Das dritte Argument ist der Wert, der zurückgegeben wird, wenn der erste Parameter "false" ist.
- Fügen Sie auf Ihrer Seite
UserStatus
den folgenden Code unter den anderen Ausdrücken hinzu.<p>{! IF( CONTAINS('salesforce.com','force.com'), 'Yep', 'Nope') }</p> <p>{! IF( DAY(TODAY()) < 15, 'Before the 15th', 'The 15th or after') }</p>
Bevor Sie Ihre Änderungen speichern und die Ergebnisse anzeigen, versuchen Sie, sie zu prognostizieren. Die Ergebnisse auf Ihrer Seite sehen in etwa so aus.
Der erste Ausdruck verwendet dieselbe CONTAINS()
-Funktionsberechnung wie zuvor. Der Unterschied besteht darin, dass die IF()
-Funktion das boolesche Ergebnis von CONTAINS()
in Text umwandelt, der für die Anzeige für den Benutzer nützlicher ist. Entsprechend zeigt der zweite Ausdruck eine Meldung während der ersten Hälfte des Monats an und eine andere in der zweiten Hälfte des Monats an.
- Löschen Sie alle Ihre Testausdrücke und behalten Sie nur die Zeilen bei, in der die globale Variable
$User
verwendet wird. In anderen Worten: zurück zu dieser Seite.<apex:page> <apex:pageBlock title="User Status"> <apex:pageBlockSection columns="1"> {!$User.FirstName & ' ' & $User.LastName } ({! $User.Username }) </apex:pageBlockSection> </apex:pageBlock> </apex:page>
- Im Folgenden wird ein bedingter Ausdruck verwendet, um etwas Nützlicheres zu erledigen. Ersetzen Sie die Zeile mit dem Ausdruck
$User.Username
durch den folgenden Code:
({! IF($User.isActive, $User.Username, 'inactive') })
isActive
ist ein anderes in der globalen Variable $User
verfügbares Feld. Es ist ein boolesches Feld, das "true" ist, wenn der Benutzer aktiv ist, und "false" ist, wenn er deaktiviert wurde. Nun zeigt der Bereich "User Status" den Benutzernamen des Benutzers an, wenn er aktiv ist, wenn er inaktiv ist, wird "inactive (inaktiv)" angezeigt.
Weitere Infos
Es gibt viele globale Variablen und Funktionen, die Sie in Visualforce-Ausdrücken verwenden können.
Es gibt nahezu zwei Dutzend globale Variablen, die in Visualforce verwendet werden können. Sie sind, wie Sie gesehen haben, hilfreich für das Abrufen von Informationen über den aktuell angemeldeten Benutzer. Sie dienen aber auch zum Abrufen von Details über die Organisation ($Organization
), über Einstellungen ($Setup
), über benutzerdefinierte Objekte ($ObjectType
), über in diesen Objekten verfügbare Aktionen ($Action
) usw. Unter Global Variables im Visualforce Developer Guide finden Sie ausführlichere Informationen.
Ebenso gibt es Dutzende Funktionen, die in Visualforce verwendet werden können. Die Liste ist ähnlich, aber nicht identisch wie die in Formelfelder verfügbaren Funktionen. Wo sie sich überschneiden, verhalten sich die Funktionen identisch. Daher können Sie das meiste, was Sie über Formelfelder wissen, erneut anwenden, wenn Sie Visualforce-Ausdrücke schreiben. Unter Functions im Visualforce Developer Guide finden Sie eine vollständige Liste.
Ausdrücke haben viele Verwendungsmöglichkeiten und werden oftmals verwendet, um Werte für Attribute für Visualforce-Komponenten bereitzustellen.
Ressourcen
-
Salesforce-Hilfe: Globale Variablen
-
Salesforce-Hilfe: Elements of a Formula
-
Visualforce Developer Guide: Globale Variablen
-
Visualforce Developer Guide: Funktionen
-
Visualforce Developer Guide: Ausdrucksoperatoren
-
Trailhead: Formeln und Validierungen