Sdílet prostřednictvím


Vytvoření širokého zobrazení

Široké zobrazení zobrazí jednu hodnotu pro každý zobrazený objekt. Zobrazená hodnota může být hodnota vlastnosti objektu .NET nebo hodnoty skriptu. Ve výchozím nastavení pro toto zobrazení neexistuje žádný popisek ani záhlaví.

Širokoúhlý zobrazení

Následující příklad ukazuje, jak Windows PowerShell zobrazuje objekt System.Diagnostics.Process vrácený rutinou Get-Process, když je výstup předán rutině Format-Wide. (Ve výchozím nastavení vrátí rutina Get-Process zobrazení tabulky.) V tomto příkladu se dva sloupce používají k zobrazení názvu procesu pro každý vrácený objekt. Název vlastnosti objektu se nezobrazuje, pouze hodnota vlastnosti.

Get-Process | Format-Wide
AEADISRV                     agrsmsvc
Ati2evxx                     Ati2evxx
audiodg                      CCC
CcmExec                      communicator
Crypserv                     csrss
csrss                        DevDtct2
DM1Service                   dpupdchk
dwm                          DxStudio
EXCEL                        explorer
GoogleToolbarNotifier        GrooveMonitor
hpqwmiex                     hpservice
Idle                         InoRpc
InoRT                        InoTask
ipoint                       lsass
lsm                          MOM
MSASCui                      notepad
...                          ...

Definování širokého zobrazení

Následující kód XML ukazuje schéma širokého zobrazení pro objekt System.Diagnostics.Process objektu.

<View>
  <Name>process</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <GroupBy>...</GroupBy>
  <Controls>...</Controls>
  <WideControl>
    <WideEntries>
      <WideEntry>
        <WideItem>
          <PropertyName>ProcessName</PropertyName>
        </WideItem>
      </WideEntry>
    </WideEntries>
  </WideControl>
</View>

K definování širokého zobrazení se používají následující elementy XML:

  • Element View je nadřazený prvek širokého zobrazení. (Toto je stejný nadřazený prvek pro zobrazení tabulek, seznamů a vlastních ovládacích prvků.)
  • 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 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ý.
  • Prvky Ovládací prvky definují vlastní ovládací prvky definované širokým zobrazením. 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ů.
  • Element WideControl a jeho podřízené prvky definují, co se zobrazí v zobrazení. V předchozím příkladu je zobrazení navržené tak, aby zobrazilo vlastnost System.Diagnostics.Process.ProcessName.

Příklad kompletního formátovacího souboru, který definuje jednoduché široké zobrazení, najdete v tématu Wide View (Basic).

Poskytování definic pro široké zobrazení

Široká zobrazení mohou poskytovat jednu nebo více definic pomocí podřízených prvků WideControl elementu. Zobrazení obvykle bude mít pouze jednu definici. V následujícím příkladu zobrazení poskytuje jedinou definici, která zobrazuje vlastnost System.Diagnostics.Process.ProcessName. Široké zobrazení může zobrazit hodnotu vlastnosti nebo hodnoty skriptu (není znázorněno v příkladu).

<WideControl>
  <AutoSize/>
  <ColumnNumber></ColumnNumber>
  <WideEntries>
    <WideEntry>
      <WideItem>
        <PropertyName>ProcessName</PropertyName>
      </WideItem>
    </WideEntry>
  </WideEntries>
</WideControl>

Následující elementy XML lze použít k poskytnutí definic pro široké zobrazení:

  • Element WideControl a jeho podřízené prvky definují, co se zobrazí v zobrazení.
  • Prvek AutoSize určuje, jestli se velikost sloupce a počet sloupců upraví na základě velikosti dat. Tento element je volitelný.
  • Element ColumnNumber určuje počet sloupců zobrazených v širokém zobrazení. Tento element je volitelný.
  • Element WideEntries poskytuje definice zobrazení. Ve většině případů bude mít zobrazení jenom jednu definici. Tento prvek je povinný.
  • Element WideEntry poskytuje definici zobrazení. Vyžaduje se alespoň jeden WideEntry; 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 volitelný a je nutný pouze v případě, že definujete více WideEntry elementy, které zobrazují různé objekty.
  • Element WideItem určuje data zobrazená zobrazením. Na rozdíl od jiných typů zobrazení může široký ovládací prvek zobrazit pouze jednu položku.
  • Element PropertyName určuje vlastnost, jejíž hodnota je zobrazena zobrazením. Musíte zadat buď vlastnost, nebo skript, ale nemůžete zadat obojí.
  • ScriptBlock element určuje skript, jehož hodnota je zobrazena zobrazením. Musíte zadat buď skript, nebo vlastnost, ale nemůžete zadat obojí.
  • Element FormatString určuje vzor, který se používá k zobrazení dat. Tento element je volitelný.

Příklad kompletního formátovacího souboru, který definuje definici širokého zobrazení, najdete v tématu Wide View (Basic).

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

Existují dva způsoby, jak definovat, které objekty .NET používají široké zobrazení. 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 širokým zobrazením 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.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <WideControl>...</WideControl>
</View>

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

  • Element ViewSelectedBy definuje objekty, které jsou zobrazeny širokým zobrazením.
  • Element TypeName určuje rozhraní .NET, které je zobrazeno v zobrazení. 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.

Příklad kompletního formátování souboru naleznete v tématu Wide View (Basic).

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í širokého zobrazení 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>
  <WideControl>...</WideControl>
</View>

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

  • Element ViewSelectedBy definuje objekty, které jsou zobrazeny širokým zobrazením.
  • 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í širokého zobrazení pomocí EntrySelectedBy elementu. 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.

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

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

  • Element EntrySelectedBy definuje, které objekty jsou zobrazeny definicí.
  • Element TypeName určuje .NET, který je zobrazen definicí. 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ě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.

Zobrazení skupin objektů v širokém zobrazení

Objekty zobrazené širokým zobrazením můžete oddělit do skupin. To neznamená, že definujete skupinu, pouze to, že Windows PowerShell spustí novou skupinu vždy, když se změní hodnota konkrétní vlastnosti nebo skriptu. V následujícím příkladu se spustí nová skupina vždy, když se změní hodnota System.ServiceProcess.ServiceController.ServiceType vlastnost.

<GroupBy>
  <Label>Service Type</Label>
  <PropertyName>ServiceType</PropertyName>
</GroupBy>

Následující elementy XML slouží k definování, kdy je skupina spuštěna:

  • Element GroupBy definuje vlastnost nebo skript, který spustí novou skupinu a definuje, jak se skupina zobrazí.
  • Element PropertyName určuje vlastnost, která při každé změně hodnoty spustí novou skupinu. Je nutné zadat vlastnost nebo skript pro spuštění skupiny, ale nemůžete zadat obojí.
  • Element ScriptBlock určuje skript, který při každé změně hodnoty spustí novou skupinu. Je nutné zadat skript nebo vlastnost pro spuštění skupiny, ale nemůžete zadat obojí.
  • Element Label definuje popisek, který se zobrazí na začátku každé skupiny. Kromě textu určeného tímto prvkem zobrazí Windows PowerShell hodnotu, která aktivovala novou skupinu, a před a za popisek přidá prázdný řádek. Tento element je volitelný.
  • Element CustomControl definuje ovládací prvek, který se používá k zobrazení dat. Tento element je volitelný.
  • Element CustomControlName určuje společný ovládací prvek nebo ovládací prvek zobrazení, který se používá k zobrazení dat. Tento element je volitelný.

Příklad kompletního formátovacího souboru, který definuje skupiny, najdete v tématu Wide View (GroupBy).

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

Formátovací řetězce lze přidat do širokého zobrazení a dále definovat způsob zobrazení dat. Následující příklad ukazuje, jak definovat formátovací řetězec pro hodnotu StartTime vlastnost.

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

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

  • Element WideItem určuje data zobrazená zobrazením.
  • Element PropertyName určuje vlastnost, jejíž hodnota je zobrazena zobrazením. Musíte zadat buď vlastnost, nebo skript, ale nemůžete zadat obojí.
  • Element FormatString určuje formátový vzor, který definuje, jak se vlastnost nebo hodnota skriptu zobrazí v zobrazení.
  • Element ScriptBlock (není zobrazen) určuje skript, jehož hodnota je zobrazena zobrazením. Musíte zadat buď skript, nebo vlastnost, ale nemůžete zadat obojí.

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.

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

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

  • Element WideItem určuje data zobrazená zobrazením.
  • Element ScriptBlock (není zobrazen) určuje skript, jehož hodnota je zobrazena zobrazením. Musíte zadat buď skript, nebo vlastnost, ale nemůžete zadat obojí.

Viz také