Skapa en tabellvy

En tabellvy visar data i en eller flera kolumner. Varje rad i tabellen representerar ett .NET-objekt och varje kolumn i tabellen representerar en egenskap för objektet eller ett skriptvärde. Du kan definiera en tabellvy som visar alla egenskaper för ett objekt eller en delmängd av egenskaperna för ett objekt.

En tabellvy

I följande exempel visas hur Windows PowerShell visar objektet System.Serviceprocess.Servicecontroller som returneras av cmdleten Get-Service. För det här Windows PowerShell har definierat en tabellvy som visar egenskapen, egenskapen (den här egenskapen är en aliasegenskap för Status Name ServiceName egenskapen) och DisplayName egenskapen. Varje rad i tabellen representerar ett objekt som returneras av cmdleten .

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

Definiera tabellvyn

Följande XML visar tabellvyschemat för att visa System.Serviceprocess.Servicecontroller? Displayproperty=Fullname object. Du måste ange varje egenskap som du vill ska visas i tabellvyn.

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

Följande XML-element används för att definiera en listvy:

  • View-elementet är det överordnade elementet i tabellvyn. (Det här är samma överordnade element för vyerna lista, bred och anpassad kontroll.)

  • Elementet Name anger namnet på vyn. Det här elementet krävs för alla vyer.

  • Elementet ViewSelectedBy definierar de objekt som använder vyn. Det här elementet krävs.

  • GroupBy-elementet (visas inte i det här exemplet) definierar när en ny grupp med objekt visas. En ny grupp startas när värdet för en viss egenskap eller ett skript ändras. Det här elementet är valfritt.

  • Elementet Controls (visas inte i det här exemplet) definierar de anpassade kontroller som definieras av tabellvyn. Kontroller ger dig ett sätt att ytterligare ange hur data ska visas. Det här elementet är valfritt. En vy kan definiera egna anpassade kontroller eller använda vanliga kontroller som kan användas av valfri vy i formateringsfilen. Mer information om anpassade kontroller finns i Skapa anpassade kontroller.

  • Elementet HideTableHeaders (visas inte i det här exemplet) anger att tabellen inte visar några etiketter överst i tabellen. Det här elementet är valfritt.

  • TableControl-elementet som definierar tabellens rubrik- och radinformation. På samma sätt som för alla andra vyer kan en tabellvy visa värdena för objektegenskaper eller värden som genereras av skript.

Definiera kolumnrubriker

  1. Elementet TableHeaders och dess underordnade element definierar vad som visas överst i tabellen.

  2. Elementet TableColumnHeader definierar vad som visas överst i en kolumn i tabellen. Ange de här elementen i den ordning som du vill att rubrikerna ska visas.

    Det finns ingen gräns för antalet dessa element som du kan använda, men antalet TableColumnHeader-element i tabellvyn måste vara lika med antalet TableRowEntry-element som du använder.

  3. Elementet Etikett anger den text som visas. Det här elementet är valfritt.

  4. Elementet Width anger kolumnens bredd (i tecken). Det här elementet är valfritt.

  5. Elementet Justering anger hur etiketten visas. Etiketten kan justeras åt vänster, till höger eller centreras. Det här elementet är valfritt.

Definiera tabellrader

Tabellvyer kan tillhandahålla en eller flera definitioner som anger vilka data som visas i raderna i tabellen med hjälp av de underordnade elementen i TableRowEntries-elementet. Observera att du kan ange flera definitioner för raderna i tabellen, men radernas rubriker förblir desamma, oavsett vilken raddefinition som används. Normalt har en tabell bara en definition.

I följande exempel innehåller vyn en enda definition som visar värdena för flera egenskaper för System.Diagnostics.Process? Displayproperty=Fullname object. En tabellvy kan visa värdet för en egenskap eller värdet för ett skript (visas inte i exemplet) i dess rader.

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

Följande XML-element kan användas för att ange definitioner för en rad:

  • Elementet TableRowEntries och dess underordnade element definierar vad som visas i raderna i tabellen.

  • Elementet TableRowEntry innehåller en definition av raden. Minst en TableRowEntry krävs. Det finns dock ingen maxgräns för antalet element som du kan lägga till. I de flesta fall har en vy bara en definition.

  • Elementet EntrySelectedBy anger de objekt som visas av en specifik definition. Det här elementet är valfritt och behövs bara när du definierar flera TableRowEntry-element som visar olika objekt.

  • Elementet Wrap anger att text som överskrider kolumnbredden visas på nästa rad. Som standard trunkeras text som överskrider kolumnbredden.

  • Elementet TableColumnItems definierar de egenskaper eller skript vars värden visas på raden.

  • Elementet TableColumnItem definierar egenskapen eller skriptet vars värde visas i kolumnen på raden. Ett TableColumnItem-element krävs för varje kolumn på raden. Den första posten visas i den första kolumnen, den andra posten i den andra kolumnen och så vidare.

  • Elementet PropertyName anger den egenskap vars värde visas på raden. Du måste ange antingen en egenskap eller ett skript, men du kan inte ange båda.

  • ScriptBlock-elementet anger det skript vars värde visas på raden. Du måste ange antingen ett skript eller en egenskap, men du kan inte ange båda.

  • FormatString-elementet anger ett formatmönster som definierar hur egenskapen eller skriptvärdet visas. Det här elementet är valfritt.

  • Justeringselementet anger hur värdet för egenskapen eller skriptet visas. Värdet kan justeras åt vänster, till höger eller centreras. Det här elementet är valfritt.

Definiera de objekt som använder tabellvyn

Det finns två sätt att definiera vilka .NET-objekt som använder tabellvyn. Du kan använda elementet ViewSelectedBy för att definiera de objekt som kan visas av alla definitioner av vyn, eller så kan du använda elementet EntrySelectedBy för att definiera vilka objekt som ska visas av en specifik definition av vyn. I de flesta fall har en vy bara en definition, så objekt definieras vanligtvis av elementet ViewSelectedBy.

I följande exempel visas hur du definierar de objekt som visas i tabellvyn med elementen ViewSelectedBy och TypeName. Det finns ingen gräns för antalet TypeName-element som du kan ange och deras ordning är inte betydande.

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

Följande XML-element kan användas för att ange de objekt som används av tabellvyn:

  • Elementet ViewSelectedBy definierar vilka objekt som visas i listvyn.

  • Elementet TypeName anger det .NET-objekt som visas i vyn. Det fullständigt kvalificerade .NET-typnamnet krävs. Du måste ange minst en typ eller urvalsuppsättning för vyn, men det finns inget maximalt antal element som kan anges.

I följande exempel används elementen ViewSelectedBy och SelectionSetName. Använd markeringsuppsättningar där du har en relaterad uppsättning objekt som visas med flera vyer, till exempel när du definierar en listvy och en tabellvy för samma objekt. Mer information om hur du skapar en urvalsuppsättning finns i Definiera urvalsuppsättningar.

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

Följande XML-element kan användas för att ange de objekt som används av listvyn:

  • Elementet ViewSelectedBy definierar vilka objekt som visas i listvyn.

  • Elementet SelectionSetName anger en uppsättning objekt som kan visas i vyn. Du måste ange minst en urvalsuppsättning eller typ för vyn, men det finns inget maximalt antal element som kan anges.

I följande exempel visas hur du definierar de objekt som visas av en specifik definition av tabellvyn med hjälp av elementet EntrySelectedBy. Med det här elementet kan du ange .NET-typnamnet för objektet, en urvalsuppsättning objekt eller ett urvalsvillkor som anger när definitionen används. Mer information om hur du skapar ett urvalsvillkor finns i Definiera villkor för att visa data.

Anteckning

När du skapar flera definitioner av tabellvyn kan du inte ange olika kolumnrubriker. Du kan bara ange vad som ska visas i raderna i tabellen, till exempel vilka objekt som ska visas.

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

Följande XML-element kan användas för att ange de objekt som används av en specifik definition av listvyn:

  • Elementet EntrySelectedBy definierar vilka objekt som visas av definitionen.

  • Elementet TypeName anger det .NET-objekt som visas av definitionen. När du använder det här elementet krävs det fullständigt kvalificerade .NET-typnamnet. Du måste ange minst en typ, en urvalsuppsättning eller ett urvalsvillkor för definitionen, men det finns inget maximalt antal element som kan anges.

  • Elementet SelectionSetName (visas inte) anger en uppsättning objekt som kan visas med den här definitionen. Du måste ange minst en typ, en urvalsuppsättning eller ett urvalsvillkor för definitionen, men det finns inget maximalt antal element som kan anges.

  • Elementet SelectionCondition (visas inte) anger ett villkor som måste finnas för att den här definitionen ska användas. Du måste ange minst en typ, en urvalsuppsättning eller ett urvalsvillkor för definitionen, men det finns inget maximalt antal element som kan anges. Mer information om hur du definierar urvalsvillkor finns i Definiera villkor för att visa data.

Använda formatsträngar

Formateringssträngar kan läggas till i en vy för att ytterligare definiera hur data ska visas. I följande exempel visas hur du definierar en formateringssträng för värdet för StartTime egenskapen .

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

Följande XML-element kan användas för att ange ett formatmönster:

  • Elementet TableColumnItem definierar den egenskap eller det skript vars värde visas i kolumnen på raden. Ett TableColumnItem-element krävs för varje kolumn på raden. Den första posten visas i den första kolumnen, den andra posten i den andra kolumnen och så vidare.

  • Elementet PropertyName anger den egenskap vars värde visas på raden. Du måste ange antingen en egenskap eller ett skript, men du kan inte ange båda.

  • FormatString-elementet anger ett formatmönster som definierar hur egenskapen eller skriptvärdet visas.

I följande exempel ToString anropas metoden för att formatera värdet för skriptet. Skript kan anropa valfri metod för ett objekt. Om ett objekt har en -metod, till exempel , som har formateringsparametrar, kan skriptet därför anropa den metoden för att formatera ToString utdatavärdet för skriptet.

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

Följande XML-element kan användas för att anropa ToString metoden :

  • Elementet TableColumnItem definierar den egenskap eller det skript vars värde visas i kolumnen på raden. Ett TableColumnItem-element krävs för varje kolumn på raden. Den första posten visas i den första kolumnen, den andra posten i den andra kolumnen och så vidare.

  • ScriptBlock-elementet anger det skript vars värde visas på raden. Du måste ange antingen ett skript eller en egenskap, men du kan inte ange båda.

Se även

Skriva en PowerShell-formateringsfil