Crear una vista
En este ejemplo se usa el método Add(String, OlViewType, OlViewSaveOption) de la colección Views para crear una vista para un objeto Folder.
Ejemplo
Nota:
El siguiente ejemplo de código es un fragmento de Programming Applications for Microsoft Office Outlook 2007 (Programación de aplicaciones para Microsoft Office Outlook 2007).
Puede crear vistas personalizables que permitan ordenar, agrupar y ver datos de todos los tipos diferentes dentro del panel de vista de la ventana del explorador de Outlook. También puede personalizar vistas integradas mediante programación. En la tabla siguiente se enumeran objetos que representan vistas de Outlook.
Nombre de objeto |
Descripción |
---|---|
Los datos se ven como una serie de imágenes de tarjeta de presentación electrónica. |
|
Los datos se ven en un formato de calendario. |
|
Los datos se ven en una serie de tarjetas. |
|
Los datos se ven como iconos de explorador o iconos de carpeta de Windows. |
|
Los datos se ven en una tabla sencilla basada en campos. |
|
Los datos se ven en una línea de tiempo lineal personalizable. |
Puede acceder a las propiedades y los métodos comunes para todas las vistas mediante el objeto View. Sin embargo, para obtener acceso a algunas propiedades que no son comunes para todas las vistas, debe convertir el objeto View en un objeto View derivado al que pertenezca la propiedad a la que quiera obtener acceso. Por ejemplo, para obtener acceso a la propiedad HeadingsFont del objeto Cardview, debe convertir el objeto View en un objeto Cardview. Si quiere determinar qué tipo de vista se representa con un determinado objeto View, use la propiedad ViewType.
Para crear una nueva vista, use el método Add de la colección Views para un objeto Folder. Después, establezca la visibilidad de la vista en el momento de la creación o en cualquier momento después de crear la vista. Para establecer la visibilidad de la vista en el momento de creación, especifique una constante OlViewSaveOption en el parámetro SaveOption del método Add. Para establecer la visibilidad en cualquier momento después de la creación de la vista, especifique una constante OlViewSaveOption para la propiedad SaveOption del objeto View.
Agregar una nueva vista genera el evento ViewAdd de la colección Views. Una vez que se crea la vista, puede personalizarla mediante programación convirtiendo el objeto View en uno de los objetos derivados y, después, haciendo los cambios necesarios. Use el método Save del objeto View derivado del objeto View para guardar los cambios realizados en la vista. Por último, use el método Apply del objeto Viewderivado del objeto View para aplicar la vista al objeto Explorer actual. Esto genera el evento ViewSwitch del objeto Explorer.
En el ejemplo de código siguiente, CreateMeetingRequestsView agrega una nueva vista denominada "Meeting Requests" a la Bandeja de entrada del usuario convirtiendo el objeto View en un objeto TableView. Después, CreateMeetingRequestsView llama al método Add del objeto Views con el parámetro Name establecido en “Meeting Requests” y el parámetro ViewType establecido en olTableView. La propiedad Filter del objeto TableView se establece en una cadena de búsqueda y ubicación DAV (DASL) que hace que la vista se muestre únicamente cuando hay elementos que contienen "IPM.Schedule" en la clase de mensaje para el elemento. Después, se guarda y se aplica la nueva vista.
Si usa Visual Studio para probar este ejemplo de código, primero debe agregar una referencia al componente de la biblioteca de objetos de Microsoft Outlook 15.0 y especificar la variable de Outlook al importar el espacio de nombres Microsoft.Office.Interop.Outlook. La instrucción using no debe producirse directamente antes de las funciones en el ejemplo de código, pero debe agregarse antes de la declaración de clase pública. La siguiente línea de código muestra cómo realizar la importación y la asignación en C#.
using Outlook = Microsoft.Office.Interop.Outlook;
private void CreateMeetingRequestsView()
{
const string PR_MESSAGE_CLASS =
"http://schemas.microsoft.com/mapi/proptag/0x001A001E";
Outlook.Views views =
Application.Session.GetDefaultFolder(
Outlook.OlDefaultFolders.olFolderInbox).Views;
Outlook.TableView tableView = (Outlook.TableView)
views.Add("Meeting Requests",
Outlook.OlViewType.olTableView,
Outlook.OlViewSaveOption.olViewSaveOptionThisFolderEveryone);
tableView.Filter = "\"" + PR_MESSAGE_CLASS + "\"" +
" like 'IPM.Schedule%'";
tableView.Save();
tableView.Apply();
}