Sdílet prostřednictvím


Vytvoření zobrazení tabulky

Zobrazení tabulky zobrazuje data v jednom nebo více sloupcích. Každý řádek v tabulce představuje objekt .NET a každý sloupec tabulky představuje vlastnost objektu nebo hodnoty skriptu. Můžete definovat zobrazení tabulky, které zobrazuje všechny vlastnosti objektu nebo podmnožinu vlastností objektu.

Zobrazení tabulky

Následující příklad ukazuje, jak Windows PowerShell zobrazuje objekt System.ServiceProcess.ServiceController vrácený rutinou Get-Service. Pro tento objekt definoval Windows PowerShell zobrazení tabulky, které zobrazuje vlastnost Status, vlastnost Name (tato vlastnost je vlastností aliasu pro vlastnost ServiceName) a vlastnost DisplayName. Každý řádek v tabulce představuje objekt vrácený rutinou.

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

Definování zobrazení tabulky

Následující XML ukazuje schéma zobrazení tabulky pro zobrazení System.ServiceProcess.ServiceController objektu. Je nutné zadat každou vlastnost, kterou chcete zobrazit v zobrazení tabulky.

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

K definování zobrazení seznamu se používají následující elementy XML:

  • Element View je nadřazený prvek zobrazení tabulky. (Toto je stejný nadřazený prvek pro zobrazení seznamu, širokého a vlastního ovládacího prvku.)

  • Element Name určuje název zobrazení. Tento prvek je vyžadován pro všechna zobrazení.

  • Element ViewSelectedBy definuje objekty, které používají zobrazení. Tento prvek je povinný.

  • Element GroupBy (není v tomto příkladu) definuje, kdy se zobrazí nová skupina objektů. Nová skupina se spustí vždy, když se změní hodnota konkrétní vlastnosti nebo skriptu. Tento element je volitelný.

  • Element Controls (není zobrazen v tomto příkladu) definuje vlastní ovládací prvky, které jsou definovány zobrazením tabulky. Ovládací prvky poskytují způsob, jak dále určit způsob zobrazení dat. Tento element je volitelný. Zobrazení může definovat vlastní ovládací prvky nebo může používat běžné ovládací prvky, které lze použít v libovolném zobrazení v souboru formátování. Další informace o vlastních ovládacích prvcích naleznete v tématu Vytváření vlastních ovládacích prvků.

  • HideTableHeaders element (nezobrazuje se v tomto příkladu) určuje, že tabulka nebude zobrazovat žádné popisky v horní části tabulky. Tento element je volitelný.

  • Element TableControl, který definuje informace o záhlaví a řádku tabulky. Podobně jako u všech ostatních zobrazení může zobrazení tabulky zobrazit hodnoty vlastností objektu nebo hodnot generovaných skripty.

Definování záhlaví sloupců

  1. Element TableHeaders a jeho podřízené prvky definují, co se zobrazí v horní části tabulky.

  2. Element TableColumnHeader definuje, co se zobrazí v horní části sloupce tabulky. Zadejte tyto prvky v pořadí, v jakém chcete záhlaví zobrazit.

    Počet těchto prvků, které můžete použít, není nijak omezen, ale počet TableColumnHeader prvky v zobrazení tabulky musí odpovídat počtu TableRowEntry prvků, které používáte.

  3. Prvek Popisek určuje zobrazený text. Tento element je volitelný.

  4. Element Width určuje šířku sloupce (v znacích). Tento element je volitelný.

  5. Element Alignment určuje, jak se popisek zobrazí. Popisek může být zarovnaný doleva, doprava nebo na střed. Tento element je volitelný.

Definování řádků tabulky

Zobrazení tabulky mohou poskytovat jednu nebo více definic, které určují, jaká data se zobrazí v řádcích tabulky pomocí podřízených prvků TableRowEntries elementu. Všimněte si, že pro řádky tabulky můžete zadat více definic, ale záhlaví řádků zůstávají stejná bez ohledu na to, jakou definici řádku se používá. Tabulka obvykle bude mít pouze jednu definici.

V následujícím příkladu zobrazení poskytuje jednu definici, která zobrazuje hodnoty několika vlastností System.Diagnostics.Process objektu. Zobrazení tabulky může v řádcích zobrazit hodnotu vlastnosti nebo hodnoty skriptu (nezobrazuje se v příkladu).

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

Následující elementy XML lze použít k zadání definic pro řádek:

  • TableRowEntries element a jeho podřízené prvky definují, co se zobrazí v řádcích tabulky.

  • Element TableRowEntry poskytuje definici řádku. Vyžaduje se alespoň jeden TableRowEntry; Neexistuje však žádný maximální limit počtu prvků, které můžete přidat. Ve většině případů bude mít zobrazení jenom jednu definici.

  • Element EntrySelectedBy určuje objekty, které jsou zobrazeny konkrétní definicí. Tento prvek je nepovinný a je nutný pouze v případě, že definujete více TableRowEntry elementy, které zobrazují různé objekty.

  • Element Wrap určuje, že text, který překračuje šířku sloupce, se zobrazí na dalším řádku. Ve výchozím nastavení je text, který překračuje šířku sloupce, zkrácený.

  • TableColumnItems element definuje vlastnosti nebo skripty, jejichž hodnoty jsou zobrazeny v řádku.

  • Element TableColumnItem definuje vlastnost nebo skript, jehož hodnota se zobrazí ve sloupci řádku. Pro každý sloupec řádku je vyžadován element TableColumnItem. První položka se zobrazí v prvním sloupci, druhá položka ve druhém sloupci atd.

  • PropertyName element určuje vlastnost, jejíž hodnota je zobrazena v řádku. Musíte zadat buď vlastnost, nebo skript, ale nemůžete zadat obojí.

  • Element ScriptBlock určuje skript, jehož hodnota se zobrazí v řádku. Musíte zadat buď skript, nebo vlastnost, ale nemůžete zadat obojí.

  • Element FormatString určuje formát, který definuje způsob zobrazení vlastnosti nebo hodnoty skriptu. Tento element je volitelný.

  • Element Alignment určuje, jak se zobrazuje hodnota vlastnosti nebo skriptu. Hodnota může být zarovnaná doleva, doprava nebo na střed. Tento element je volitelný.

Definování objektů, které používají zobrazení tabulky

Existují dva způsoby, jak definovat, které objekty .NET používají zobrazení tabulky. Pomocí elementu ViewSelectedBy můžete definovat objekty, které mohou být zobrazeny všemi definicemi zobrazení, nebo můžete použít EntrySelectedBy element definovat, které objekty jsou zobrazeny konkrétní definicí zobrazení. Ve většině případů má zobrazení pouze jednu definici, takže objekty jsou obvykle definovány ViewSelectedBy element.

Následující příklad ukazuje, jak definovat objekty, které jsou zobrazeny v zobrazení tabulky pomocí ViewSelectedBy a TypeName elementy. Počet TypeName prvků, které můžete zadat, není nijak omezený a jejich pořadí není významné.

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

Následující elementy XML lze použít k určení objektů, které jsou používány zobrazením tabulky:

  • Element ViewSelectedBy definuje, které objekty jsou zobrazeny zobrazením seznamu.

  • Element TypeName určuje objekt .NET, který je zobrazen zobrazením. Je vyžadován plně kvalifikovaný název typu .NET. Je nutné zadat alespoň jeden typ nebo sadu výběru pro zobrazení, ale neexistuje žádný maximální počet prvků, které lze zadat.

Následující příklad používá elementy ViewSelectedBy a SelectionSet Name. Použijte sady výběrů, ve kterých máte související sadu objektů, které se zobrazují pomocí více zobrazení, například při definování zobrazení seznamu a zobrazení tabulky pro stejné objekty. Další informace o tom, jak vytvořit sadu výběrů, naleznete v tématu Definování sad výběrů.

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

Následující elementy XML lze použít k určení objektů, které jsou používány zobrazením seznamu:

  • Element ViewSelectedBy definuje, které objekty jsou zobrazeny zobrazením seznamu.

  • Element SelectionSetName určuje sadu objektů, které lze zobrazit v zobrazení. Je nutné zadat alespoň jednu sadu nebo typ výběru pro zobrazení, ale neexistuje žádný maximální počet prvků, které lze zadat.

Následující příklad ukazuje, jak definovat objekty zobrazené konkrétní definicí zobrazení tabulky pomocí elementu EntrySelectedBy. Pomocí tohoto prvku můžete zadat název typu .NET objektu, sadu výběrů objektů nebo podmínku výběru, která určuje, kdy se definice použije. Další informace o tom, jak vytvořit podmínky výběru, naleznete v tématu Definování podmínek pro zobrazení dat.

Poznámka:

Při vytváření více definic zobrazení tabulky nelze zadat jiná záhlaví sloupců. Můžete zadat pouze to, co se zobrazí v řádcích tabulky, například jaké objekty se zobrazí.

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

Následující elementy XML lze použít k určení objektů, které jsou používány konkrétní definicí zobrazení seznamu:

  • Element EntrySelectedBy definuje, které objekty jsou zobrazeny definicí.

  • Element TypeName určuje objekt .NET, který je zobrazen definicí. Při použití tohoto elementu se vyžaduje plně kvalifikovaný název typu .NET. Je nutné zadat alespoň jeden typ, sadu výběrů nebo podmínku výběru pro definici, ale neexistuje žádný maximální počet prvků, které lze zadat.

  • Element SelectionSetName (není zobrazen) určuje sadu objektů, které lze zobrazit touto definicí. Je nutné zadat alespoň jeden typ, sadu výběrů nebo podmínku výběru pro definici, ale neexistuje žádný maximální počet prvků, které lze zadat.

  • Element SelectionCondition (není zobrazen) určuje podmínku, která musí existovat pro použití této definice. Je nutné zadat alespoň jeden typ, sadu výběrů nebo podmínku výběru pro definici, ale neexistuje žádný maximální počet prvků, které lze zadat. Další informace o definování podmínek výběru naleznete v tématu Definování podmínek pro zobrazení dat.

Použití formátových řetězců

Do zobrazení je možné přidat formátovací řetězce, aby bylo možné dále definovat způsob zobrazení dat. Následující příklad ukazuje, jak definovat formátovací řetězec pro hodnotu StartTime vlastnost.

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

K určení vzoru formátu lze použít následující elementy XML:

  • Element TableColumnItem definuje vlastnost nebo skript, jehož hodnota se zobrazí ve sloupci řádku. Pro každý sloupec řádku je vyžadován element TableColumnItem. První položka se zobrazí v prvním sloupci, druhá položka ve druhém sloupci atd.

  • PropertyName element určuje vlastnost, jejíž hodnota je zobrazena v řádku. Musíte zadat buď vlastnost, nebo skript, ale nemůžete zadat obojí.

  • Element FormatString určuje formát, který definuje způsob zobrazení vlastnosti nebo hodnoty skriptu.

V následujícím příkladu je volána metoda ToString pro formátování hodnoty skriptu. Skripty mohou volat jakoukoli metodu objektu. Proto, pokud objekt má metodu, například ToString, který má formátovací parametry, skript může tuto metodu volat k formátování výstupní hodnoty skriptu.

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

Následující element XML lze použít k volání ToString metody:

  • Element TableColumnItem definuje vlastnost nebo skript, jehož hodnota se zobrazí ve sloupci řádku. Pro každý sloupec řádku je vyžadován element TableColumnItem. První položka se zobrazí v prvním sloupci, druhá položka ve druhém sloupci atd.

  • Element ScriptBlock určuje skript, jehož hodnota se zobrazí v řádku. Musíte zadat buď skript, nebo vlastnost, ale nemůžete zadat obojí.

Viz také

Psaní souboru formátování PowerShellu