Tworzenie widoku tabeli

Widok tabeli wyświetla dane w co najmniej jednej kolumnie. Każdy wiersz w tabeli reprezentuje obiekt .NET, a każda kolumna tabeli reprezentuje właściwość obiektu lub wartość skryptu. Można zdefiniować widok tabeli, który wyświetla wszystkie właściwości obiektu lub podzestaw właściwości obiektu.

Wyświetlanie widoku tabeli

W poniższym przykładzie pokazano, Windows PowerShell wyświetla obiekt System.Serviceprocess.Servicecontroller zwracany przez polecenie cmdlet Get-Service. Dla tego obiektu Windows PowerShell widok tabeli, który wyświetla właściwość , właściwość (ta właściwość jest właściwością aliasu dla Status Name ServiceName właściwości) i DisplayName właściwość . Każdy wiersz w tabeli reprezentuje obiekt zwrócony przez polecenie cmdlet .

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

Definiowanie widoku tabeli

Poniższy kod XML przedstawia schemat widoku tabeli do wyświetlania kontrolera System.Serviceprocess.Servicecontroller? Displayproperty = fullname obiektu. Należy określić każdą właściwość, która ma być wyświetlana w widoku tabeli.

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

Następujące elementy XML są używane do definiowania widoku listy:

  • Element View jest elementem nadrzędnym widoku tabeli. (Jest to ten sam element nadrzędny dla listy, szerokiej i niestandardowej kontrolki widoki).

  • Name element określa nazwę widoku. Ten element jest wymagany dla wszystkich widoków.

  • ViewSelectedBy element definiuje obiekty, które używają widoku. Ten element jest wymagany.

  • GroupBy element (nie pokazano w tym przykładzie) definiuje, kiedy jest wyświetlana nowa grupa obiektów. Nowa grupa jest uruchomiona przy każdej zmianie wartości określonej właściwości lub skryptu. Ten element jest opcjonalny.

  • Element Controls (nie pokazano w tym przykładzie) definiuje kontrolki niestandardowe zdefiniowane w widoku tabeli. Kontrolki zapewniają sposób dalszego określania sposobu wyświetlania danych. Ten element jest opcjonalny. Widok może definiować własne kontrolki niestandardowe lub używać typowych kontrolek, które mogą być używane przez dowolny widok w pliku formatowania. Aby uzyskać więcej informacji na temat kontrolek niestandardowych, zobacz Creating Custom Controls (Tworzenie kontrolek niestandardowych).

  • Element HideTableHeaders (nie jest pokazywany w tym przykładzie) określa, że w tabeli nie będą wyświetlane żadne etykiety w górnej części tabeli. Ten element jest opcjonalny.

  • TableControl element, który definiuje informacje o nagłówku i wierszu tabeli. Podobnie jak w przypadku wszystkich innych widoków, widok tabeli może wyświetlać wartości właściwości obiektu lub wartości wygenerowanych przez skrypty.

Definiowanie nagłówków kolumn

  1. Element TableHeaders i jego elementy podrzędne definiują elementy wyświetlane w górnej części tabeli.

  2. Element TableColumnHeader definiuje elementy wyświetlane w górnej części kolumny tabeli. Określ te elementy w kolejności wyświetlania nagłówków.

    Nie ma żadnego limitu liczby tych elementów, których można użyć, ale liczba elementów TableColumnHeader w widoku tabeli musi być równa liczbie elementów TableRowEntry, których używasz.

  3. Etykieta element określa tekst, który jest wyświetlany. Ten element jest opcjonalny.

  4. Element Width określa szerokość (w znakach) kolumny. Ten element jest opcjonalny.

  5. Wyrównanie element określa sposób wyświetlania etykiety. Etykietę można wyrównać do lewej, do prawej lub wyśrodkować. Ten element jest opcjonalny.

Definiowanie wierszy tabeli

Widoki tabel mogą dostarczać co najmniej jedną definicję, która określa, jakie dane są wyświetlane w wierszach tabeli przy użyciu elementów podrzędnych elementu TableRowEntries. Zwróć uwagę, że można określić wiele definicji wierszy tabeli, ale nagłówki wierszy pozostają takie same, niezależnie od używanej definicji wiersza. Zazwyczaj tabela będzie mieć tylko jedną definicję.

W poniższym przykładzie widok zawiera pojedynczą definicję, która wyświetla wartości kilku właściwości obiektu System.Diagnostics.Process? Displayproperty = fullname obiektu. Widok tabeli może wyświetlać wartość właściwości lub wartość skryptu (nie pokazaną w przykładzie) w jej wierszach.

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

Następujące elementy XML mogą służyć do zapewnienia definicji dla wiersza:

  • Element TableRowEntries i jego elementy podrzędne definiują, co jest wyświetlane w wierszach tabeli.

  • Element TableRowEntry zawiera definicję wiersza. Wymagana jest co najmniej jedna tabela TableRowEntry; Nie ma jednak żadnego maksymalnego limitu liczby elementów, które można dodać. W większości przypadków widok będzie miał tylko jedną definicję.

  • EntrySelectedBy element określa obiekty, które są wyświetlane przez określoną definicję. Ten element jest opcjonalny i jest wymagany tylko w przypadku definiowania wielu elementów TableRowEntry, które wyświetlają różne obiekty.

  • Wrap element określa, że tekst, który przekracza szerokość kolumny jest wyświetlany w następnym wierszu. Domyślnie tekst, który przekracza szerokość kolumny, jest obcinany.

  • Element TableColumnItems definiuje właściwości lub skrypty, których wartości są wyświetlane w wierszu.

  • Element TableColumnItem definiuje właściwość lub skrypt, którego wartość jest wyświetlana w kolumnie wiersza. Element TableColumnItem jest wymagany dla każdej kolumny wiersza. Pierwszy wpis jest wyświetlany w pierwszej kolumnie, drugi wpis w drugiej kolumnie i tak dalej.

  • PropertyName element określa właściwość, której wartość jest wyświetlana w wierszu. Należy określić właściwość lub skrypt, ale nie można określić obu tych właściwości.

  • ScriptBlock element określa skrypt, którego wartość jest wyświetlana w wierszu. Należy określić skrypt lub właściwość, ale nie można określić obu.

  • FormatString element określa wzorzec formatu, który definiuje sposób wyświetlania właściwości lub wartość skryptu. Ten element jest opcjonalny.

  • Wyrównanie element określa sposób wyświetlania wartości właściwości lub skryptu. Wartość może być wyrównana do lewej, do prawej lub wyśrodkowana. Ten element jest opcjonalny.

Definiowanie obiektów, które używają widoku tabeli

Istnieją dwa sposoby definiowania, które obiekty .NET używają widoku tabeli. Możesz użyć elementu ViewSelectedBy, aby zdefiniować obiekty, które mogą być wyświetlane przez wszystkie definicje widoku, lub użyć elementu EntrySelectedBy, aby zdefiniować, które obiekty są wyświetlane przez określoną definicję widoku. W większości przypadków widok ma tylko jedną definicję, więc obiekty są zwykle definiowane przez element ViewSelectedBy.

W poniższym przykładzie pokazano, jak zdefiniować obiekty wyświetlane w widoku tabeli przy użyciu elementów ViewSelectedBy i TypeName. Nie ma żadnego ograniczenia liczby elementów TypeName, które można określić, a ich kolejność nie jest istotna.

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

Następujące elementy XML mogą służyć do określania obiektów, które są używane przez widok tabeli:

  • Element ViewSelectedBy definiuje, które obiekty są wyświetlane w widoku listy.

  • TypeName element określa obiekt .NET, który jest wyświetlany w widoku. Wymagana jest w pełni kwalifikowana nazwa typu .NET. Należy określić co najmniej jeden typ lub zestaw wyboru dla widoku, ale nie ma maksymalnej liczby elementów, które można określić.

W poniższym przykładzie użyto elementów ViewSelectedBy i SelectionSetName. Użyj zestawów wyboru, w których masz powiązany zestaw obiektów wyświetlanych przy użyciu wielu widoków, na przykład podczas definiowania widoku listy i widoku tabeli dla tych samych obiektów. Aby uzyskać więcej informacji na temat tworzenia zestawu wyboru, zobacz Defining Selection Sets (Definiowanie zestawów wyboru).

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

Następujące elementy XML mogą służyć do określania obiektów, które są używane przez widok listy:

  • Element ViewSelectedBy definiuje, które obiekty są wyświetlane w widoku listy.

  • SelectionSetName element określa zestaw obiektów, które mogą być wyświetlane przez widok. Należy określić co najmniej jeden zestaw wyboru lub typ widoku, ale nie ma maksymalnej liczby elementów, które można określić.

W poniższym przykładzie pokazano, jak zdefiniować obiekty wyświetlane przez określoną definicję widoku tabeli przy użyciu elementu EntrySelectedBy. Za pomocą tego elementu można określić nazwę typu .NET obiektu, zestaw wyboru obiektów lub warunek wyboru, który określa, kiedy definicja jest używana. Aby uzyskać więcej informacji na temat tworzenia warunków wyboru, zobacz Definiowanie warunków wyświetlania danych.

Uwaga

Podczas tworzenia wielu definicji widoku tabeli nie można określić różnych nagłówków kolumn. Można określić tylko to, co jest wyświetlane w wierszach tabeli, na przykład jakie obiekty są wyświetlane.

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

Następujące elementy XML mogą służyć do określania obiektów, które są używane przez określoną definicję widoku listy:

  • EntrySelectedBy element definiuje, które obiekty są wyświetlane przez definicję.

  • TypeName element określa obiekt .NET, który jest wyświetlany przez definicję. W przypadku korzystania z tego elementu wymagana jest w pełni kwalifikowana nazwa typu .NET. Należy określić co najmniej jeden typ, zestaw wyboru lub warunek wyboru dla definicji, ale nie ma maksymalnej liczby elementów, które można określić.

  • SelectionSetName element (nie jest wyświetlany) określa zestaw obiektów, które mogą być wyświetlane przez tę definicję. Należy określić co najmniej jeden typ, zestaw wyboru lub warunek wyboru dla definicji, ale nie ma maksymalnej liczby elementów, które można określić.

  • SelectionCondition element (nie jest wyświetlany) określa warunek, który musi istnieć dla tej definicji, aby można było użyć. Należy określić co najmniej jeden typ, zestaw wyboru lub warunek wyboru dla definicji, ale nie ma maksymalnej liczby elementów, które można określić. Aby uzyskać więcej informacji na temat definiowania warunków wyboru, zobacz Definiowanie warunków wyświetlania danych.

Używanie ciągów formatu

Ciągi formatowania można dodać do widoku, aby jeszcze bardziej zdefiniować sposób wyświetlania danych. W poniższym przykładzie pokazano, jak zdefiniować ciąg formatowania dla wartości StartTime właściwości.

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

Następujące elementy XML mogą służyć do określania wzorca formatu:

  • Element TableColumnItem definiuje właściwość lub skrypt, którego wartość jest wyświetlana w kolumnie wiersza. Element TableColumnItem jest wymagany dla każdej kolumny wiersza. Pierwszy wpis jest wyświetlany w pierwszej kolumnie, drugi wpis w drugiej kolumnie i tak dalej.

  • PropertyName element określa właściwość, której wartość jest wyświetlana w wierszu. Należy określić właściwość lub skrypt, ale nie można określić obu tych właściwości.

  • FormatString element określa wzorzec formatu, który definiuje sposób wyświetlania właściwości lub wartość skryptu.

W poniższym przykładzie metoda jest wywoływana w celu ToString sformatowania wartości skryptu. Skrypty mogą wywołać dowolną metodę obiektu. W związku z tym, jeśli obiekt ma metodę, taką jak , która ma parametry formatowania, skrypt może wywołać tę metodę w celu sformatowania ToString wartości wyjściowej skryptu.

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

Następujący element XML może służyć do wywoływania ToString metody :

  • Element TableColumnItem definiuje właściwość lub skrypt, którego wartość jest wyświetlana w kolumnie wiersza. Element TableColumnItem jest wymagany dla każdej kolumny wiersza. Pierwszy wpis jest wyświetlany w pierwszej kolumnie, drugi wpis w drugiej kolumnie i tak dalej.

  • Element ScriptBlock określa skrypt, którego wartość jest wyświetlana w wierszu. Należy określić skrypt lub właściwość, ale nie można określić obu tych właściwości.

Zobacz też

Pisanie pliku formatującego programu PowerShell