2017-10-17 14 views
-1

Je souhaite créer un AddIn Outlook en C# comportant un bouton dans le ruban du calendrier sur lequel l'utilisateur clique pour créer une nouvelle réunion avec l'un de ses employés. Nous voulons que l'utilisateur (le gestionnaire) puisse sélectionner l'employé à partir d'une liste filtrée de ses propres employés et ne pas avoir à faire une recherche dans l'ensemble du répertoire. Quelle est la meilleure façon de faire cela?Outlook AddIn pour le filtrage des destinataires

additif: Je l'ai fait quelques recherches et je suis tombé sur une méthode potentielle pour le filtre.

Je sais que la fonction « SelectNamesDialog » me obtenir une adresse boîte de dialogue du livre:

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

Je veux combiner cela avec un morceau de code que j'ai trouvé. Je l'ai modifié pour retourner les noms de tous les rapports directs du directeur (les employés sous le gestionnaire).

Je pense que je suis sur la bonne voie, mais je ne sais pas quoi faire ensuite. Comment puis-je maintenant permettre à l'utilisateur de sélectionner l'un de ces noms via le GetSelectNamesDialog? C'est OK si votre réponse est en code source.

// 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

La meilleure façon est Google. Ce n'est pas un "comment" site. Vérifiez cela: https://stackoverflow.com/help/mcve. Bonne chance. – JuanR

+0

Bien sûr, j'ai déjà essayé Google, ce qui m'a conduit ici .. J'ai lu les pages d'aide. J'ai cherché des questions précédentes. Ma question répond aux normes «sur le sujet» (c'est «un problème de programmation spécifique» et «un problème pratique et responsable qui est propre au développement de logiciels»). J'ai trouvé beaucoup d'autres questions qui commencent par "Comment" ou "Comment puis-je" et ils ne sont pas tous les messages d'erreur de code. Ma question était une question constructive qui va «inspirer des réponses qui expliquent« pourquoi »et« comment ». –

+0

Vous devez montrer au moins un peu de travail. C'est le genre de site que vous rencontrez lorsque vous travaillez déjà sur quelque chose et que vous frappez un mur. – JuanR

Répondre

0

Carnet d'adresses ne vous laissera pas limiter la liste à un sous-ensemble de certains utilisateurs, de sorte que vous aurez besoin de trouver avec vous une fenêtre qui invite l'utilisateur pour la sélection d'une liste pré-filtrée.

+0

Merci. Je vois ça maintenant. Je suis sur la bonne voie de le faire. –