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


Получение сведений о подчиненных руководителя текущего пользователя

В этом примере получаются, при их наличии, подчиненные руководителя текущего пользователя, а затем отображаются сведения о каждом из подчиненных руководителя.

Пример

Примечание.

Приведенный ниже пример кода представляет собой фрагмент из книги Программирование приложений для Microsoft Office Outlook 2007.

В следующем примере процедура GetManagerDirectReports вызывает метод GetExchangeUserManager(), чтобы получить руководителя пользователя, представленного объектом ExchangeUser. Если у текущего пользователя есть руководитель, вызывается GetDirectReports(), чтобы возвратить коллекцию AddressEntries, представляющую собой записи адресов для всех подчиненных руководителя пользователя. Если у руководителя нет подчиненных, GetDirectReports возвращает коллекцию AddressEntries с количеством, равным нулю. Если подчиненные руководителя получены, GetManagerDirectReports записывает сведения о каждом из подчиненных руководителя в прослушиватели трассировки коллекции Listeners.

Примечание.

Чтобы этот метод вернул коллекцию AddressEntries, вошедший в систему пользователь должен присутствовать, в противном случае GetDirectReports возвращает пустую ссылку (NULL). Для кода, используемого в производственной среде, необходимо проверить возможное отсутствие пользователя, используя свойство _NameSpace.ExchangeConnectionMode или свойство _Account.ExchangeConnectionMode для нескольких различных сценариев Exchange.

Если вы используете Visual Studio для тестирования этого примера кода, сначала добавьте ссылку на компонент Microsoft Outlook 15.0 Object Library и задайте переменную Outlook при импорте пространства имен Microsoft.Office.Interop.Outlook. Инструкция using не должна находиться непосредственно перед функциями в примере кода, но ее нужно добавить перед объявлением общедоступного класса. В следующей строке кода показано, как выполнить импорт и назначение в C#.

using Outlook = Microsoft.Office.Interop.Outlook;
private void GetManagerDirectReports()
{
    Outlook.AddressEntry currentUser =
        Application.Session.CurrentUser.AddressEntry;
    if (currentUser.Type == "EX")
    {
        Outlook.ExchangeUser manager =
            currentUser.GetExchangeUser().GetExchangeUserManager();
        if (manager != null)
        {
            Outlook.AddressEntries addrEntries =
                manager.GetDirectReports();
            if (addrEntries != null)
            {
                foreach (Outlook.AddressEntry addrEntry
                    in addrEntries)
                {
                    Outlook.ExchangeUser exchUser =
                        addrEntry.GetExchangeUser();
                    StringBuilder sb = new StringBuilder();
                    sb.AppendLine("Name: "
                        + exchUser.Name);
                    sb.AppendLine("Title: "
                        + exchUser.JobTitle);
                    sb.AppendLine("Department: "
                        + exchUser.Department);
                    sb.AppendLine("Location: "
                        + exchUser.OfficeLocation);
                    Debug.WriteLine(sb.ToString());
                }
            }
        }
    }
}

См. также