Dynamisches Dashboard-Bild mit Liquid und HTML erstellen

Sie können Looker-Dashboards Bilder hinzufügen, indem Sie eine Bild-URL in einer Text-Tile mit Markdown hartcodieren. Bilder in Text-Tiles sind jedoch statisch und werden nicht anhand von Ergebnissen aktualisiert. Was ist, wenn Sie möchten, dass sich ein Dashboard-Bild dynamisch basierend auf einem vom Nutzer ausgewählten Filterwert ändert?

Auf dieser Seite mit Best Practices wird gezeigt, wie Sie mit Liquid und dem Parameter html ein dynamisches Dashboard-Bild erstellen.

Die Lösung

Die folgende Lösung basiert auf einem E-Commerce-Dataset, das ein Feld namens users.state enthält, das die Bundesstaaten in einem hypothetischen E-Commerce-Dataset darstellt:

dimension: state {
  type: string
  sql: ${TABLE}.state ;;
}

Angenommen, Sie möchten das Bild der Flagge eines Bundesstaates in einem Dashboard anzeigen, das sich je nach dem Bundesstaat aktualisiert, nach dem ein Benutzer die Dashboard-Ergebnisse filtern möchte.

Zum Erstellen des dynamischen Dashboard-Bilds sind drei Schritte erforderlich:

  1. Erstellen Sie eine Bilddimension in LookML.
  2. Erstellen Sie eine dynamische Bild-Dashboard-Tile.
  3. Dashboard-Filter hinzufügen und letzte Anpassungen vornehmen

Schritt 1: Bilddimension in LookML erstellen

So erstellen Sie eine Bilddimension in LookML:

  1. Rufen Sie zuerst das Projekt und die Ansichtsdatei mit der Dimension auf, der Sie Bilder hinzufügen möchten. Erstellen Sie dann eine neue Dimension basierend auf diesem Feld, die speziell für die Anzeige der Bilder verwendet wird.
  2. Fügen Sie für jeden Wert, für den Sie ein Bild anzeigen möchten, einen html-Parameter hinzu, um eine bedingte {% if %}-Anweisung mit der Variable value zu definieren.

    Mit der folgenden state_flag_image-Dimension wird beispielsweise eine Bedingung für die Anzeige der angegebenen Bilder (mit html <img> -Tags) festgelegt, wenn der Wert von state "California", "New York", "Colorado" oder "Illinois" ist. Für alle anderen Status können Sie ein Symbol für „Kein Bild verfügbar“ anzeigen:

          dimension: state_flag_image {
              type: string
              sql: ${state} ;;
              html:
                  {% if state._value == "California" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/0/01/Flag_of_California.svg" height="170" width="255">
                  {% elsif state._value == "New York" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/1/1a/Flag_of_New_York.svg/1200px-Flag_of_New_York.svg.png" height="170" width="255">
                  {% elsif state._value == "Colorado" %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/4/46/Flag_of_Colorado.svg/255px-Flag_of_Colorado.svg.png" height="170" width="255">
                  {% elsif state._value == "Illinois"%}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/0/01/Flag_of_Illinois.svg/1200px-Flag_of_Illinois.svg.png" height="170" width="255">
                  {% else %}
                  <img src="https://upload.wikimedia.org/wikipedia/commons/thumb/a/ac/No_image_available.svg/1024px-No_image_available.svg.png" height="170" width="170">
                  {% endif %} ;;
          }
        
  3. Erstellen Sie für jeden Wert, für den ein Bild angezeigt werden soll, eine Wertbedingung. Alternativ können Sie ein dynamisches Bildfeld mit der Liquid-Variable value erstellen, wie im Community-Beitrag How to add images to visualizations beschrieben.

Als Nächstes können Sie eine Dashboard-Tile für die Bilddimension erstellen.

Schritt 2: Dynamische Bild-Dashboard-Tile erstellen

Nachdem die Bilddimension (state_flag_image) erstellt wurde, können Sie ein Explore erstellen, das zur dynamischen Bild-Dashboard-Tile wird.

Erstellen Sie den Explore mit den folgenden Kriterien:

  • Fügen Sie einen Filter für die ursprüngliche Dimension hinzu (in diesem Fall state). Legen Sie den Filter für einen beliebigen Wert fest. Dadurch wird zuerst das Bild „Kein Bild verfügbar“ angezeigt, da kein bestimmter Filterwert ausgewählt ist. Dieser Filterwert wird entsprechend der Auswahl des Nutzers für den Dashboard-Filter aktualisiert. 
  • Wählen Sie die Bilddimension (in diesem Fall state_flag_image) und alle anderen Dimensionen aus, die für die Abfrage zur Bestimmung des Bildes erforderlich sind. Wenn Sie beispielsweise ein Datum berücksichtigen möchten, können Sie das Datum usw. einbeziehen.
  • Ändern Sie das Zeilenlimit in eine Zeile.
  • Ändern Sie den Visualisierungstyp in eine KPI-Visualisierung (Einzelwert) oder Einzelwert (alt) und blenden Sie alle anderen Spalten außer der Bilddimension (state_flag_image) aus. 

In Ihrem Explore wird im Bereich Visualisierung zuerst das Bild „Kein Bild verfügbar“ in der Visualisierung mit einem einzelnen Wert angezeigt. Das angezeigte Bild ändert sich je nach Filterwert, den der Nutzer im endgültigen Dashboard auswählt:

Speichern Sie das Explore als Tile in einem Dashboard.

Schritt 3: Dashboard-Filter hinzufügen und letzte Anpassungen vornehmen

Jetzt müssen Sie dem Dashboard Dashboard-Filter hinzufügen. Die Filter im Dashboard aktualisieren den Filter im Explore, um das angezeigte Bild basierend auf der Auswahl des Nutzers zu ändern.

Erstellen Sie den Filter im Bearbeitungsmodus des Dashboards:

  • Öffnen Sie das Fenster „Filter hinzufügen“.
  • Wählen Sie das Feld aus, nach dem gefiltert werden soll. Das Filterfeld sollte die Dimension sein, auf der die Bilddimension basiert. In diesem Beispiel ist das Feld für den Filter state.
  • Wählen Sie auf dem Tab Zu aktualisierende Kacheln die Bildkachel aus Schritt 2 aus.
  • Wählen Sie im Drop-down-Menü Zu filterndes Feld die ursprüngliche Dimension aus (in diesem Fall state).
  • Wählen Sie weitere Tiles aus, die Sie aktualisieren möchten.
  • Passen Sie den Filter nach Bedarf an. Wenn Sie die Steuerungsoption Erweitert auswählen, müssen Sie die Option Mehrere Filterwerte zulassen deaktivieren, die für die Steuerungsoption Erweitert automatisch aktiviert ist.

Die Bild-Tile wird jetzt mit der Filterauswahl des Nutzers aktualisiert.

Wenn ein Nutzer nach „Kalifornien“ filtert, werden im Dashboard die Flagge und die Daten für den Bundesstaat Kalifornien angezeigt:

Wenn ein Nutzer nach „Colorado“ filtert, werden im Dashboard die Flagge und die Daten für den Bundesstaat Colorado angezeigt: