Erstellen einer Tabellenansicht

In einer Tabellenansicht werden Daten in einer oder mehreren Spalten angezeigt. Jede Zeile in der Tabelle stellt ein .NET-Objekt dar, und jede Spalte der Tabelle stellt eine Eigenschaft des -Objekts oder eines Skriptwerts dar. Sie können eine Tabellenansicht definieren, die alle Eigenschaften eines Objekts oder eine Teilmenge der Eigenschaften eines Objekts anzeigt.

Eine Tabellenansichtsanzeige

Das folgende Beispiel zeigt, wie Windows PowerShell das System.Serviceprocess.Servicecontroller-Objekt anzeigt, das vom Get-Service-Cmdlet zurückgegeben wird. Für dieses Objekt hat Windows PowerShell eine Tabellenansicht definiert, die die Status -Eigenschaft, die Name -Eigenschaft (diese Eigenschaft ist eine Aliaseigenschaft für die ServiceName -Eigenschaft) und die DisplayName -Eigenschaft anzeigt. Jede Zeile in der Tabelle stellt ein vom Cmdlet zurückgegebenes Objekt dar.

Status   Name               DisplayName
------   ----               -----------
Stopped  AJRouter           AllJoyn Router Service
Stopped  ALG                Application Layer Gateway Service
Stopped  AppIDSvc           Application Identity
Running  Appinfo            Application Information

Definieren der Tabellenansicht

Der folgende XML-Code zeigt das Tabellenansichtsschema für die Anzeige des System.Serviceprocess.Servicecontrollers? Displayproperty=Fullname-Objekt. Sie müssen jede Eigenschaft angeben, die in der Tabellenansicht angezeigt werden soll.

<View>
  <Name>service</Name>
  <ViewSelectedBy>
    <TypeName>System.ServiceProcess.ServiceController</TypeName>
  </ViewSelectedBy>
  <TableControl>
    <TableHeaders>
      <TableColumnHeader>
        <Width>8</Width>
      </TableColumnHeader>
      <TableColumnHeader>
        <Width>18</Width>
      </TableColumnHeader>
      <TableColumnHeader>
        <Width>38</Width>
      </TableColumnHeader>
    </TableHeaders>
    <TableRowEntries>
      <TableRowEntry>
        <TableColumnItems>
          <TableColumnItem>
           <PropertyName>Status</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>Name</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>DisplayName</PropertyName>
          </TableColumnItem>
        </TableColumnItems>
      </TableRowEntry>
    </TableRowEntries>
  </TableControl>
</View>

Die folgenden XML-Elemente werden verwendet, um eine Listenansicht zu definieren:

  • Das View-Element ist das übergeordnete Element der Tabellenansicht. (Dies ist dasselbe übergeordnete Element für die Listenansichten, breiten Ansichten und benutzerdefinierten Steuerelementansichten.)

  • Das Name-Element gibt den Namen der Sicht an. Dieses Element ist für alle Ansichten erforderlich.

  • Das ViewSelectedBy-Element definiert die Objekte, die die Sicht verwenden. Dieses Element ist erforderlich.

  • Das GroupBy-Element (in diesem Beispiel nicht gezeigt) definiert, wann eine neue Gruppe von Objekten angezeigt wird. Eine neue Gruppe wird gestartet, wenn sich der Wert einer bestimmten Eigenschaft oder eines Bestimmten Skripts ändert. Dieses Element ist optional.

  • Das Controls-Element (in diesem Beispiel nicht gezeigt) definiert die benutzerdefinierten Steuerelemente, die von der Tabellenansicht definiert werden. Mit Steuerelementen können Sie weiter angeben, wie die Daten angezeigt werden. Dieses Element ist optional. Eine Sicht kann eigene benutzerdefinierte Steuerelemente definieren oder allgemeine Steuerelemente verwenden, die von jeder Ansicht in der Formatierungsdatei verwendet werden können. Weitere Informationen zu benutzerdefinierten Steuerelementen finden Sie unter Erstellen von benutzerdefinierten Steuerelementen.

  • Das HideTableHeaders-Element (in diesem Beispiel nicht angezeigt) gibt an, dass in der Tabelle keine Bezeichnungen am oberen Rand der Tabelle angezeigt werden. Dieses Element ist optional.

  • Das TableControl-Element, das die Header- und Zeileninformationen der Tabelle definiert. Ähnlich wie bei allen anderen Ansichten kann eine Tabellenansicht die Werte von Objekteigenschaften oder von Skripts generierten Werten anzeigen.

Definieren von Spaltenüberschriften

  1. Das TableHeaders-Element und seine untergeordneten Elemente definieren, was oben in der Tabelle angezeigt wird.

  2. Das TableColumnHeader-Element definiert, was oben in einer Spalte der Tabelle angezeigt wird. Geben Sie diese Elemente in der Reihenfolge an, in der die Header angezeigt werden sollen.

    Es gibt keine Beschränkung für die Anzahl dieser Elemente, die Sie verwenden können, aber die Anzahl der TableColumnHeader-Elemente in der Tabellenansicht muss der Anzahl der tableRowEntry-Elemente entsprechen, die Sie verwenden.

  3. Das Label-Element gibt den angezeigten Text an. Dieses Element ist optional.

  4. Das Width-Element gibt die Breite (in Zeichen) der Spalte an. Dieses Element ist optional.

  5. Das Alignment-Element gibt an, wie die Bezeichnung angezeigt wird. Die Bezeichnung kann links, rechts oder zentriert ausgerichtet werden. Dieses Element ist optional.

Definieren der Tabellenzeilen

Tabellenansichten können eine oder mehrere Definitionen bereitstellen, die angeben, welche Daten in den Zeilen der Tabelle mithilfe der untergeordneten Elemente des TableRowEntries-Elements angezeigt werden. Beachten Sie, dass Sie mehrere Definitionen für die Zeilen der Tabelle angeben können, aber die Header für die Zeilen bleiben unabhängig von der verwendeten Zeilendefinition gleich. In der Regel enthält eine Tabelle nur eine Definition.

Im folgenden Beispiel stellt die Sicht eine einzelne Definition bereit, die die Werte mehrerer Eigenschaften von System.Diagnostics.Process anzeigt. Displayproperty=Fullname-Objekt. In einer Tabellenansicht kann der Wert einer Eigenschaft oder der Wert eines Skripts (im Beispiel nicht gezeigt) in den Zeilen angezeigt werden.

<TableRowEntries>
      <TableRowEntry>
        <TableColumnItems>
          <TableColumnItem>
           <PropertyName>Status</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>Name</PropertyName>
          </TableColumnItem>
          <TableColumnItem>
            <PropertyName>DisplayName</PropertyName>
          </TableColumnItem>
        </TableColumnItems>
      </TableRowEntry>
    </TableRowEntries>

Die folgenden XML-Elemente können verwendet werden, um Definitionen für eine Zeile bereitzustellen:

  • Das TableRowEntries-Element und seine untergeordneten Elemente definieren, was in den Zeilen der Tabelle angezeigt wird.

  • Das TableRowEntry-Element stellt eine Definition der Zeile bereit. Mindestens ein TableRowEntry-Vorgang ist erforderlich. es gibt jedoch keinen maximalen Grenzwert für die Anzahl der Elemente, die Sie hinzufügen können. In den meisten Fällen hat eine Sicht nur eine Definition.

  • Das EntrySelectedBy-Element gibt die Objekte an, die von einer bestimmten Definition angezeigt werden. Dieses Element ist optional und wird nur benötigt, wenn Sie mehrere TableRowEntry-Elemente definieren, die verschiedene Objekte anzeigen.

  • Das Wrap-Element gibt an, dass Text, der die Spaltenbreite überschreitet, in der nächsten Zeile angezeigt wird. Standardmäßig wird Text, der die Spaltenbreite überschreitet, abgeschnitten.

  • Das TableColumnItems-Element definiert die Eigenschaften oder Skripts, deren Werte in der Zeile angezeigt werden.

  • Das TableColumnItem-Element definiert die Eigenschaft oder das Skript, deren Wert in der Spalte der Zeile angezeigt wird. Für jede Spalte der Zeile ist ein TableColumnItem-Element erforderlich. Der erste Eintrag wird in der ersten Spalte, der zweite Eintrag in der zweiten Spalte usw. angezeigt.

  • Das PropertyName-Element gibt die Eigenschaft an, deren Wert in der Zeile angezeigt wird. Sie müssen entweder eine Eigenschaft oder ein Skript angeben, aber Sie können nicht beides angeben.

  • Das ScriptBlock-Element gibt das Skript an, dessen Wert in der Zeile angezeigt wird. Sie müssen entweder ein Skript oder eine Eigenschaft angeben, aber Sie können nicht beides angeben.

  • Das FormatString-Element gibt ein Formatmuster an, das definiert, wie die Eigenschaft oder der Skriptwert angezeigt wird. Dieses Element ist optional.

  • Das Alignment-Element gibt an, wie der Wert der Eigenschaft oder des Skripts angezeigt wird. Der Wert kann links, rechts oder zentriert ausgerichtet werden. Dieses Element ist optional.

Definieren der Objekte, die die Tabellenansicht verwenden

Es gibt zwei Möglichkeiten, zu definieren, welche .NET-Objekte die Tabellenansicht verwenden. Sie können das ViewSelectedBy-Element verwenden, um die Objekte zu definieren, die von allen Definitionen der Sicht angezeigt werden können, oder Sie können das EntrySelectedBy-Element verwenden, um zu definieren, welche Objekte von einer bestimmten Definition der Sicht angezeigt werden. In den meisten Fällen verfügt eine Sicht nur über eine Definition, sodass Objekte in der Regel durch das ViewSelectedBy-Element definiert werden.

Im folgenden Beispiel wird gezeigt, wie die Objekte definiert werden, die von der Tabellenansicht mithilfe der ViewSelectedBy- und TypeName-Elemente angezeigt werden. Es gibt keine Beschränkung für die Anzahl der TypeName-Elemente, die Sie angeben können, und ihre Reihenfolge ist nicht signifikant.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.ServiceProcess.ServiceController</TypeName>
  </ViewSelectedBy>
  <TableControl>...</TableControl>
</View>

Die folgenden XML-Elemente können verwendet werden, um die Von der Tabellenansicht verwendeten Objekte anzugeben:

  • Das ViewSelectedBy-Element definiert, welche Objekte von der Listenansicht angezeigt werden.

  • Das TypeName-Element gibt das .NET-Objekt an, das von der Sicht angezeigt wird. Der vollqualifizierte .NET-Typname ist erforderlich. Sie müssen mindestens einen Typ oder auswahlsatz für die Sicht angeben, es gibt jedoch keine maximale Anzahl von Elementen, die angegeben werden können.

Im folgenden Beispiel werden die Elemente ViewSelectedBy und SelectionSetName verwendet. Verwenden Sie Auswahlsätze, bei denen Sie über einen verknüpften Satz von Objekten verfügen, die mit mehreren Ansichten angezeigt werden, z. B. wenn Sie eine Listenansicht und eine Tabellenansicht für dieselben Objekte definieren. Weitere Informationen zum Erstellen eines Auswahlsatzes finden Sie unter Definieren von Auswahlsätzen.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <SelectionSetName>.NET Type Set</SelectionSetName>
  </ViewSelectedBy>
  <TableControl>...</TableControl>
</View>

Die folgenden XML-Elemente können verwendet werden, um die Objekte anzugeben, die von der Listenansicht verwendet werden:

  • Das ViewSelectedBy-Element definiert, welche Objekte von der Listenansicht angezeigt werden.

  • Das Element SelectionSetName gibt einen Satz von -Objekten an, die von der Ansicht angezeigt werden können. Sie müssen mindestens einen Auswahlsatz oder -typ für die Sicht angeben, es gibt jedoch keine maximale Anzahl von Elementen, die angegeben werden können.

Im folgenden Beispiel wird gezeigt, wie die Objekte definiert werden, die von einer bestimmten Definition der Tabellenansicht mithilfe des EntrySelectedBy-Elements angezeigt werden. Mit diesem Element können Sie den .NET-Typnamen des Objekts, einen Auswahlsatz von Objekten oder eine Auswahlbedingung angeben, die angibt, wann die Definition verwendet wird. Weitere Informationen zum Erstellen von Auswahlbedingungen finden Sie unter Definieren von Bedingungen zum Anzeigen von Daten.

Hinweis

Beim Erstellen mehrerer Definitionen der Tabellenansicht können Sie keine unterschiedlichen Spaltenüberschriften angeben. Sie können nur angeben, was in den Zeilen der Tabelle angezeigt wird, z. B. welche Objekte angezeigt werden.

<TableRowEntry>
  <EntrySelectedBy>
    <TypeName>.NET Type</TypeName>
  </EntrySelectedBy>
</TableRowEntry>

Die folgenden XML-Elemente können verwendet werden, um die Objekte anzugeben, die von einer bestimmten Definition der Listenansicht verwendet werden:

  • Das EntrySelectedBy-Element definiert, welche Objekte von der Definition angezeigt werden.

  • Das TypeName-Element gibt das .NET-Objekt an, das von der Definition angezeigt wird. Bei Verwendung dieses Elements ist der vollqualifizierte .NET-Typname erforderlich. Sie müssen mindestens einen Typ, einen Auswahlsatz oder eine Auswahlbedingung für die Definition angeben, es gibt jedoch keine maximale Anzahl von Elementen, die angegeben werden können.

  • Das Element SelectionSetName (nicht angezeigt) gibt einen Satz von -Objekten an, die von dieser Definition angezeigt werden können. Sie müssen mindestens einen Typ, einen Auswahlsatz oder eine Auswahlbedingung für die Definition angeben, es gibt jedoch keine maximale Anzahl von Elementen, die angegeben werden können.

  • Das Element SelectionCondition (nicht gezeigt) gibt eine Bedingung an, die vorhanden sein muss, damit diese Definition verwendet werden kann. Sie müssen mindestens einen Typ, einen Auswahlsatz oder eine Auswahlbedingung für die Definition angeben, es gibt jedoch keine maximale Anzahl von Elementen, die angegeben werden können. Weitere Informationen zum Definieren von Auswahlbedingungen finden Sie unter Definieren von Bedingungen zum Anzeigen von Daten.

Verwenden von Formatzeichenfolgen

Formatierungszeichenfolgen können einer Ansicht hinzugefügt werden, um die Anzeige der Daten weiter zu definieren. Das folgende Beispiel zeigt, wie eine Formatierungszeichenfolge für den Wert der -Eigenschaft definiert StartTime wird.

<TableColumnItem>
  <PropertyName>StartTime</PropertyName>
  <FormatString>{0:MMM} {0:DD} {0:HH}:{0:MM}</FormatString>
</TableColumnItem>

Die folgenden XML-Elemente können verwendet werden, um ein Formatmuster anzugeben:

  • Das TableColumnItem-Element definiert die Eigenschaft oder das Skript, deren Wert in der Spalte der Zeile angezeigt wird. Für jede Spalte der Zeile ist ein TableColumnItem-Element erforderlich. Der erste Eintrag wird in der ersten Spalte, der zweite Eintrag in der zweiten Spalte usw. angezeigt.

  • Das PropertyName-Element gibt die Eigenschaft an, deren Wert in der Zeile angezeigt wird. Sie müssen entweder eine Eigenschaft oder ein Skript angeben, aber Sie können nicht beides angeben.

  • Das FormatString-Element gibt ein Formatmuster an, das definiert, wie die Eigenschaft oder der Skriptwert angezeigt wird.

Im folgenden Beispiel wird die ToString -Methode aufgerufen, um den Wert des Skripts zu formatieren. Skripts können jede Methode eines Objekts aufrufen. Wenn ein Objekt über eine Methode wie verfügt, ToString die Formatierungsparameter aufweist, kann das Skript diese Methode aufrufen, um den Ausgabewert des Skripts zu formatieren.

<ListItem>
  <ScriptBlock>
    [String]::Format("{0,-10} {1,-8}", $_.LastWriteTime.ToString("d"), $_.LastWriteTime.ToString("t"))
  </ScriptBlock>
</ListItem>

Das folgende XML-Element kann zum Aufrufen der -Methode verwendet ToString werden:

  • Das TableColumnItem-Element definiert die Eigenschaft oder das Skript, deren Wert in der Spalte der Zeile angezeigt wird. Für jede Spalte der Zeile ist ein TableColumnItem-Element erforderlich. Der erste Eintrag wird in der ersten Spalte, der zweite Eintrag in der zweiten Spalte usw. angezeigt.

  • Das ScriptBlock-Element gibt das Skript an, dessen Wert in der Zeile angezeigt wird. Sie müssen entweder ein Skript oder eine Eigenschaft angeben, aber Sie können nicht beides angeben.

Weitere Informationen

Schreiben einer PowerShell-Formatierungsdatei