Vytvoření zobrazení tabulky

Zobrazení tabulky zobrazuje data v jednom nebo více sloupcích. Každý řádek v tabulce představuje objekt rozhraní .NET a každý sloupec tabulky představuje vlastnost objektu nebo hodnoty skriptu. Můžete definovat zobrazení tabulky, které zobrazí 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 , který je vrácen rutinou Get-Service . pro tento objekt Windows PowerShell definoval zobrazení tabulky, které zobrazuje Status vlastnost, Name vlastnost (tato vlastnost je vlastnost alias pro ServiceName vlastnost) a DisplayName vlastnost. 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í kód XML ukazuje schéma zobrazení tabulky pro zobrazení souboru System. ServiceProcess. ServiceController? DisplayProperty = FullName – objekt. 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>

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

  • Prvek zobrazení je nadřazeným prvkem tabulkového zobrazení. (Toto je stejný nadřazený prvek pro zobrazení seznamu, pro nejrůznější a vlastní ovládací prvky.)

  • 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 (nezobrazený 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 (nezobrazený v tomto příkladu) definuje vlastní ovládací prvky, které jsou definovány tabulkovým zobrazením. Ovládací prvky poskytují způsob, jak dále určit, jak se budou data zobrazovat. Tento element je volitelný. Zobrazení může definovat vlastní ovládací prvky nebo může použít běžné ovládací prvky, které mohou být použity jakýmkoli zobrazením v souboru formátování. Další informace o vlastních ovládacích prvcích najdete v tématu vytváření vlastních ovládacích prvků.

  • Element HideTableHeaders (bez zobrazení v tomto příkladu) určuje, že tabulka v horní části tabulky nezobrazí žádné popisky. Tento element je volitelný.

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

Definování záhlaví sloupců

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

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

    Neexistuje žádné omezení počtu elementů, které lze použít, ale počet prvků TableColumnHeader v zobrazení tabulky musí být stejný jako počet elementů TableRowEntry , které používáte.

  3. Element Label určuje zobrazený text. Tento element je volitelný.

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

  5. Element alignment určuje, jak se zobrazí popisek. Popisek lze Zarovnat vlevo, vpravo nebo na střed. Tento element je volitelný.

Definování řádků tabulky

Tabulková zobrazení mohou poskytovat jednu nebo více definic, které určují, jaká data jsou zobrazena v řádcích tabulky pomocí podřízených prvků prvku TableRowEntries . Všimněte si, že můžete zadat několik definic pro řádky tabulky, ale hlavičky pro řádky zůstanou stejné, bez ohledu na to, jaká definice řádku se používá. Tabulka má typicky jenom jednu definici.

V následujícím příkladu zobrazení poskytuje jednu definici, která zobrazuje hodnoty několika vlastností System. Diagnostics. Process? DisplayProperty = FullName – objekt. Tabulkové zobrazení může zobrazit hodnotu vlastnosti nebo hodnotu skriptu (v tomto příkladu není zobrazeno) ve svých řádcích.

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

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

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

  • Element TableRowEntry poskytuje definici řádku. Vyžaduje se aspoň jeden TableRowEntry . Neexistuje však maximální omezení počtu prvků, které lze přidat. Ve většině případů bude mít zobrazení pouze jednu definici.

  • Element EntrySelectedBy určuje objekty, které jsou zobrazeny konkrétní definicí. Tento prvek je volitelný a je vyžadován pouze v případě, že definujete více elementů TableRowEntry , 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í se zkrátí text, který překračuje šířku sloupce.

  • Element TableColumnItems definuje vlastnosti nebo skripty, jejichž hodnoty jsou zobrazeny na řá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, ve druhém záznamu ve druhém sloupci atd.

  • Element PropertyName určuje vlastnost, jejíž hodnota se zobrazí na řádku. Je nutné zadat buď vlastnost, nebo skript, ale nelze zadat obojí.

  • Element ScriptBlock určuje skript, jehož hodnota se zobrazí na řádku. Je nutné zadat buď skript, nebo vlastnost, ale nelze zadat obojí.

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

  • Element alignment určuje, jak se zobrazí hodnota vlastnosti nebo skriptu. Hodnota může být zarovnána vlevo, vpravo 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. Element ViewSelectedBy lze použít k definování objektů, které lze zobrazit pomocí všech definic zobrazení, nebo můžete použít prvek EntrySelectedBy k definování, které objekty jsou zobrazeny určitou definicí zobrazení. Ve většině případů má zobrazení pouze jednu definici, takže objekty jsou obvykle definovány prvkem ViewSelectedBy .

Následující příklad ukazuje, jak definovat objekty, které jsou zobrazeny tabulkovým zobrazením pomocí elementů ViewSelectedBy a TypeName . Neexistuje žádné omezení počtu elementů TypeName , které lze zadat a jejich pořadí není důležité.

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

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

  • Element ViewSelectedBy definuje, které objekty se zobrazí v zobrazení seznamu.

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

V následujícím příkladu jsou použity prvky ViewSelectedBy a SelectionSetName . Použijte sady pro výběr, kde máte související sadu objektů, které se zobrazují pomocí více zobrazení, například při definování zobrazení seznamu a tabulkového zobrazení pro stejné objekty. Další informace o tom, jak vytvořit sadu výběru, najdete v tématu Definování sad pro výběr.

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

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

  • Element ViewSelectedBy definuje, které objekty se zobrazí v zobrazení seznamu.

  • Element SelectionSetName určuje sadu objektů, které lze zobrazit pomocí 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é pomocí konkrétní definice zobrazení tabulky pomocí elementu EntrySelectedBy . Pomocí tohoto prvku můžete zadat název typu .NET objektu, výběr sady objektů nebo podmínku výběru, která určuje, kdy se má definice použít. Další informace o tom, jak vytvořit podmínky výběru, najdete v tématu definování podmínek pro zobrazení dat.

Poznámka

Při vytváření více definic tabulkového zobrazení nemůžete zadat jiná záhlaví sloupců. Můžete určit pouze to, co se zobrazí v řádcích tabulky, například jaké objekty jsou zobrazeny.

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

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

  • Element EntrySelectedBy definuje, které objekty se zobrazí v definici.

  • Element TypeName určuje objekt .NET, který je zobrazen pomocí definice. Při použití tohoto prvku je vyžadován plně kvalifikovaný název typu .NET. Je nutné zadat alespoň jeden typ, sadu výběru 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í. Pro definici musíte zadat alespoň jeden typ, sadu výběrů nebo podmínku výběru, ale neexistuje žádný maximální počet prvků, které lze zadat.

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

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

Formátovací řetězce lze přidat do zobrazení, 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 vlastnosti .

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

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

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

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

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

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

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

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

  • Element TableColumnItem definuje vlastnost nebo skript, jehož hodnota se zobrazí ve sloupci řádku. Element TableColumnItem je vyžadován pro každý sloupec řádku. 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í na řádku. Musíte zadat buď skript, nebo vlastnost, ale nemůžete zadat obojí.

Viz také

Vytvoření formátovacího souboru PowerShellu