2017-10-17 123 views
-1

我想在C#中构建一个Outlook AddIn,该用户在点击日历功能区中有一个按钮以与其员工之一创建新会议。我们希望用户(经理)能够从他们自己的员工的已过滤列表中选择员工,而不必搜索整个目录。 这样做的最好方法是什么?用于过滤收件人的Outlook AddIn

编: 我做了一些搜索和我碰到一个潜在的方法来进行过滤。

我知道“SelectNamesDialog”功能将得到我的地址簿对话框:

Outlook.SelectNamesDialog snd = Application.Session.GetSelectNamesDialog(); 

我想结合起来,与一段代码,我发现。我修改它以返回所有经理的直接报告(管理人员下的员工)的姓名。

我认为我走在正确的轨道上,但我不确定接下来要做什么。我现在如何允许用户通过GetSelectNamesDialog选择其中一个名称?如果你的答案是在psuedocode中,那就可以了。

// source: "How to: Get Information About Direct Reports of the Current User's Manager" 
// https://msdn.microsoft.com/en-us/library/ff184617.aspx 
     private List<string> GetManagerDirectReports() 
     { 
      List<string> AddressNames = new List<string>(); 

      Outlook.AddressEntry currentUser = Globals.ThisAddIn.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) 
         { 
          //System.Windows.Forms.MessageBox.Show(addrEntry.Name); 
          AddressNames.Add(addrEntry.Name); 
         } 
        } 
       } 
      } 
      return AddressNames; 
     } 
+2

最好的方法是谷歌。这不是一个“如何”网站。看看这个:https://stackoverflow.com/help/mcve。祝你好运。 – JuanR

+0

当然,我已经尝试过谷歌,这导致我在这里..我阅读帮助页面。我搜索了以前的问题。我的问题符合“主题”标准(它是“一个特定的编程问题”和“一个对软件开发来说唯一的实用,可回答的问题”)。我发现许多其他以“如何”或“我如何”开头的问题,它们并不都是代码错误消息。我的问题是一个富有建设性的问题,它将激发解释“为什么”和“如何”的答案。' –

+0

您需要展示至少一些工作。当你已经在做某些事情并且碰到墙壁时,这就是你想要的那种网站。 – JuanR

回答

0

通讯簿不会让你列表限制一些用户的一个子集,所以你需要拿出你自己的窗口,提示从预过滤列表中选择用户。

+0

谢谢。我现在看到了。我正在努力做到这一点。 –

相关问题