del método ReportingEventReceiver.OnCustomFieldCreated
Un controlador de evento posterior en el servicio de informe de datos para crear un campo personalizado.
Espacio de nombres: Microsoft.Office.Project.Server.Events
Ensamblado: Microsoft.Office.Project.Server.Events.Receivers (en Microsoft.Office.Project.Server.Events.Receivers.dll)
Sintaxis
'Declaración
Public Overridable Sub OnCustomFieldCreated ( _
contextInfo As PSContextInfo, _
e As ReportingPostCustomFieldCreatedEventArgs _
)
'Uso
Dim instance As ReportingEventReceiver
Dim contextInfo As PSContextInfo
Dim e As ReportingPostCustomFieldCreatedEventArgs
instance.OnCustomFieldCreated(contextInfo, _
e)
public virtual void OnCustomFieldCreated(
PSContextInfo contextInfo,
ReportingPostCustomFieldCreatedEventArgs e
)
Parámetros
contextInfo
Tipo: Microsoft.Office.Project.Server.Library.PSContextInfoContiene la información de contexto de Project Server.
e
Tipo: Microsoft.Office.Project.Server.Events.ReportingPostCustomFieldCreatedEventArgsLos datos para el evento.
Comentarios
El servicio de informe de datos provoca el campo personalizado de informes creado eventos cuando se actualiza la base de datos de generación de informes con la información de campos personalizados. El PSI métodos CreateCustomFields y CreateCustomFields2 provocan un campo personalizado que se creó el evento antes del evento de generación de informes. Estos eventos pueden ser muy cercanos en el tiempo.
ReportingCustomFieldMetadataDataSet proporciona los metadatos necesarios para el sistema de generación de informes para transferir información de campos personalizados del objeto RDS. El valor del miembro del conjunto de datos de CustomFieldTypeUID también puede encontrarse en el evento e.CustomFieldTypeGUID de propiedad de argumento.
Los nombres de estas dos entidades incluyen la palabra "Tipo" sin embargo estos valores no están asociados con el tipo de campo personalizado (costo, fecha, duración, indicador, número o texto), en su lugar al tipo del GUID (campo personalizado).
Para obtener más información sobre los eventos RDS de la base de datos de informes, consulte eventos para el RDB.
Ejemplos
El siguiente es un ejemplo de un controlador de evento posterior a la del campo personalizado creado. El método OnCustomFieldCreated recupera la información de los parámetros de evento y escribe en un archivo XML.
using System;
using System.Data;
using System.IO;
using System.Text;
using Microsoft.Office.Project.Server.Events;
using PSLib = Microsoft.Office.Project.Server.Library;
using PSSchema = Microsoft.Office.Project.Server.Schema;
namespace Microsoft.SDK.Project.Samples.ReportingEvents
{
public class TestCustomFieldCreated : ReportingEventReceiver
{
// Change the output directory for your computer.
private const string OUTPUT_FILES = @"C:\Project\Samples\Output\";
private static string outFilePath;
public override void OnCustomFieldCreated(PSLib.PSContextInfo
contextInfo, ReportingPostCustomFieldCreatedEventArgs e)
{
// Record the time of the event.
DateTime eventRaised = DateTime.Now;
// Create the location for the output file.
outFilePath = OUTPUT_FILES + "ReportingCustomFieldCreatedTestOutput.txt";
// Write event argument information to the output file.
string eventData = "\r\n\r\nCustom Field Created post-event handler: " + eventRaised.ToString();
eventData += "\r\nPWA site Guid: " + contextInfo.SiteGuid.ToString();
eventData += "\r\nUser name: " + contextInfo.UserName;
eventData += "\r\nUser Guid: " + contextInfo.UserGuid;
eventData += "\r\nCustom field type GUID: " + e.CustomFieldTypeGuid.ToString();
// Include the reporting metadata for the custom field.
PSSchema.ReportingCustomFieldMetadataDataSet projectDs = e.CustomFieldMetadataDataSet;
projectDs.WriteXml(outFilePath);
using (StreamWriter outputData = new StreamWriter(outFilePath, true))
{
outputData.WriteLine();
outputData.WriteLine(eventData);
outputData.Close();
}
}
}
}
En el ejemplo siguiente se muestra el contenido del archivo ReportingCustomFieldCreatedTestOutput.txt que se escribe la aplicación.
Nota
La información de campo personalizado en el ejemplo es específica para el campo personalizado que se define en una instancia de Project Web App .
<?xml version="1.0" standalone="yes"?>
<ReportingCustomFieldMetadataDataSet xmlns="https://schemas.microsoft.com/office/project/server/webservices/ReportingCustomFieldMetadataDataSet/">
<CustomFieldMetadata>
<CustomFieldTypeUID>1e1dfb97-b4fc-4d8a-aaa8-b1ad079a2013</CustomFieldTypeUID>
<ParentEntityTypeGuid>cecfe271-6660-4abe-97ed-208d3c71fc18</ParentEntityTypeGuid>
<CustomFieldName>Test Project Text CF - has LUT</CustomFieldName>
<CustomFieldType>21</CustomFieldType>
<LookupTableUID>cdff825e-8951-4ac7-ad0e-ba28a009dd1d</LookupTableUID>
<IsMultiValueEnabled>false</IsMultiValueEnabled>
<HasWeights>false</HasWeights>
<AssignmentRollDown>false</AssignmentRollDown>
<CreatedDate>2011-03-28T18:45:31.827-07:00</CreatedDate>
<ModificationDate>2011-03-28T18:45:31.827-07:00</ModificationDate>
</CustomFieldMetadata>
</ReportingCustomFieldMetadataDataSet>
Custom Field Created post-event handler: 3/28/2011 6:45:40 PM
PWA site GUID: 9f110f4a-3632-42d3-a1e5-21f9c43360c3
User name: DOMAIN\UserName
User GUID: 2e0fdcc1-85fc-4bde-9593-78a2789c66af
Custom field type GUID: 1e1dfb97-b4fc-4d8a-aaa8-b1ad079a2013