Compartir a través de


Creación de una vista amplia

Una vista ancha muestra un único valor para cada objeto que se muestra. El valor mostrado puede ser el valor de una propiedad de objeto .NET o el valor de un script. De forma predeterminada, no hay ninguna etiqueta o encabezado para esta vista.

Una pantalla de vista ancha

En el ejemplo siguiente se muestra cómo Windows PowerShell muestra el objeto System.Diagnostics.Process devuelto por el cmdlet Get-Process cuando su salida se canaliza al cmdlet Format-Wide. (De forma predeterminada, el cmdlet Get-Process devuelve una vista de tabla). En este ejemplo, las dos columnas se usan para mostrar el nombre del proceso para cada objeto devuelto. No se muestra el nombre de la propiedad del objeto, solo el valor de la propiedad .

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

Definición de la vista ancha

El siguiente XML muestra el esquema de vista amplia del 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>

Los siguientes elementos XML se usan para definir una vista amplia:

  • El elemento View es el elemento primario de la vista ancha. (Este es el mismo elemento primario para las vistas de tabla, lista y control personalizado).
  • El elemento Name especifica el nombre de la vista. Este elemento es necesario para todas las vistas.
  • El elemento ViewSelectedBy define los objetos que usan la vista. Este elemento es necesario.
  • El elemento GroupBy define cuándo se muestra un nuevo grupo de objetos. Se inicia un nuevo grupo cada vez que cambia el valor de una propiedad o script específico. Este elemento es opcional.
  • Los elementos Controls definen los controles personalizados definidos por la vista amplia. Los controles proporcionan una manera de especificar aún más cómo se muestran los datos. Este elemento es opcional. Una vista puede definir sus propios controles personalizados o puede usar controles comunes que cualquier vista del archivo de formato puede usar. Para obtener más información sobre los controles personalizados, vea Crear controles personalizados.
  • El elemento WideControl y sus elementos secundarios definen lo que se muestra en la vista. En el ejemplo anterior, la vista está diseñada para mostrar la propiedad System.Diagnostics.Process.ProcessName.

Para obtener un ejemplo de un archivo de formato completo que define una vista ancha simple, vea Vista ancha (Básico).

Proporcionar definiciones para la vista ancha

Las vistas anchas pueden proporcionar una o varias definiciones mediante los elementos secundarios del elemento WideControl. Normalmente, una vista solo tendrá una definición. En el ejemplo siguiente, la vista proporciona una única definición que muestra la propiedad System.Diagnostics.Process.ProcessName. Una vista amplia puede mostrar el valor de una propiedad o el valor de un script (no se muestra en el ejemplo).

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

Los siguientes elementos XML se pueden usar para proporcionar definiciones para una vista amplia:

  • El elemento WideControl y sus elementos secundarios definen lo que se muestra en la vista.
  • El elemento AutoSize especifica si el tamaño de columna y el número de columnas se ajustan en función del tamaño de los datos. Este elemento es opcional.
  • El elemento ColumnNumber especifica el número de columnas mostradas en la vista ancha. Este elemento es opcional.
  • El elemento WideEntries proporciona las definiciones de la vista. En la mayoría de los casos, una vista solo tendrá una definición. Este elemento es necesario.
  • El elemento WideEntry proporciona una definición de la vista. Se requiere al menos un WideEntry; sin embargo, no hay ningún límite máximo para el número de elementos que puede agregar. En la mayoría de los casos, una vista solo tendrá una definición.
  • El elemento EntrySelectedBy especifica los objetos que se muestran mediante una definición específica. Este elemento es opcional y solo se necesita cuando se definen varios elementos WideEntry que muestran objetos diferentes.
  • El elemento WideItem especifica los datos que muestra la vista. A diferencia de otros tipos de vistas, un control ancho solo puede mostrar un elemento.
  • El elemento PropertyName especifica la propiedad cuyo valor se muestra en la vista. Debe especificar una propiedad o un script, pero no puede especificar ambas.
  • El elemento ScriptBlock especifica el script cuyo valor se muestra en la vista. Debe especificar un script o una propiedad, pero no puede especificar ambos.
  • El elemento FormatString especifica un patrón que se usa para mostrar los datos. Este elemento es opcional.

Para obtener un ejemplo de un archivo de formato completo que define una definición de vista amplia, vea Wide View (Basic).

Definir los objetos que usan la vista ancha

Hay dos maneras de definir qué objetos .NET usan la vista amplia. Puede usar el elemento ViewSelectedBy para definir los objetos que pueden mostrar todas las definiciones de la vista, o bien puede usar el elemento EntrySelectedBy para definir qué objetos se muestran mediante una definición específica de la vista. En la mayoría de los casos, una vista solo tiene una definición, por lo que los objetos normalmente se definen mediante el elemento ViewSelectedBy.

En el ejemplo siguiente se muestra cómo definir los objetos que muestra la vista amplia mediante los elementos ViewSelectedBy y TypeName. No hay límite para el número de TypeName elementos que puede especificar y su orden no es significativo.

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

Los siguientes elementos XML se pueden usar para especificar los objetos que usa la vista ancha:

  • El elemento ViewSelectedBy define qué objetos se muestran en la vista amplia.
  • El elemento TypeName especifica el .NET que muestra la vista. Se requiere el nombre de tipo completo de .NET. Debe especificar al menos un tipo o conjunto de selección para la vista, pero no hay ningún número máximo de elementos que se pueden especificar.

Para obtener un ejemplo de un archivo de formato completo, vea Wide View (Básico).

En el ejemplo siguiente se usan los elementos ViewSelectedBy y SelectionSetName. Use conjuntos de selección en los que tiene un conjunto relacionado de objetos que se muestran mediante varias vistas, como cuando se define una vista amplia y una vista de tabla para los mismos objetos. Para obtener más información sobre cómo crear un conjunto de selección, vea Definición de conjuntos de selección.

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

Los siguientes elementos XML se pueden usar para especificar los objetos que usa la vista ancha:

  • El elemento ViewSelectedBy define qué objetos se muestran en la vista amplia.
  • El elemento SelectionSetName especifica un conjunto de objetos que la vista puede mostrar. Debe especificar al menos un conjunto de selección o un tipo para la vista, pero no hay ningún número máximo de elementos que se pueden especificar.

En el ejemplo siguiente se muestra cómo definir los objetos mostrados por una definición específica de la vista amplia mediante el elemento EntrySelectedBy. Con este elemento, puede especificar el nombre de tipo de .NET del objeto, un conjunto de selección de objetos o una condición de selección que especifica cuándo se usa la definición. Para obtener más información sobre cómo crear unas condiciones de selección, vea Definición de condiciones para mostrar datos.

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

Los siguientes elementos XML se pueden usar para especificar los objetos utilizados por una definición específica de la vista amplia:

  • El elemento EntrySelectedBy define qué objetos se muestran mediante la definición.
  • El elemento TypeName especifica el .NET que muestra la definición. Cuando se usa este elemento, se requiere el nombre de tipo completo de .NET. Debe especificar al menos un tipo, conjunto de selección o condición de selección para la definición, pero no hay ningún número máximo de elementos que se pueden especificar.
  • El elemento SelectionSetName (no se muestra) especifica un conjunto de objetos que esta definición puede mostrar. Debe especificar al menos un tipo, conjunto de selección o condición de selección para la definición, pero no hay ningún número máximo de elementos que se pueden especificar.
  • El elemento SelectionCondition (no se muestra) especifica una condición que debe existir para que se use esta definición. Debe especificar al menos un tipo, conjunto de selección o condición de selección para la definición, pero no hay ningún número máximo de elementos que se pueden especificar. Para obtener más información sobre cómo definir condiciones de selección, vea Definición de condiciones para mostrar datos.

Mostrar grupos de objetos en una vista ancha

Puede separar los objetos que muestra la vista amplia en grupos. Esto no significa que defina un grupo, solo que Windows PowerShell inicie un nuevo grupo cada vez que cambie el valor de una propiedad o script específico. En el ejemplo siguiente, se inicia un nuevo grupo cada vez que cambia el valor de la propiedad System.ServiceProcess.ServiceController.ServiceType.

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

Los siguientes elementos XML se usan para definir cuándo se inicia un grupo:

  • El elemento GroupBy define la propiedad o script que inicia el nuevo grupo y define cómo se muestra el grupo.
  • El elemento PropertyName especifica la propiedad que inicia un nuevo grupo cada vez que cambia su valor. Debe especificar una propiedad o un script para iniciar el grupo, pero no puede especificar ambos.
  • El elemento ScriptBlock especifica el script que inicia un nuevo grupo cada vez que cambia su valor. Debe especificar un script o una propiedad para iniciar el grupo, pero no puede especificar ambos.
  • El elemento Label define una etiqueta que se muestra al principio de cada grupo. Además del texto especificado por este elemento, Windows PowerShell muestra el valor que desencadenó el nuevo grupo y agrega una línea en blanco antes y después de la etiqueta. Este elemento es opcional.
  • El elemento CustomControl define un control que se usa para mostrar los datos. Este elemento es opcional.
  • El elemento CustomControlName especifica un control común o de vista que se usa para mostrar los datos. Este elemento es opcional.

Para obtener un ejemplo de un archivo de formato completo que define grupos, vea Wide View (GroupBy).

Usar cadenas de formato

Las cadenas de formato se pueden agregar a una vista amplia para definir aún más cómo se muestran los datos. En el ejemplo siguiente se muestra cómo definir una cadena de formato para el valor de la propiedad StartTime.

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

Los siguientes elementos XML se pueden usar para especificar un patrón de formato:

  • El elemento WideItem especifica los datos que muestra la vista.
  • El elemento PropertyName especifica la propiedad cuyo valor se muestra en la vista. Debe especificar una propiedad o un script, pero no puede especificar ambas.
  • El elemento FormatString especifica un patrón de formato que define cómo se muestra la propiedad o el valor del script en la vista.
  • El elemento ScriptBlock (no se muestra) especifica el script cuyo valor se muestra en la vista. Debe especificar un script o una propiedad, pero no puede especificar ambos.

En el ejemplo siguiente, se llama al método ToString para dar formato al valor del script. Los scripts pueden llamar a cualquier método de un objeto . Por lo tanto, si un objeto tiene un método, como ToString, que tiene parámetros de formato, el script puede llamar a ese método para dar formato al valor de salida del script.

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

El siguiente elemento XML se puede usar para llamar al método ToString:

  • El elemento WideItem especifica los datos que muestra la vista.
  • El elemento ScriptBlock (no se muestra) especifica el script cuyo valor se muestra en la vista. Debe especificar un script o una propiedad, pero no puede especificar ambos.

Véase también