Skip to main content

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
Hinweis

Hinweis

Lernen Sie auf Deutsch? In diesem Badge ist für die praktischen Trailhead-Aufgaben Englisch als Bearbeitungssprache festgelegt. Übersetzungen werden zur Referenz in Klammern angegeben. Stellen Sie sicher, dass Sie die englischen Werte kopieren und einfügen und stellen Sie die Sprache Ihres Trailhead Playgrounds auf "English (Englisch)" und das Gebietsschema auf "United States (USA)" um. Die zugehörigen Anweisungen finden Sie hier.

Im Badge "Trailhead in Ihrer Sprache" erfahren Sie, wie Sie die übersetzte Trailhead-Umgebung nutzen.

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 }.

  1. Ö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.
  2. Ersetzen Sie im Editor jedes Markup durch Folgendes.

    <apex:page>
        <apex:pageBlock title="User Status">
            <apex:pageBlockSection columns="1">
            </apex:pageBlockSection>
        </apex:pageBlock>
    </apex:page>
    Dieses Markup erstellt ein Feld, dem Sie einige nützliche Informationen hinzufügen können.
  3. Klicken Sie auf Preview (Vorschau), um eine Vorschau Ihrer Seite anzuzeigen, die Sie anzeigen können, während Sie Änderungen vornehmen.
  4. 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.
  5. Fügen Sie zwei weitere Ausdrücke hinzu, die die globale Variable "$User" zum Markup für den Bereich "User Status" 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.

  1. Ersetzen Sie auf Ihrer "UserStatus"-Seite die separaten Ausdrücke für den Vor- und Nachnamen durch den folgenden Formelausdruck.
    {!User.FirstName & ' ' &User.LastName }Dieser Ausdruck kombiniert die Vor- und Nachnamen des angemeldeten Benutzers und trennt sie durch ein Leerzeichen. Die Ausgabe sollte identisch aussehen.
  2. Fügen Sie dem Seiten-Markup unterhalb der Benutzerinformationen Folgendes hinzu:


    <p> Next week it will be {!TODAY() + 7 } </p><p> Today's Date is {!TODAY() } </p>Es gibt 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 2014Today's Date is Thu Sep 18 00:00:00 GMT 2014 (Nächste Woche ist Do, 25. Sep 00:00:00 GMT 2014Das heutige Datum ist Do, 18. Sep 00:00:00 GMT 2014).

  3. 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.
  1. 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. Übungsbereich zu Visualforce-Ausdrücken

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.

  1. 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.
  2. 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. In der Visualforce-Referenz zu globalen Variablen finden Sie weitere 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. In der Visualforce-Referenz zu Funktionen 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

Lernen Sie weiter kostenlos!
Registrieren Sie sich für einen Account, um fortzufahren.
Was ist für Sie drin?
  • Holen Sie sich personalisierte Empfehlungen für Ihre Karriereplanung
  • Erproben Sie Ihre Fähigkeiten mithilfe praktischer Aufgaben und Quizze
  • Verfolgen Sie Ihre Fortschritte nach und teilen Sie sie mit Arbeitgebern
  • Nutzen Sie Mentoren und Karrierechancen