Tábla nézet létrehozása

A táblanézet egy vagy több oszlop adatait jeleníti meg. A tábla minden sora egy .NET-objektumot képvisel, a tábla minden oszlopa pedig az objektum egy tulajdonságát vagy egy szkriptértéket. Meghatározhat egy táblanézetet, amely megjeleníti egy objektum összes tulajdonságát vagy egy objektum tulajdonságainak egy részkészletét.

Táblázat nézet megjelenítése

Az alábbi példa bemutatja, Windows PowerShell megjeleníti a Get-Service parancsmag által visszaadott System.Serviceprocess.Servicecontroller objektumot. Ehhez az objektumhoz Windows PowerShell táblanézetet, amely megjeleníti a tulajdonságot, a tulajdonságot (ez a tulajdonság egy aliastulajdonság a Status Name tulajdonsághoz) és a ServiceName DisplayName tulajdonságot. A tábla minden sora a parancsmag által visszaadott objektumot jelöli.

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

A táblanézet meghatározása

Az alábbi XML-fájl a System.Serviceprocess.Servicecontroller megjelenítésére szolgáló táblanézetsémát mutatja be. Displayproperty=Fullname objektum. A táblanézetben megjeleníteni kívánt egyes tulajdonságokat meg kell adnia.

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

Listanézet definiálásakor a következő XML-elemek használhatók:

  • A Nézet elem a táblanézet szülőeleme. (Ez megegyezik a lista, a széles és az egyéni vezérlőnézetek szülőeleme.)

  • A Név elem határozza meg a nézet nevét. Ez az elem minden nézethez szükséges.

  • A ViewSelectedBy elem határozza meg a nézetet használatban lévő objektumokat. Ez az elem kötelező.

  • A GroupBy elem (amely ebben a példában nem látható) meghatározza, hogy mikor jelenik meg új objektumcsoport. Egy új csoport akkor kezdődik, amikor egy adott tulajdonság vagy szkript értéke megváltozik. Ez az elem nem kötelező.

  • A Vezérlők elem (ebben a példában nem látható) a táblanézet által definiált egyéni vezérlőket határozza meg. A vezérlőkkel még jobban meghatározhatja az adatok megjelenítésének módját. Ez az elem nem kötelező. A nézeteket definiálhatja saját egyéni vezérlőivel, vagy használhat általános vezérlőket, amelyek a formázási fájl bármely nézete által használhatók. További információ az egyéni vezérlőkről: Egyéni vezérlők létrehozása.

  • A HideTableHeaders elem (ebben a példában nem látható) azt adja meg, hogy a tábla ne mutasson címkéket a tábla tetején. Ez az elem nem kötelező.

  • A tábla fejléc- és sorinformációit meghatározó TableControl elem. A többi nézethez hasonlóan a táblanézetek az objektumtulajdonságok vagy a szkriptek által létrehozott értékek értékeit is megjelenítik.

Oszlopfejlécek definiálása

  1. A TableHeaders elem és annak gyermekelemei határozzák meg, hogy mi jelenik meg a tábla tetején.

  2. A TableColumnHeader elem határozza meg, hogy mi jelenik meg a tábla oszlopának tetején. Adja meg ezeket az elemeket abban a sorrendben, ahogy meg szeretné jelenni a fejléceket.

    Ezeknek az elemeknek a használható száma nincs korlátozva, de a TableColumnHeader elemek száma a táblanézetben meg kell egyeznie a használt TableRowEntry elemek számának.

  3. A Label elem határozza meg a megjelenő szöveget. Ez az elem nem kötelező.

  4. A Width (Szélesség) elem az oszlop szélességét határozza meg (karakterben). Ez az elem nem kötelező.

  5. Az Igazítás elem határozza meg a címke megjelenítésének a mikéntjét. A címke balra, jobbra vagy középre igazítható. Ez az elem nem kötelező.

A tábla sorai definiálása

A táblanézetek egy vagy több definíciót is megadhatnak, amelyek meghatározzák, hogy milyen adatok jelennek meg a tábla sorai között a TableRowEntries elem gyermekelemei használatával. Figyelje meg, hogy a tábla soraihoz több definíciót is megadhat, de a sorok fejlécei a használt sordefiníciótól függetlenül változatlanok maradnak. Egy táblának általában csak egy definíciója van.

A következő példában a nézet egyetlen definíciót biztosít, amely a System.Diagnostics.Process több tulajdonságának értékeit jeleníti meg. Displayproperty=Fullname objektum. A táblanézetek egy tulajdonság vagy egy szkript (a példában nem látható) értékét jelenítik meg a sorokban.

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

A következő XML-elemek használhatók egy sor definíciójának meghatározására:

  • A TableRowEntries elem és annak gyermekelemei határozzák meg, hogy mi jelenik meg a tábla sorai között.

  • A TableRowEntry elem a sor definícióját tartalmazza. Legalább egy TableRowEntry szükséges; A felvehető elemek száma azonban nincs korlátozva. A legtöbb esetben a nézetnek csak egy definíciója van.

  • Az EntrySelectedBy elem határozza meg az adott definíció által megjelenített objektumokat. Ez az elem nem kötelező, és csak akkor szükséges, ha több, különböző objektumokat megjelenítő TableRowEntry elemet határoz meg.

  • A Wrap elem megadja, hogy az oszlop szélességét meghaladó szöveg megjelenik a következő sorban. Alapértelmezés szerint az oszlop szélességét meghaladó szöveg csonkolt.

  • A TableColumnItems elem határozza meg azokat a tulajdonságokat vagy szkripteket, amelyeknek az értékei megjelennek a sorban.

  • A TableColumnItem elem határozza meg azt a tulajdonságot vagy szkriptet, amelynek értéke megjelenik a sor oszlopában. A sor minden oszlopához szükség van egy TableColumnItem elemre. Az első bejegyzés az első oszlopban, a második oszlopban stb. jelenik meg.

  • A PropertyName elem határozza meg azt a tulajdonságot, amelynek értéke megjelenik a sorban. Meg kell adnia egy tulajdonságot vagy egy parancsfájlt, de mindkettőt nem.

  • A ScriptBlock elem határozza meg azt a szkriptet, amelynek értéke megjelenik a sorban. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.

  • A FormatString elem egy formátummintát határoz meg, amely meghatározza a tulajdonság vagy szkript értékének megjelenítését. Ez az elem nem kötelező.

  • Az Igazítás elem határozza meg a tulajdonság vagy szkript értékének megjelenítését. Az érték balra, jobbra vagy középre igazítható. Ez az elem nem kötelező.

A Tábla nézetet használó objektumok definiálása

Kétféleképpen határozhatja meg, hogy mely .NET-objektumok használják a táblanézetet. A ViewSelectedBy elem használatával meghatározhatja a nézet összes definíciója által megjeleníthető objektumokat, vagy az EntrySelectedBy elemmel meghatározhatja, hogy mely objektumok jelennek meg a nézet egy adott definíciója által. A legtöbb esetben a nézet csak egy definícióval rendelkezik, ezért az objektumokat általában a ViewSelectedBy elem határozza meg.

Az alábbi példa bemutatja, hogyan definiálhatja a táblanézet által megjelenített objektumokat a ViewSelectedBy és a TypeName elemek használatával. A megadható TypeName elemek száma nincs korlátozva, és a sorrendjük nem jelentős.

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

A táblázat nézet által használt objektumok megadásához a következő XML-elemek használhatók:

  • A ViewSelectedBy elem határozza meg, hogy a listanézet mely objektumokat jeleníti meg.

  • A TypeName elem határozza meg a nézet által megjelenített .NET-objektumot. A teljes .NET-típusnévre van szükség. A nézethez meg kell adnia legalább egy típust vagy kijelölési készletet, de nem adható meg maximális számú elem.

Az alábbi példa a ViewSelectedBy és selectionSetName elemeket használja. Olyan kijelölési halmazokat használjon, amelyekben több nézetben jelennek meg kapcsolódó objektumok, például amikor listanézetet és táblanézetet ad meg ugyanazokhoz az objektumokhoz. A kijelölési készletek létrehozásáról a Kijelölési készletek definiálása oldalon található további információ.

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

A következő XML-elemek segítségével adhatja meg a listanézet által használt objektumokat:

  • A ViewSelectedBy elem határozza meg, hogy a listanézet mely objektumokat jeleníti meg.

  • A SelectionSetName elem a nézet által megjeleníthető objektumok egy halmazát határozza meg. Meg kell adnia legalább egy kijelölési halmazt vagy típust a nézethez, de nem adható meg maximális számú elem.

Az alábbi példa bemutatja, hogyan definiálhatja a táblanézet egy adott definíciója által megjelenített objektumokat az EntrySelectedBy elem használatával. Ezzel az elemmel megadhatja az objektum .NET-típusnevét, egy objektumválasztó készletet vagy egy kijelölési feltételt, amely meghatározza, hogy mikor használja a rendszer a definíciót. További információ a kiválasztási feltételek létrehozásáról: Adatkijelzési feltételek definiálása.

Megjegyzés

Amikor több definíciót hoz létre a táblanézethez, nem adhat meg különböző oszlopfejléceket. Csak azt adhatja meg, hogy mi jelenik meg a tábla sorai között, például hogy milyen objektumok jelennek meg.

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

A következő XML-elemek segítségével adhatja meg a listanézet adott definíciója által használt objektumokat:

  • Az EntrySelectedBy elem határozza meg, hogy a definíció mely objektumokat jeleníti meg.

  • A TypeName elem határozza meg a definíció által megjelenített .NET-objektumot. Az elem használata esetén a teljes .NET-típusnévre van szükség. A definícióhoz meg kell adnia legalább egy típust, kijelölési halmazt vagy kiválasztási feltételt, de nem adható meg maximális számú elem.

  • A SelectionSetName elem (nem látható) olyan objektumokat ad meg, amelyek megjeleníthetőek ezzel a definícióval. A definícióhoz meg kell adnia legalább egy típust, kijelölési halmazt vagy kiválasztási feltételt, de nem adható meg maximális számú elem.

  • A SelectionCondition elem (nem látható) olyan feltételt ad meg, amely a definícióhoz használható. A definícióhoz meg kell adnia legalább egy típust, kijelölési halmazt vagy kiválasztási feltételt, de nem adható meg maximális számú elem. További információ a kiválasztási feltételek meghatározásáról: Adatkijelzési feltételek definiálása.

Formázási sztringek használata

A nézethez formázási sztringek is hozzáadhatóak az adatok megjelenítésének további meghatározásához. Az alábbi példa bemutatja, hogyan definiálhat formázási sztringet a tulajdonság StartTime értékeként.

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

Formátumminta megadásához a következő XML-elemek használhatók:

  • A TableColumnItem elem határozza meg azt a tulajdonságot vagy szkriptet, amelynek értéke megjelenik a sor oszlopában. A sor minden oszlopához szükség van egy TableColumnItem elemre. Az első bejegyzés az első oszlopban, a második oszlopban stb. jelenik meg.

  • A PropertyName elem határozza meg azt a tulajdonságot, amelynek értéke megjelenik a sorban. Meg kell adnia egy tulajdonságot vagy egy parancsfájlt, de mindkettőt nem.

  • A FormatString elem egy formátummintát határoz meg, amely meghatározza a tulajdonság vagy szkript értékének megjelenítését.

A következő példában a metódust hívjuk meg a szkript értékének ToString formázására. A szkriptek egy objektum bármely metódusát meg lehet hívni. Ezért ha egy objektum rendelkezik egy olyan metódussal, mint a , amely formázási paraméterekkel rendelkezik, a szkript ezt a metódust hívhatja meg a szkript kimeneti értékének ToString formázásához.

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

A metódus a következő XML-elemmel ToString hívható meg:

  • A TableColumnItem elem határozza meg azt a tulajdonságot vagy szkriptet, amelynek értéke megjelenik a sor oszlopában. A sor minden oszlopához szükség van egy TableColumnItem elemre. Az első bejegyzés az első oszlopban, a második oszlopban stb. jelenik meg.

  • A ScriptBlock elem határozza meg azt a szkriptet, amelynek értéke megjelenik a sorban. Meg kell adnia egy szkriptet vagy egy tulajdonságot, de mindkettőt nem.

Lásd még:

PowerShelles formázási fájl írása