ReportingEventReceiver.OnCustomFieldCreated método
Um manipulador de POST-eventos no serviço de dados de relatório para criar um campo personalizado.
Namespace: Microsoft.Office.Project.Server.Events
Assembly: Microsoft.Office.Project.Server.Events.Receivers (em Microsoft.Office.Project.Server.Events.Receivers.dll)
Sintaxe
'Declaração
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.PSContextInfoContém as informações de contexto do Project Server.
e
Tipo: Microsoft.Office.Project.Server.Events.ReportingPostCustomFieldCreatedEventArgsOs dados para o evento.
Comentários
O serviço de relatório de dados gera relatórios campo personalizado criado evento quando o banco de dados de relatórios é atualizado com as informações de campo personalizado. O PSI métodos CreateCustomFields e CreateCustomFields2 geram um campo personalizado que criou o evento antes do evento de emissão de relatórios. Esses eventos podem ser muito parecidos em tempo.
ReportingCustomFieldMetadataDataSet fornece metadados necessários para o sistema de relatórios durante a transferência de informações de campo personalizado para o controle ActiveX RDS. O valor do membro CustomFieldTypeUID conjunto de dados também pode ser encontrado no e.CustomFieldTypeGUID de propriedade do argumento.
Os nomes dessas duas entidades incluem a palavra "Tipo", porém esses valores não são associados ao tipo de campo personalizado (custo, data, duração, sinalizador, número ou texto), em vez disso, para o tipo do GUID (campo personalizado).
Para obter mais informações sobre eventos RDS para o banco de dados de relatórios, consulte eventos de RDB.
Exemplos
A seguir está um exemplo de um manipulador de pós-evento campo personalizado criado. O método de OnCustomFieldCreated exemplo recupera informações de parâmetros de evento e grava em um arquivo 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();
}
}
}
}
O exemplo a seguir lista o conteúdo do arquivo ReportingCustomFieldCreatedTestOutput.txt que é gravado pelo aplicativo.
Dica
As informações de campo personalizado no exemplo serão específicas para o campo personalizado que é definido em uma instância 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