Creating a Wide View (Criar uma Vista Ampla)

Uma vista ampla apresenta um único valor para cada objeto que é exibido. O valor visualizado pode ser o valor de uma propriedade de objeto .NET ou o valor de um script. Por predefinição, não existe etiqueta ou cabeçalho para esta vista.

Uma exibição de vista ampla

O exemplo a seguir mostra como Windows PowerShell exibe o objeto System.Diagnostics.Process que é devolvido pelo cmdlet Get-Process quando a sua saída é canalizada para o cmdlet Formato-Wide. (Por predefinição, o cmdlet Get-Process devolve uma vista de tabela.) Neste exemplo, as duas colunas são utilizadas para exibir o nome do processo para cada objeto devolvido. O nome da propriedade do objeto não é apresentado, apenas o valor da propriedade.

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

Definição da Vista Ampla

O XML que se segue mostra o esquema de vista ampla para o objeto System.Diagnostics.Process.

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>

São utilizados os seguintes elementos XML para definir uma visão ampla:

  • O elemento Vista é o elemento-mãe da visão ampla. (Este é o mesmo elemento-mãe para a tabela, lista e vistas de controlo personalizado.)

  • O elemento Nome especifica o nome da vista. Este elemento é necessário para todas as vistas.

  • O elemento ViewSelectedBy define os objetos que utilizam a vista. Este elemento é necessário.

  • O elemento GroupBy define quando é apresentado um novo grupo de objetos. Um novo grupo é iniciado sempre que o valor de uma propriedade específica ou script muda. Este elemento é opcional.

  • Os elementos de Controlo definem os controlos personalizados que são definidos pela vista ampla. Os controlos dão-lhe uma forma de especificar ainda mais como os dados são apresentados. Este elemento é opcional. Uma vista pode definir os seus próprios controlos personalizados, ou pode usar controlos comuns que podem ser usados por qualquer vista no ficheiro formatação. Para obter mais informações sobre controlos personalizados, consulte criar controlos personalizados.

  • O elemento WideControl e os seus elementos infantis definem o que é mostrado na vista. No exemplo anterior, a vista foi concebida para exibir a propriedade System.Diagnostics.Process.Processname.

Para um exemplo de um ficheiro de formatação completo que define uma visão ampla simples, consulte Vista Ampla (Básico).

Fornecendo definições para a sua vista ampla

Vistas amplas podem fornecer uma ou mais definições utilizando os elementos infantis do elemento WideControl. Tipicamente, uma vista terá apenas uma definição. No exemplo seguinte, a vista fornece uma única definição que mostra o valor da propriedade System.Diagnostics.Process.Processname. Uma vista ampla pode mostrar o valor de um imóvel ou o valor de um script (não mostrado no exemplo).

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

Os seguintes elementos XML podem ser utilizados para fornecer definições para uma visão ampla:

  • O elemento WideControl e os seus elementos infantis definem o que é mostrado na vista.

  • O elemento AutoSize especifica se o tamanho da coluna e o número de colunas são ajustados com base no tamanho dos dados. Este elemento é opcional.

  • O elemento ColumnNumber especifica o número de colunas visualizadas na vista ampla. Este elemento é opcional.

  • O elemento Entradas Largas fornece as definições da vista. Na maioria dos casos, uma visão terá apenas uma definição. Este elemento é necessário.

  • O elemento WideEntry fornece uma definição da vista. Pelo menos um WideEntry é necessário; no entanto, não há limite máximo para o número de elementos que pode adicionar. Na maioria dos casos, uma visão terá apenas uma definição.

  • O elemento EntrySelectedBy especifica os objetos que são apresentados por uma definição específica. Este elemento é opcional e só é necessário quando define vários elementos WideEntry que exibem diferentes objetos.

  • O elemento WideItem especifica os dados que são apresentados pela vista. Em contraste com outros tipos de vistas, um amplo controlo pode exibir apenas um item.

  • O elemento Nome de Propriedade especifica a propriedade cujo valor é exibido pela vista. Você deve especificar uma propriedade ou um script, mas você não pode especificar ambos.

  • O elemento ScriptBlock especifica o script cujo valor é apresentado pela vista. Você deve especificar um script ou uma propriedade, mas você não pode especificar ambos.

  • O elemento FormatString especifica um padrão que é utilizado para exibir os dados. Este elemento é opcional.

Para um exemplo de um ficheiro de formatação completa que define uma definição de vista ampla, consulte Vista Ampla (Básico).

Definição dos objetos que usam a vista ampla

Existem duas formas de definir quais os objetos .NET que usam a vista ampla. Pode utilizar o elemento ViewSelectedBy para definir os objetos que podem ser exibidos por todas as definições da vista, ou pode utilizar o elemento EntrySelectedBy para definir quais os objetos que são apresentados por uma definição específica da vista. Na maioria dos casos, uma vista tem apenas uma definição, por isso os objetos são tipicamente definidos pelo elemento ViewSelectedBy.

O exemplo a seguir mostra como definir os objetos que são apresentados pela vista ampla utilizando os elementos ViewSelectedBy e TypeName. Não há limite para o número de elementos TypeName que pode especificar, e a sua encomenda não é significativa.

<View>
  <Name>System.ServiceProcess.ServiceController</Name>
  <ViewSelectedBy>
    <TypeName>System.Diagnostics.Process</TypeName>
  </ViewSelectedBy>
  <WideControl>...</WideControl>
</View>

Os seguintes elementos XML podem ser utilizados para especificar os objetos utilizados pela vista ampla:

  • O elemento ViewSelectedBy define quais os objetos que são exibidos pela vista ampla.

  • O elemento TypeName especifica o .NET que é visualizado pela vista. É necessário o nome do tipo .NET totalmente qualificado. Deve especificar pelo menos um tipo ou conjunto de seleção para a vista, mas não há um número máximo de elementos que possam ser especificados.

Para um exemplo de um ficheiro de formatação completo, consulte Vista Larga (Básico).

O exemplo a seguir utiliza os elementos ViewSelectedBy e SelectionSetName. Utilize conjuntos de seleção onde tenha um conjunto de objetos relacionados que são exibidos usando múltiplas vistas, tais como quando define uma vista ampla e uma vista de mesa para os mesmos objetos. Para obter mais informações sobre como criar um conjunto de seleção, consulte Definição de Conjuntos de Seleção.

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

Os seguintes elementos XML podem ser utilizados para especificar os objetos utilizados pela vista ampla:

  • O elemento ViewSelectedBy define quais os objetos que são exibidos pela vista ampla.

  • O elemento SelectionSetName especifica um conjunto de objetos que podem ser exibidos pela vista. Deve especificar pelo menos um conjunto de seleção ou um tipo para a vista, mas não há um número máximo de elementos que possam ser especificados.

O exemplo a seguir mostra como definir os objetos apresentados por uma definição específica da vista ampla utilizando o elemento EntrySelectedBy. Utilizando este elemento, pode especificar o nome do tipo .NET do objeto, um conjunto de objetos de seleção ou uma condição de seleção que especifica quando a definição é utilizada. Para obter mais informações sobre como criar condições de seleção, consulte condições de definição para visualização de dados.

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

Os seguintes elementos XML podem ser utilizados para especificar os objetos que são utilizados por uma definição específica da vista ampla:

  • O elemento EntrySelectedBy define quais os objetos que são apresentados pela definição.

  • O elemento TypeName especifica o .NET que é apresentado pela definição. Ao utilizar este elemento é necessária a denominação de tipo .NET totalmente qualificada. Deve especificar pelo menos um tipo, conjunto de seleção ou condição de seleção para a definição, mas não há um número máximo de elementos que possam ser especificados.

  • O elemento SelectionSetName (não mostrado) especifica um conjunto de objetos que podem ser exibidos por esta definição. Deve especificar pelo menos um tipo, conjunto de seleção ou condição de seleção para a definição, mas não há um número máximo de elementos que possam ser especificados.

  • O elemento SelecçãoCondição (não mostrado) especifica uma condição que deve existir para que esta definição seja utilizada. Deve especificar pelo menos um tipo, conjunto de seleção ou condição de seleção para a definição, mas não há um número máximo de elementos que possam ser especificados. Para obter mais informações sobre a definição das condições de seleção, consulte as condições de definição dos dados de visualização.

Exibindo grupos de objetos em uma vista ampla

Pode separar os objetos que são apresentados pela vista ampla em grupos. Isto não significa que você define um grupo, apenas que Windows PowerShell inicia um novo grupo sempre que o valor de uma propriedade específica ou script muda. No exemplo seguinte, é iniciado um novo grupo sempre que o valor do sistema.Serviceprocess.Servicecontroller.Servicecontroller.Servicecontroller.Servicecontroller.Servicetype.Servicetype.Servicetype muda.

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

Os seguintes elementos XML são utilizados para definir quando um grupo é iniciado:

  • O elemento GroupBy define a propriedade ou script que inicia o novo grupo e define como o grupo é exibido.

  • O elemento Nome de Propriedade especifica a propriedade que inicia um novo grupo sempre que o seu valor muda. Você deve especificar uma propriedade ou script para iniciar o grupo, mas você não pode especificar ambos.

  • O elemento ScriptBlock especifica o script que inicia um novo grupo sempre que o seu valor muda. Você deve especificar um script ou propriedade para iniciar o grupo, mas você não pode especificar ambos.

  • O elemento Etiqueta define uma etiqueta que é exibida no início de cada grupo. Além do texto especificado por este elemento, Windows PowerShell exibe o valor que desencadeou o novo grupo e adiciona uma linha em branco antes e depois da etiqueta. Este elemento é opcional.

  • O elemento CustomControl define um controlo que é utilizado para exibir os dados. Este elemento é opcional.

  • O elemento CustomControlName especifica um controlo comum ou de visualização que é utilizado para exibir os dados. Este elemento é opcional.

Para um exemplo de um ficheiro de formatação completa que define grupos, consulte Wide View (GroupBy).

Usando cordas de formato

As cordas de formatação podem ser adicionadas a uma visão ampla para definir ainda mais como os dados são apresentados. O exemplo a seguir mostra como definir uma cadeia de formatação para o valor do StartTime imóvel.

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

Os seguintes elementos XML podem ser utilizados para especificar um padrão de formato:

  • O elemento WideItem especifica os dados que são apresentados pela vista.

  • O elemento Nome de Propriedade especifica a propriedade cujo valor é exibido pela vista. Você deve especificar uma propriedade ou um script, mas você não pode especificar ambos.

  • O elemento FormatString especifica um padrão de formato que define como o valor da propriedade ou do script é exibido na vista

  • O elemento ScriptBlock (não mostrado) especifica o script cujo valor é apresentado pela vista. Você deve especificar um script ou uma propriedade, mas você não pode especificar ambos.

No exemplo seguinte, o ToString método é chamado para formatar o valor do script. Os scripts podem chamar qualquer método de um objeto. Portanto, se um objeto tem um método, ToString como, que tem parâmetros de formatação, o script pode chamar esse método para formatar o valor de saída do script.

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

O seguinte elemento XML pode ser usado para chamar o ToString método:

  • O elemento WideItem especifica os dados que são apresentados pela vista.

  • O elemento ScriptBlock (não mostrado) especifica o script cujo valor é apresentado pela vista. Você deve especificar um script ou uma propriedade, mas você não pode especificar ambos.

Consulte também

Wide View (Basic) (Vista Ampla [Básica])

Wide View (GroupBy) (Vista Ampla [GroupBy])

Writing a PowerShell Formatting File (Escrever um Ficheiro de Formatação do PowerShell)