Creazione di una visualizzazione tabella

Una vista tabella visualizza i dati in una o più colonne. Ogni riga della tabella rappresenta un oggetto .NET e ogni colonna della tabella rappresenta una proprietà dell'oggetto o un valore di script. È possibile definire una vista tabella che visualizza tutte le proprietà di un oggetto o un subset delle proprietà di un oggetto.

Visualizzazione di una vista tabella

L'esempio seguente mostra Windows PowerShell l'oggetto System.Serviceprocess.Servicecontroller restituito dal cmdlet Get-Service. Per questo oggetto, Windows PowerShell una vista tabella che visualizza la proprietà , la proprietà (questa proprietà è una proprietà alias per la proprietà ) Status Name e la proprietà ServiceName DisplayName . Ogni riga della tabella rappresenta un oggetto restituito dal cmdlet .

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

Definizione della vista tabella

Il codice XML seguente illustra lo schema della visualizzazione tabella per la visualizzazione di System.Serviceprocess.Servicecontroller? Oggetto Displayproperty=Fullname. È necessario specificare ogni proprietà da visualizzare nella vista tabella.

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

Per definire una visualizzazione elenco vengono usati gli elementi XML seguenti:

  • L'elemento View è l'elemento padre della vista tabella. Si tratta dello stesso elemento padre per le visualizzazioni di controllo list, wide e custom.

  • L'elemento Name specifica il nome della vista. Questo elemento è obbligatorio per tutte le visualizzazioni.

  • L'elemento ViewSelectedBy definisce gli oggetti che usano la vista. Questo elemento è obbligatorio.

  • L'elemento GroupBy (non illustrato in questo esempio) definisce quando viene visualizzato un nuovo gruppo di oggetti. Un nuovo gruppo viene avviato ogni volta che il valore di una proprietà o di uno script specifico cambia. Questo elemento è facoltativo.

  • L'elemento Controls (non illustrato in questo esempio) definisce i controlli personalizzati definiti dalla vista tabella. I controlli offrono un modo per specificare ulteriormente la modalità di visualizzazione dei dati. Questo elemento è facoltativo. Una visualizzazione può definire i propri controlli personalizzati oppure può usare controlli comuni che possono essere usati da qualsiasi visualizzazione nel file di formattazione. Per altre informazioni sui controlli personalizzati, vedere Creazione di controlli personalizzati.

  • L'elemento HideTableHeaders (non visualizzato in questo esempio) specifica che nella tabella non verranno visualizzate etichette nella parte superiore della tabella. Questo elemento è facoltativo.

  • Elemento TableControl che definisce le informazioni sull'intestazione e sulla riga della tabella. Analogamente a tutte le altre viste, una vista tabella può visualizzare i valori delle proprietà o dei valori degli oggetti generati dagli script.

Definizione delle intestazioni di colonna

  1. L'elemento TableHeaders e i relativi elementi figlio definiscono ciò che viene visualizzato nella parte superiore della tabella.

  2. L'elemento TableColumnHeader definisce ciò che viene visualizzato nella parte superiore di una colonna della tabella. Specificare questi elementi nell'ordine in cui si desidera visualizzare le intestazioni.

    Non esiste alcun limite al numero di questi elementi che è possibile usare, ma il numero di elementi TableColumnHeader nella vista tabella deve essere uguale al numero di elementi TableRowEntry in uso.

  3. L'elemento Label specifica il testo visualizzato. Questo elemento è facoltativo.

  4. L'elemento Width specifica la larghezza (in caratteri) della colonna. Questo elemento è facoltativo.

  5. L'elemento Alignment specifica la modalità di visualizzazione dell'etichetta. L'etichetta può essere allineata a sinistra, a destra o al centro. Questo elemento è facoltativo.

Definizione delle righe della tabella

Le viste tabella possono fornire una o più definizioni che specificano i dati visualizzati nelle righe della tabella usando gli elementi figlio dell'elemento TableRowEntries. Si noti che è possibile specificare più definizioni per le righe della tabella, ma le intestazioni per le righe rimangono invariate, indipendentemente dalla definizione di riga usata. In genere, una tabella avrà una sola definizione.

Nell'esempio seguente la vista fornisce una singola definizione che visualizza i valori di diverse proprietà di System.Diagnostics.Process? Oggetto Displayproperty=Fullname. Una vista tabella può visualizzare il valore di una proprietà o il valore di uno script (non illustrato nell'esempio) nelle righe.

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

Gli elementi XML seguenti possono essere usati per fornire definizioni per una riga:

  • L'elemento TableRowEntries e i relativi elementi figlio definiscono ciò che viene visualizzato nelle righe della tabella.

  • L'elemento TableRowEntry fornisce una definizione della riga. È necessario almeno un oggetto TableRowEntry. Tuttavia, non esiste alcun limite massimo al numero di elementi che è possibile aggiungere. Nella maggior parte dei casi, una vista avrà una sola definizione.

  • L'elemento EntrySelectedBy specifica gli oggetti visualizzati da una definizione specifica. Questo elemento è facoltativo ed è necessario solo quando si definiscono più elementi TableRowEntry che visualizzano oggetti diversi.

  • L'elemento Wrap specifica che il testo che supera la larghezza della colonna viene visualizzato nella riga successiva. Per impostazione predefinita, il testo di dimensioni superiori alla larghezza della colonna viene troncato.

  • L'elemento TableColumnItems definisce le proprietà o gli script i cui valori vengono visualizzati nella riga.

  • L'elemento TableColumnItem definisce la proprietà o lo script il cui valore viene visualizzato nella colonna della riga. Un elemento TableColumnItem è obbligatorio per ogni colonna della riga. La prima voce viene visualizzata nella prima colonna, nella seconda nella seconda colonna e così via.

  • L'elemento PropertyName specifica la proprietà il cui valore viene visualizzato nella riga. È necessario specificare una proprietà o uno script, ma non è possibile specificarne entrambi.

  • L'elemento ScriptBlock specifica lo script il cui valore viene visualizzato nella riga. È necessario specificare uno script o una proprietà, ma non è possibile specificare entrambi.

  • L'elemento FormatString specifica un modello di formato che definisce la modalità di visualizzazione della proprietà o del valore dello script. Questo elemento è facoltativo.

  • L'elemento Alignment specifica la modalità di visualizzazione del valore della proprietà o dello script. Il valore può essere allineato a sinistra, a destra o centrato. Questo elemento è facoltativo.

Definizione degli oggetti che usano la vista tabella

Esistono due modi per definire quali oggetti .NET usano la vista tabella. È possibile usare l'elemento ViewSelectedBy per definire gli oggetti che possono essere visualizzati da tutte le definizioni della vista oppure è possibile usare l'elemento EntrySelectedBy per definire gli oggetti visualizzati da una definizione specifica della vista. Nella maggior parte dei casi, una vista ha una sola definizione, quindi gli oggetti vengono in genere definiti dall'elemento ViewSelectedBy.

Nell'esempio seguente viene illustrato come definire gli oggetti visualizzati dalla vista tabella usando gli elementi ViewSelectedBy e TypeName. Non esiste alcun limite al numero di elementi TypeName che è possibile specificare e il relativo ordine non è significativo.

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

Gli elementi XML seguenti possono essere usati per specificare gli oggetti usati dalla vista tabella:

  • L'elemento ViewSelectedBy definisce gli oggetti visualizzati dalla visualizzazione elenco.

  • L'elemento TypeName specifica l'oggetto .NET visualizzato dalla visualizzazione. Il nome completo del tipo .NET è obbligatorio. È necessario specificare almeno un tipo o un set di selezione per la visualizzazione, ma non è possibile specificare il numero massimo di elementi.

Nell'esempio seguente vengono utilizzati gli elementi ViewSelectedBy e SelectionSetName. Usare i set di selezione in cui si dispone di un set correlato di oggetti che vengono visualizzati usando più viste, ad esempio quando si definisce una vista elenco e una vista tabella per gli stessi oggetti. Per altre informazioni su come creare un set di selezione, vedere Definizione di set di selezione.

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

Gli elementi XML seguenti possono essere usati per specificare gli oggetti usati dalla visualizzazione elenco:

  • L'elemento ViewSelectedBy definisce gli oggetti visualizzati dalla visualizzazione elenco.

  • L'elemento SelectionSetName specifica un set di oggetti che possono essere visualizzati dalla visualizzazione. È necessario specificare almeno un set di selezione o un tipo per la visualizzazione, ma non è possibile specificare il numero massimo di elementi.

Nell'esempio seguente viene illustrato come definire gli oggetti visualizzati da una definizione specifica della vista tabella usando l'elemento EntrySelectedBy. Usando questo elemento, è possibile specificare il nome del tipo .NET dell'oggetto, un set di selezione di oggetti o una condizione di selezione che specifica quando viene usata la definizione. Per altre informazioni su come creare condizioni di selezione, vedere Definizione delle condizioni per la visualizzazione dei dati.

Nota

Quando si creano più definizioni della vista tabella, non è possibile specificare intestazioni di colonna diverse. È possibile specificare solo gli elementi visualizzati nelle righe della tabella, ad esempio gli oggetti visualizzati.

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

Gli elementi XML seguenti possono essere usati per specificare gli oggetti utilizzati da una definizione specifica della visualizzazione elenco:

  • L'elemento EntrySelectedBy definisce gli oggetti visualizzati dalla definizione.

  • L'elemento TypeName specifica l'oggetto .NET visualizzato dalla definizione. Quando si usa questo elemento, è necessario il nome completo del tipo .NET. È necessario specificare almeno un tipo, un set di selezione o una condizione di selezione per la definizione, ma non è possibile specificare il numero massimo di elementi.

  • L'elemento SelectionSetName (non visualizzato) specifica un set di oggetti che possono essere visualizzati da questa definizione. È necessario specificare almeno un tipo, un set di selezione o una condizione di selezione per la definizione, ma non è possibile specificare un numero massimo di elementi.

  • L'elemento SelectionCondition (non visualizzato) specifica una condizione che deve esistere per poter usare questa definizione. È necessario specificare almeno un tipo, un set di selezione o una condizione di selezione per la definizione, ma non è possibile specificare un numero massimo di elementi. Per altre informazioni sulla definizione delle condizioni di selezione, vedere Definizione delle condizioni per la visualizzazione dei dati.

Uso di stringhe di formato

È possibile aggiungere stringhe di formattazione a una visualizzazione per definire ulteriormente la modalità di visualizzazione dei dati. Nell'esempio seguente viene illustrato come definire una stringa di formattazione per il valore della StartTime proprietà .

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

Per specificare un modello di formato, è possibile utilizzare gli elementi XML seguenti:

  • L'elemento TableColumnItem definisce la proprietà o lo script il cui valore viene visualizzato nella colonna della riga. È necessario un elemento TableColumnItem per ogni colonna della riga. La prima voce viene visualizzata nella prima colonna, la seconda nella seconda colonna e così via.

  • L'elemento PropertyName specifica la proprietà il cui valore viene visualizzato nella riga. È necessario specificare una proprietà o uno script, ma non è possibile specificarne entrambi.

  • L'elemento FormatString specifica un modello di formato che definisce la modalità di visualizzazione della proprietà o del valore dello script.

Nell'esempio seguente viene ToString chiamato il metodo per formattare il valore dello script. Gli script possono chiamare qualsiasi metodo di un oggetto. Pertanto, se un oggetto dispone di un metodo, ad esempio , che dispone di parametri di formattazione, lo script può chiamare tale metodo per formattare il valore ToString di output dello script.

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

L'elemento XML seguente può essere usato per chiamare il ToString metodo :

  • L'elemento TableColumnItem definisce la proprietà o lo script il cui valore viene visualizzato nella colonna della riga. È necessario un elemento TableColumnItem per ogni colonna della riga. La prima voce viene visualizzata nella prima colonna, la seconda nella seconda colonna e così via.

  • L'elemento ScriptBlock specifica lo script il cui valore viene visualizzato nella riga. È necessario specificare uno script o una proprietà, ma non è possibile specificarne entrambi.

Vedere anche

Scrittura di un file di formattazione di PowerShell