Partager via


Création d’une vue de table

Une vue de tableau affiche des données dans une ou plusieurs colonnes. Chaque ligne de la table représente un objet .NET, et chaque colonne de la table représente une propriété de l’objet ou une valeur de script. Vous pouvez définir une vue de table qui affiche toutes les propriétés d’un objet ou d’un sous-ensemble des propriétés d’un objet.

Affichage d’une vue de tableau

L’exemple suivant montre comment Windows PowerShell affiche l’objet System.ServiceProcess.ServiceController retourné par l’applet de commande Get-Service . Pour cet objet, Windows PowerShell a défini une vue de table qui affiche la propriété Status, la propriété Name (cette propriété est une propriété alias pour la propriété ServiceName) et la propriété DisplayName. Chaque ligne de la table représente un objet retourné par l’applet de commande.

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

Définition de l’affichage table

Le code XML suivant montre le schéma de vue de table pour afficher l’objet System.ServiceProcess.ServiceController. Vous devez spécifier chaque propriété que vous souhaitez afficher dans la vue de table.

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

Les éléments XML suivants sont utilisés pour définir un affichage de liste :

  • L’élément View est l’élément parent de la vue table. (Il s’agit du même élément parent pour les vues de contrôle personnalisées, larges et de liste.)

  • L’élément Name spécifie le nom de la vue. Cet élément est requis pour toutes les vues.

  • L’élément ViewSelectedBy définit les objets qui utilisent la vue. Cet élément est obligatoire.

  • L’élément GroupBy (non illustré dans cet exemple) définit lorsqu’un nouveau groupe d’objets est affiché. Un nouveau groupe est démarré chaque fois que la valeur d’une propriété ou d’un script spécifique change. Cet élément est facultatif.

  • L’élément Controls (non illustré dans cet exemple) définit les contrôles personnalisés définis par la vue table. Les contrôles vous permettent de spécifier davantage la façon dont les données sont affichées. Cet élément est facultatif. Une vue peut définir ses propres contrôles personnalisés ou utiliser des contrôles courants qui peuvent être utilisés par n’importe quelle vue dans le fichier de mise en forme. Pour plus d’informations sur les contrôles personnalisés, consultez Création de contrôles personnalisés.

  • Le HideTableHeaders élément (non affiché dans cet exemple) spécifie que la table n’affiche aucune étiquette en haut de la table. Cet élément est facultatif.

  • Élément TableControl qui définit les informations d’en-tête et de ligne de la table. Comme pour tous les autres affichages, une vue de tableau peut afficher les valeurs des propriétés d’objet ou des valeurs générées par des scripts.

Définition des en-têtes de colonne

  1. Les TableHeaders élément et ses éléments enfants définissent ce qui est affiché en haut du tableau.

  2. L’élément TableColumnHeader définit ce qui est affiché en haut d’une colonne de la table. Spécifiez ces éléments dans l’ordre dans lequel vous souhaitez afficher les en-têtes.

    Il n’existe aucune limite au nombre de ces éléments que vous pouvez utiliser, mais le nombre d’éléments TableColumnHeader dans votre vue de table doit être égal au nombre de TableRowEntry éléments que vous utilisez.

  3. L’élément Label spécifie le texte affiché. Cet élément est facultatif.

  4. L’élément Width spécifie la largeur (en caractères) de la colonne. Cet élément est facultatif.

  5. L’élément Alignment spécifie la façon dont l’étiquette est affichée. L’étiquette peut être alignée à gauche, à droite ou centrée. Cet élément est facultatif.

Définition des lignes de table

Les vues de table peuvent fournir une ou plusieurs définitions qui spécifient les données affichées dans les lignes de la table à l’aide des éléments enfants de l’élément TableRowEntries. Notez que vous pouvez spécifier plusieurs définitions pour les lignes de la table, mais que les en-têtes des lignes restent identiques, quelle que soit la définition de ligne utilisée. En règle générale, une table n’aura qu’une seule définition.

Dans l’exemple suivant, la vue fournit une définition unique qui affiche les valeurs de plusieurs propriétés de l’objet System.Diagnostics.Process. Une vue de tableau peut afficher la valeur d’une propriété ou la valeur d’un script (non illustré dans l’exemple) dans ses lignes.

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

Les éléments XML suivants peuvent être utilisés pour fournir des définitions pour une ligne :

  • L’élément TableRowEntries et ses éléments enfants définissent ce qui est affiché dans les lignes de la table.

  • L’élément TableRowEntry fournit une définition de la ligne. Au moins un TableRowEntry est requis ; Toutefois, il n’existe aucune limite maximale au nombre d’éléments que vous pouvez ajouter. Dans la plupart des cas, une vue n’aura qu’une seule définition.

  • L’élément EntrySelectedBy spécifie les objets affichés par une définition spécifique. Cet élément est facultatif et n’est nécessaire que lorsque vous définissez plusieurs éléments TableRowEntry qui affichent différents objets.

  • L’élément Wrap spécifie que le texte qui dépasse la largeur de colonne est affiché sur la ligne suivante. Par défaut, le texte qui dépasse la largeur de colonne est tronqué.

  • L’élément TableColumnItems définit les propriétés ou les scripts dont les valeurs sont affichées dans la ligne.

  • L’élément TableColumnItem définit la propriété ou le script dont la valeur est affichée dans la colonne de la ligne. Un élément TableColumnItem est requis pour chaque colonne de la ligne. La première entrée est affichée dans la première colonne, la deuxième entrée dans la deuxième colonne, et ainsi de suite.

  • L’élément PropertyName spécifie la propriété dont la valeur est affichée dans la ligne. Vous devez spécifier une propriété ou un script, mais vous ne pouvez pas spécifier les deux.

  • L’élément ScriptBlock spécifie le script dont la valeur est affichée dans la ligne. Vous devez spécifier un script ou une propriété, mais vous ne pouvez pas spécifier les deux.

  • L’élément FormatString spécifie un modèle de format qui définit la façon dont la propriété ou la valeur de script est affichée. Cet élément est facultatif.

  • L’élément Alignment spécifie la façon dont la valeur de la propriété ou du script est affichée. La valeur peut être alignée à gauche, à droite ou centrée. Cet élément est facultatif.

Définition des objets qui utilisent la vue Table

Il existe deux façons de définir les objets .NET qui utilisent la vue table. Vous pouvez utiliser l’élément ViewSelectedBy pour définir les objets qui peuvent être affichés par toutes les définitions de la vue, ou vous pouvez utiliser l’élément EntrySelectedBy pour définir quels objets sont affichés par une définition spécifique de la vue. Dans la plupart des cas, une vue n’a qu’une seule définition. Par conséquent, les objets sont généralement définis par l’élément ViewSelectedBy.

L’exemple suivant montre comment définir les objets affichés par la vue table à l’aide des éléments ViewSelectedBy et TypeName. Il n’existe aucune limite au nombre d’éléments TypeName que vous pouvez spécifier, et leur ordre n’est pas significatif.

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

Les éléments XML suivants peuvent être utilisés pour spécifier les objets utilisés par la vue table :

  • L’élément ViewSelectedBy définit les objets affichés par l’affichage liste.

  • L’élément TypeName spécifie l’objet .NET affiché par la vue. Le nom de type .NET complet est requis. Vous devez spécifier au moins un type ou un jeu de sélection pour la vue, mais il n’existe aucun nombre maximal d’éléments qui peuvent être spécifiés.

L’exemple suivant utilise les éléments ViewSelectedBy et SelectionSetName. Utilisez des jeux de sélection dans lesquels vous disposez d’un ensemble associé d’objets affichés à l’aide de plusieurs vues, par exemple lorsque vous définissez un affichage de liste et une vue de table pour les mêmes objets. Pour plus d’informations sur la création d’un jeu de sélections, consultez Définition des jeux de sélection.

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

Les éléments XML suivants peuvent être utilisés pour spécifier les objets utilisés par l’affichage liste :

  • L’élément ViewSelectedBy définit les objets affichés par l’affichage liste.

  • L’élément SelectionSetName spécifie un ensemble d’objets qui peuvent être affichés par la vue. Vous devez spécifier au moins un jeu de sélection ou un type pour la vue, mais il n’existe aucun nombre maximal d’éléments qui peuvent être spécifiés.

L’exemple suivant montre comment définir les objets affichés par une définition spécifique de la vue de table à l’aide de l’élément EntrySelectedBy. À l’aide de cet élément, vous pouvez spécifier le nom de type .NET de l’objet, un jeu de sélection d’objets ou une condition de sélection qui spécifie quand la définition est utilisée. Pour plus d’informations sur la création d’une condition de sélection, consultez Définition des conditions pour l’affichage des données.

Remarque

Lors de la création de plusieurs définitions de la vue table, vous ne pouvez pas spécifier d’en-têtes de colonne différents. Vous pouvez spécifier uniquement ce qui est affiché dans les lignes de la table, comme les objets affichés.

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

Les éléments XML suivants peuvent être utilisés pour spécifier les objets utilisés par une définition spécifique de l’affichage de liste :

  • L’élément EntrySelectedBy définit les objets affichés par la définition.

  • L’élément TypeName spécifie l’objet .NET affiché par la définition. Lorsque vous utilisez cet élément, le nom de type .NET complet est requis. Vous devez spécifier au moins un type, un jeu de sélection ou une condition de sélection pour la définition, mais il n’existe aucun nombre maximal d’éléments pouvant être spécifiés.

  • L’élément SelectionSetName (non affiché) spécifie un ensemble d’objets qui peuvent être affichés par cette définition. Vous devez spécifier au moins un type, un jeu de sélection ou une condition de sélection pour la définition, mais il n’existe aucun nombre maximal d’éléments pouvant être spécifiés.

  • L’élément SelectionCondition (non affiché) spécifie une condition qui doit exister pour que cette définition soit utilisée. Vous devez spécifier au moins un type, un jeu de sélection ou une condition de sélection pour la définition, mais il n’existe aucun nombre maximal d’éléments pouvant être spécifiés. Pour plus d’informations sur la définition des conditions de sélection, consultez Définition des conditions pour l’affichage des données.

Utilisation de chaînes de format

Vous pouvez ajouter des chaînes de mise en forme à une vue pour définir davantage la façon dont les données sont affichées. L’exemple suivant montre comment définir une chaîne de mise en forme pour la valeur de la propriété StartTime.

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

Les éléments XML suivants peuvent être utilisés pour spécifier un modèle de format :

  • L’élément TableColumnItem définit la propriété ou le script dont la valeur est affichée dans la colonne de la ligne. Un élément TableColumnItem est requis pour chaque colonne de la ligne. La première entrée est affichée dans la première colonne, la deuxième entrée dans la deuxième colonne, et ainsi de suite.

  • L’élément PropertyName spécifie la propriété dont la valeur est affichée dans la ligne. Vous devez spécifier une propriété ou un script, mais vous ne pouvez pas spécifier les deux.

  • L’élément FormatString spécifie un modèle de format qui définit la façon dont la propriété ou la valeur de script est affichée.

Dans l’exemple suivant, la méthode ToString est appelée pour mettre en forme la valeur du script. Les scripts peuvent appeler n’importe quelle méthode d’un objet. Par conséquent, si un objet a une méthode, telle que ToString, qui a des paramètres de mise en forme, le script peut appeler cette méthode pour mettre en forme la valeur de sortie du script.

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

L’élément XML suivant peut être utilisé pour appeler la méthode ToString :

  • L’élément TableColumnItem définit la propriété ou le script dont la valeur est affichée dans la colonne de la ligne. Un élément TableColumnItem est requis pour chaque colonne de la ligne. La première entrée est affichée dans la première colonne, la deuxième entrée dans la deuxième colonne, et ainsi de suite.

  • L’élément ScriptBlock spécifie le script dont la valeur est affichée dans la ligne. Vous devez spécifier un script ou une propriété, mais vous ne pouvez pas spécifier les deux.

Voir aussi

Écrire un fichier de mise en forme PowerShell