Поделиться через


Метод ReportingEventReceiver.OnCustomFieldCreated

Обработчик события после операции службы данных отчета для создания настраиваемого поля.

Пространство имен:  Microsoft.Office.Project.Server.Events
Сборка:  Microsoft.Office.Project.Server.Events.Receivers (в Microsoft.Office.Project.Server.Events.Receivers.dll)

Синтаксис

'Декларация
Public Overridable Sub OnCustomFieldCreated ( _
    contextInfo As PSContextInfo, _
    e As ReportingPostCustomFieldCreatedEventArgs _
)
'Применение
Dim instance As ReportingEventReceiver
Dim contextInfo As PSContextInfo
Dim e As ReportingPostCustomFieldCreatedEventArgs

instance.OnCustomFieldCreated(contextInfo, _
    e)
public virtual void OnCustomFieldCreated(
    PSContextInfo contextInfo,
    ReportingPostCustomFieldCreatedEventArgs e
)

Параметры

Замечания

Служба данных отчетов создает отчеты настраиваемого поля, созданные события, если база данных отчетов были добавлены сведения о настраиваемых полях. Методы PSI CreateCustomFields и CreateCustomFields2 вызовет настраиваемые поля, созданные события до события отчеты. Эти события могут быть очень закрыть времени.

ReportingCustomFieldMetadataDataSet предоставляет метаданные, требуемые для работы с отчетами системы при переносе RDS. настраиваемого поля Значение элемента набора данных CustomFieldTypeUID можно также найти событий аргумент свойства e.CustomFieldTypeGUID.

Имена этих двух сущностей содержит слово «Тип», однако эти значения не связаны с типом настраиваемого поля (затраты, дата, продолжительность, флаг, номер или текст), а к типу GUID (настраиваемого поля).

Дополнительные сведения о событиях служб удаленных рабочих СТОЛОВ для базы данных отчетов можно события для базы данных восстановления.

Примеры

Ниже приведен пример обработчика события после операции создания настраиваемого поля. Метод OnCustomFieldCreated пример извлекает сведения из параметров события и записывает в 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();
            }
        }
    }
}

В следующем примере перечисляются содержимое файла ReportingCustomFieldCreatedTestOutput.txt, записывается в приложении.

Примечание

Сведения о настраиваемых полей в примере специально для настраиваемых полей, определенных в экземпляре 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

См. также

Справочные материалы

ReportingEventReceiver класс

Элементы ReportingEventReceiver

Пространство имен Microsoft.Office.Project.Server.Events